Issues with embedding from RSS

こんにちは、Simonさん

まだマージされていないと思います。
何時間も試みているのですが、どうしても動作しません。
フォーラムでは「未分類のカテゴリ」を無効に設定しているのですが、RSSフィードは私が何をしてもすべて「未分類」に入ってしまうのです。

RSSポーリングページにカテゴリを追加することは可能でしょうか?
フィードURL - 著者 - クラス - カテゴリ、そして裏側での埋め込み処理は自動で行う形で。

よくわかりません。

フィードの link 属性のドメイン?
私はドロップダウンからカテゴリを選択していると思っていたのですが?

でも、RSSポーリングページにはフィードの完全なURLを入力しました。
同じ情報を異なる形式で2つの異なる場所に入力しているのに、それらが一致していないようです。
「許可されたホスト / ホワイトリストパス」の目的がわかりません。

確認したところ、PR はまだマージされていませんでした。私の変更を誰かに見てもらい、コアコードにマージしてもらいます。ただ、あなたの質問に基づくと、プラグインに追加した「フィードトピックのカテゴリ設定方法」の説明が明確でないかもしれません。ここで改めて説明します。

RSS フィードトピックが公開されるカテゴリは、フィードの link 属性のドメインに基づいて決まります。フィード自体のドメインではありません。例えば、フィードが https://example.com/feed にある場合でも、フィード内の link 属性が https://www.example.com/ の投稿を指しているなら、管理画面の「カスタマイズ / 埋め込みホスト」セクションに追加する必要があるドメインは example.com ではなく www.example.com です。以下の例では、フィードからのすべての投稿が「fun」カテゴリに公開されます。

フィードの link 属性の値を確認するには、フィードのマークアップを確認する必要があります。ブラウザでフィードの URL を読み込むことで確認できます。

これにより、ブログの特定のパスからの投稿を Discourse のカテゴリに公開できます。例えば:

この設定では、www.example.com/fun パス内のすべての投稿が「fun」カテゴリに、www.example.com/support パス内のすべての投稿が「カスタマーサポート」カテゴリに公開されます。

「いいね!」 1

なぜ私が埋め込みページにいるのか、全く理解できません。
完全なフィード URL はすでに入力されています。
プラグインが、私がすべてを二度入力することなく、URL を「許可されたホスト」と「パスのホワイトリスト」に分割してくれないのでしょうか?

RSS ポーリングプラグインと埋め込みページに表示される入力例が一致しません。
「feeds」は一方ではサブドメインで、その後にはパスとして現れています。

いくつかの RSS フィードで試しています。
これです… BBC Health - BBC Health - 管理者ユーザー

許可されたホスト:feeds.bbci.co.uk
パスのホワイトリスト:/health/.*
「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/.* を設定して「fun」カテゴリに公開するようにしました:

その後、フィードによって作成された最初のバッチのトピックを削除しました。Discourse はそれらを再度取得しており、現在は正しいカテゴリに公開されています。

こんにちは、ついに解決しました……ごめんなさい。
BBC のフィードは始めに選ぶには不適切だったと思います。

あなたの用語がわかりました。
RSS フィード内からのリンクを指していたとは気づきませんでした。
フィードの URL だけで十分だと思っていました。

「いいね!」 2

はい、おそらく私がこれまでに対処した中で最も難しいものの一つでしょう。リンクは BBC サーバーによってリダイレクトされ、フィードをブラウザで直接表示することはできません。正しい埋め込みドメインを取得できる唯一の方法は、まず投稿を自分のサイトに公開することでした。一般的には、このプラグインを設定するほうがはるかに簡単です。

「いいね!」 2

残念ながら、BBC のヘルスフィードはさまざまなパスからデータを取得しています。
先ほどは歴史セクションから熱帯医学に関する記事が流れてきました。そのため、私のヘルスフィードにも /history/.* というパターンを追加する必要があります。
ただし、BBC のフィードを 1 つだけ追加すれば、これで動作します。
お時間とご辛抱をいただき、誠にありがとうございます。: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