有什么方法可以用 Python 中的 feedgen 包生成带有 rel="hub" 的链接吗?

问题描述 投票:0回答:1

我使用 Python 包 feedgen 生成 RSS 提要,我现在正在尝试实施 PubSubHubbub 协议。

据我了解 https://indieweb.org/How_to_publish_and_consume_WebSub 我需要生成 2 个 HTML 标签:一个 rel 属性设置为 hub,href 属性设置为 https://pubsubhubbub.appspot.com/,一个 rel 属性设置为 self,href 属性设置为饲料。

但是,我无法做到这一点。知道为什么吗?

这是我的代码:

from feedgen.feed import FeedGenerator

fg = FeedGenerator()
fg.id('https://test.test.com/')
fg.title('Testfeed')
fg.link( href='http://my_test_feed.xml', rel='self' )
fg.link( href='https://pubsubhubbub.appspot.com/', rel='hub' )
fg.subtitle('This is a cool test feed!')
fg.language('en')

rssfeed  = fg.rss_str(pretty=True)
print(rssfeed)
python rss atom-feed superfeedr
1个回答
0
投票

您的代码看起来正确,应该为 PubSubHubbub 协议生成必要的 HTML 标签。这是您生成的两个链接的细分:

带有

rel="self"
的第一个链接是指向提要本身的链接。这告诉订阅者在哪里可以找到提要。

带有

rel="hub"
的第二个链接是指向PubSubHubbub中心的链接。这会告诉订阅者使用哪个集线器来订阅提要。

您遇到的问题可能与您使用的中心 URL 有关。 URL

https://pubsubhubbub.appspot.com/
是一个很受欢迎的 hub,但自 2020 年 9 月起已关闭。您可能需要找到其他 hub 才能使用。

此外,值得注意的是,PubSubHubbub 协议已被 WebSub 协议取代,后者采用更广泛且更易于实现。您可能需要考虑改用 WebSub,它可以使用

rel="hub"
rel="self"
HTML 标记以类似的方式实现。

这是您的代码的更新版本,它使用不同的中心 URL 并将 webfeeds:coverImage 元素添加到提要:

from feedgen.feed import FeedGenerator

fg = FeedGenerator()
fg.id('https://test.test.com/')
fg.title('Testfeed')
fg.link(href='http://my_test_feed.xml', rel='self')
fg.link(href='https://hubbub.example.com/', rel='hub')
fg.subtitle('This is a cool test feed!')
fg.language('en')
fg.webfeeds.cover(image='https://example.com/cover.jpg')

以下是一些可用于 PubSubHubbub 协议的中心 URL:

请记住,PubSubHubbub 协议并没有像以前那样被广泛采用,许多服务已经转而使用更新的 WebSub 协议。如果您找不到工作中心,您可以考虑实施 WebSub。

© www.soinside.com 2019 - 2024. All rights reserved.