RSS Polling plugin、手動追加タグを削除

RSS Polling プラグインで RSS フィードをインポートしています。デフォルトではタグを追加していません。代わりに、ユーザーが手動でタグを追加する予定です。しかし、プラグインが次のプルでタグを削除します。たとえば、以下を参照してください。

編集: create post for category and tag changes 設定に関連しているのではないかと思いましたが、変更してもタグは削除されたままです。たとえば:

編集 2: これはさらに奇妙です。一部のタグが削除されたと表示される投稿ですが、タグはまだ存在しています…

Discourse 3.3.0.beta3-dev ( c13f64d35b ) および RSS Polling 0.0.1 be7b56e を実行しています。

「いいね!」 1

関連している可能性があります。ログに繰り返し表示されるエラーがあります。

Job exception: undefined method `name' for an instance of String 

/var/www/discourse/app/models/topic_embed.rb:125:in `map'

/var/www/discourse/app/models/topic_embed.rb:125:in `import'

/var/www/discourse/plugins/discourse-rss-polling/app/jobs/jobs/discourse_rss_polling/poll_feed.rb:52:in `block in poll_feed'

/var/www/discourse/plugins/discourse-rss-polling/app/jobs/jobs/discourse_rss_polling/poll_feed.rb:41:in `each'

/var/www/discourse/plugins/discourse-rss-polling/app/jobs/jobs/discourse_rss_polling/poll_feed.rb:41:in `poll_feed'

/var/www/discourse/plugins/discourse-rss-polling/app/jobs/jobs/discourse_rss_polling/poll_feed.rb:20:in `execute'

/var/www/discourse/app/jobs/base.rb:305:in `block (2 levels) in perform'

rails_multisite-6.0.0/lib/rails_multisite/connection_management/null_instance.rb:49:in `with_connection'
rails_multisite-6.0.0/lib/rails_multisite/connection_management.rb:21:in `with_connection'
/var/www/discourse/app/jobs/base.rb:292:in `block in perform'

/var/www/discourse/app/jobs/base.rb:288:in `each'

/var/www/discourse/app/jobs/base.rb:288:in `perform'

sidekiq-6.5.12/lib/sidekiq/processor.rb:202:in `execute_job'

sidekiq-6.5.12/lib/sidekiq/processor.rb:170:in `block (2 levels) in process'

sidekiq-6.5.12/lib/sidekiq/middleware/chain.rb:177:in `block in invoke'

/var/www/discourse/lib/sidekiq/pausable.rb:132:in `call'

sidekiq-6.5.12/lib/sidekiq/middleware/chain.rb:179:in `block in invoke'

sidekiq-6.5.12/lib/sidekiq/middleware/chain.rb:182:in `invoke'

sidekiq-6.5.12/lib/sidekiq/processor.rb:169:in `block in process'

sidekiq-6.5.12/lib/sidekiq/processor.rb:136:in `block (6 levels) in dispatch'

sidekiq-6.5.12/lib/sidekiq/job_retry.rb:113:in `local'

sidekiq-6.5.12/lib/sidekiq/processor.rb:135:in `block (5 levels) in dispatch'

sidekiq-6.5.12/lib/sidekiq.rb:44:in `block in <module:Sidekiq>'

sidekiq-6.5.12/lib/sidekiq/processor.rb:131:in `block (4 levels) in dispatch'

sidekiq-6.5.12/lib/sidekiq/processor.rb:263:in `stats'

sidekiq-6.5.12/lib/sidekiq/processor.rb:126:in `block (3 levels) in dispatch'

sidekiq-6.5.12/lib/sidekiq/job_logger.rb:13:in `call'

sidekiq-6.5.12/lib/sidekiq/processor.rb:125:in `block (2 levels) in dispatch'

sidekiq-6.5.12/lib/sidekiq/job_retry.rb:80:in `global'

sidekiq-6.5.12/lib/sidekiq/processor.rb:124:in `block in dispatch'

sidekiq-6.5.12/lib/sidekiq/job_logger.rb:39:in `prepare'

sidekiq-6.5.12/lib/sidekiq/processor.rb:123:in `dispatch'

sidekiq-6.5.12/lib/sidekiq/processor.rb:168:in `process'

sidekiq-6.5.12/lib/sidekiq/processor.rb:78:in `process_one'

sidekiq-6.5.12/lib/sidekiq/processor.rb:68:in `run'

sidekiq-6.5.12/lib/sidekiq/component.rb:8:in `watchdog'

sidekiq-6.5.12/lib/sidekiq/component.rb:17:in `block in safe_thread'

そして、パターンを見つけたようです。

  • /admin/plugins/rss_polling の「Tags」フィールドが空の場合、手動で追加されたタグは次のポーリングで削除されます。
  • そのフィールドにタグがある場合、手動で追加されたタグは保持されるようです。

さらにテストした結果、問題は /admin/plugins/rss_polling のRSSフィードにタグが割り当てられていない場合にタグが自動的に削除されることだと確信しています。

「いいね!」 1

再現できます。:raised_hand:

私の手順:

  • https://meta.discourse.org/c/bug/1.rss をRSSポーリングに追加します
  • ユーザーとカテゴリを設定しますが、タグは空白のままにして保存します
  • トピックが取り込まれるのを待ちます
  • いくつか選択して、手動でタグを追加します
  • 次のポーリングを待ちます
  • 手動で追加されたタグを持つトピックからタグが削除されていることを確認します

