Issues with embedding from RSS

嗨,Simon,

我觉得这还没被合并。我已经尝试了好几个小时……就是行不通。
我把论坛设置为不允许未分类的类别,但无论我怎么做,所有 RSS 订阅源都会进入“未分类”。

你能不能在 RSS 轮询页面上添加类别选项?比如:订阅源 URL - 作者 - 类 - 类别,以及后台自动完成的嵌入部分?

我不太明白。

订阅源 link 属性的域名?
我以为我是从下拉菜单中选择类别的?

但我在 RSS 轮询页面上输入的是订阅源的完整 URL 啊?
看起来我在两个不同的地方以不同格式输入了相同的信息,但它们并不匹配。
我看不出“允许的主机/白名单路径”的作用是什么。

我刚刚查看了一下,确认该 PR 尚未合并。我会请人快速审查我的更改,并将其合并到核心代码中。不过,根据您的问题,我不确定我在插件中关于如何设置源帖分类的说明是否清晰。我将在此尝试再次解释。

RSS 源帖发布的分类是基于源中 link 属性的域名,而不是源本身的域名。例如,如果您的源位于 https://example.com/feed,但源中的 link 属性指向的是 https://www.example.com/ 上的帖子,那么您需要在“管理 / 自定义 / 嵌入主机”部分添加的域名是 www.example.com,而不是 example.com。下面的示例会导致源中的所有帖子发布到“趣味”分类:

要查找源中 link 属性的值,您需要查看源的标记。您可以通过在浏览器中加载源 URL 来完成此操作。

它允许您将博客上特定路径的帖子发布到 Discourse 分类中。例如:

这会将 www.example.com/fun 路径下的所有帖子发布到我的“趣味”分类,并将 www.example.com/support 路径下的所有帖子发布到“客户支持”分类。

1 个赞

我不明白为什么我完全会进入嵌入页面。
完整的源 URL 已经输入了。
插件难道不能自动将 URL 拆解为“允许的主机”和“路径白名单”,而不需要我重复输入所有内容吗?

RSS 轮询插件中的示例输入与嵌入页面不匹配。
“feeds”在一个地方是子域名……而后来却变成了路径?

我一直在尝试几个 RSS 源。
这个:BBC Health - BBC Health - 管理员用户

允许的主机:feeds.bbci.co.uk
路径白名单:/health/.*
归类到“健康”类别

我认为上述设置应该能生效,但它没有。
我已经尝试了所有可能的组合,耗时数小时。

我同意配置 RSS 源确实相当困难。部分问题与我们已将 RSS 源代码从 Discourse 核心代码移至插件有关。据我所知,使用 Discourse RSS 源功能的网站并不多。

为了测试,我在我的站点上配置了 https://feeds.bbci.co.uk/health/rss.xml 的源。设置效果如下:

初次设置时,所有源主题都被自动发布到我的“未分类”类别中。为解决此问题,我查看了其中几个已创建的主题,并检查了帖子的以下部分:

这告诉我,该帖子的 URL 为 http://www.bbc.co.uk/news/uk-politics-21668349#sa-ns_mchannel=rss&ns_source=PublicRSS20-sa,其域名是 www.bbc.co.uk。随后,我在“嵌入”页面中将此域名添加为“允许的主机”。我将路径 /news/.* 设置为发布到我的“趣味”类别:

之后,我删除了由该源创建的第一批主题。Discourse 正在重新拉取它们,现在它们已被发布到正确的类别中。

你好,我终于弄明白了……抱歉。我觉得 BBC 的源并不是一个很好的起点。

我现在理解你的术语了。
我之前没意识到你指的是 RSS 源内部的链接。
我以为源 URL 就足够了。

2 个赞

是的,这大概是我遇到的最难处理的一个。BBC 服务器会重定向链接,导致无法直接在浏览器中查看该源。我发现唯一能获取正确嵌入域名的方法是先将帖子发布到我的网站上。通常情况下,配置该插件要容易得多。

2 个赞

不幸的是,BBC 健康资讯源来自许多不同的路径。刚才有一个关于热带医学的内容来自历史版块。因此,我的健康资讯源也需要 /history/.* 规则。不过,如果我只添加一个 BBC 资讯源,这应该能行。非常感谢您的时间和耐心。:clap: :clap:

1 个赞

重新提起一个相当古老的话题,是为了感谢您精彩的解答。可惜这让我明白该插件可能无法满足我的需求。我正尝试嵌入由 Shaarli 实例生成的订阅源,但每个条目中的链接属性都指向完全不同的域名(因为 Shaarli 是一个书签归档工具)。我推测路径中无法使用通配符(从而允许任何传入的订阅源条目被定向到特定分类),对吗?

哎呀,算了。我找到了在 Shaarli 中从源生成不同订阅源的方法。已满足我的需求。

2 个赞

正如我几周前在这里写的,使用不同的源解决了永久链接的问题。但现在插件无法获取每个条目的内容。

主题已使用正确的标题创建,来自正确的用户,并按配置归类到适当的类别下。然而,主题正文显示的是类似“这是与原始消息相关的讨论”的内容(抱歉表述不够精确,我使用的是葡萄牙语区域设置),并指向正确的 URL。

随后有一个标有“显示完整消息”的按钮。当我点击它时,它会一直停留在“加载中”状态,无限期等待。我原本以为如果第二次访问该主题,缓存应该已经生成,但似乎并非如此。

示例:
https://rede.tropixel.org/t/greentech-alliance/418

源地址如下:

欢迎提供任何建议。

我认为问题在于 Discourse 无法找到位于 https://links.efeefe.me/?xZVQww 页面上的内容。该页面上的文本非常少。当点击“显示完整帖子”按钮时,Discourse 会尝试抓取该页面以获取其主要内容。如果页面内容很少,你可以通过配置 Discourse 的 embed whitelist selector 站点设置来帮助识别页面的主要内容。有关如何操作的详细说明,请查看:https://meta.discourse.org/t/how-to-configure-the-embed-whitelist-selector-setting/134481。

1 个赞

谢谢,我试过这个方法(在我的情况下是白名单“linklist-item-description”),但没有任何效果,即使等待缓存刷新并在 RSS 源中添加新条目也是如此。

试试 .linklist-item(注意类名开头的 .。必须包含它。)

你也可以试试 .linklist-item .linklist-item-title, .linklist-item .linklist-item-description

你需要等待最多 10 分钟才能看到更改。如果你可以访问 Discourse 站点的 Rails 控制台,可以通过运行 Rails.cache.clear 来清除缓存。这样你就可以立即看到更改。

2 个赞