期待される動作: 手動でタグが追加されたポーリングされたトピックは、それらのタグを削除するように編集されないこと
実際: ポーリングされたトピックのタグが上書きされます

/logs にはエラーはありません)

「いいね!」 6

奇妙ですね。このエラーが報告され続けています。1週間で1344件蓄積されました。十分に一般的なようです。

「いいね!」 1

修正は近いロードマップにありますか?

まだ早い段階だと思います。何かニュースがあるか気になっています。

これは core の TopicEmbed で発生しています

「いいね!」 4

nilまたは欠落している(リプロのように)場合にタグが更新されないように更新しました。

これにより、リストされているリプロが修正されます。

「いいね!」 2

こんにちは、新しい問題が発生したようです。Discourseを3.3.0.beta4-dev(7b8863fcd5)にアップデートしたところ、ポーリングのたびに更新され続けるインポートされた投稿がいくつかありますが、差分変更は見られません。これらの投稿に共通するのは以下の点です。

  • すべてRSSポーリングでインポートされた。
  • インポート時に、RSSポーリングで設定されたタグが1つ付与された。
  • 手動で2つ目のタグを追加した。

変更が見られない差分の例を以下に示します。

私たちにとって、これはリグレッションです。以前のバグは、すべてのRSSフィードにデフォルトタグを追加することで回避できました。その後、タグを手動で簡単に追加できました。しかし、現在、変更がないにもかかわらず、これらの繰り返し更新によって「最新」リストがスパム状態になっています。

更新:あるいは、もっと具体的またはローカルな問題でしょうか?手動でタグが追加されたトピックすべてが更新されているわけではありません。更新されている投稿の一部でタグを削除して再追加し、パターンを見つけようとしています。何か発見があればここに返信します。

「いいね!」 2

はい、再浮上しているトピックのパターンを確認できます。

  • すべてRSSポーリングでインポートされています。
  • インポート時に、RSSポーリングで設定されたタグが1つ付けられました。
  • 手動で2つ目のタグを追加しました。

追加タグを持つトピックの一部のみが更新され続け、すべてではないため混乱していましたが、答えは単純です。RSSフィードがそれらを呼び続けているのに対し、古いトピックやRSSフィードに最近のエントリしかないトピックは論理的にトリガーされません。

可能であれば、実装は次のように単純であるべきです。

  1. インポートされたトピックが新規の場合、RSSポーリング設定で定義されたタグ(存在する場合)をインポートします。
  2. インポートされたトピックが新規でない場合、タグは一切チェックしません。

これにより、新規インポートトピックは期待どおりのタグ(またはタグが定義されていない場合はなし)でインポートされ、既存トピックは手動で編集されたタグのために変更/更新されることはありません。

テスト済みのソリューションが導入されるまで、このパッチを元に戻していただけますでしょうか?最新のメインページがこれらの古いエントリで占められており、タグ付けを始めたばかりで手動でタグ付けされたエントリはほんの一握りなので幸いです。そうでなければ、現時点では2番目のタグを削除できます…

タグが削除され続けているようです。

「meta-hmd」タグが削除されているのがわかります。このタグは手動で追加されましたが、次にプルすると削除されます。
「UploadVR」タグはRSS Polling Pluginで設定されています。 :slightly_frowning_face:

@RGJがリンクしたように、埋め込みインポートはタグが変更されたことを検出し、追加されたタグを削除して投稿を再インポートしています。

ディスコースのトピックタグの変更を無視するトグルを追加することは可能でしょうか?

「いいね!」 1

RSSポーリングでタグ更新を無効にするオプションを追加しました。ユースケースが解決されたかどうかお知らせください。

「いいね!」 5

迅速な修正をありがとうございます!

このPRを評価していただけますでしょうか?

「いいね!」 1

@Heliosurge が言及しているパッチは、RSS Polling setting to use pubDate to set the date of imported topics から来ています。これは、このトピックに非常に重要です。なぜなら、私たちはその機能を依頼し、サーバーにその RSS Polling バージョンをインストールしているからです。私たちは、正しい日付を持つ何千ものインポートされたトピックを持っており、@featheredtoast による昨日のパッチをテストするために、標準の RSS プラグインをインストールすると、何千もの変更が不正確な日付に変わるなど、問題が発生するのではないかと心配しています。

参考までに、私たちは数週間パッチ適用済みのバージョンを実行しており、数多くの異なるフィードを 1 つのグリッチもなくインポートしてきました。それは意図したとおりにうまく機能します。

「いいね!」 2

公式プラグインに戻しました。

ポーリングされなくなったトピックは問題ないはずです。

このパッチより前に、報告されたように、新しくなくなった古いインポート済みフィードは変更されないはずです。

したがって、手動でタグを追加したフィードで取得されていないものも問題ありません。

「いいね!」 1

@Heliosurge ここで修正をテストしていただけると大変助かります。私たちは毎日新しいフィードを追加しており、各インポートには数十、あるいは数百のエントリが含まれる可能性があるため、PubDate を維持することが私たちにとって非常に重要です。それと比べて、タグの解決策は待つことができます。

まだ新しいフィードを追加している場合、ご存知の通り、これらの新しいフィードでは公開日は尊重されません。

私が述べたように、古くなったために取得されなくなった古いフィードは、タグを変更しません。

RSSトピックがキューから外れるには、どのくらい古くなる必要があるのかわかりません。

このトピックは4日後に自動的に閉じられました。新しい返信は許可されていません。