RSS Polling-Plugin entfernt manuell hinzugefügte Tags

Ich importiere RSS-Feeds mit dem RSS Polling Plugin. Ich füge standardmäßig keine Tags hinzu. Stattdessen ist der Plan, dass Benutzer die Tags manuell hinzufügen. Aber das Plugin entfernt die Tags beim nächsten Abruf. Sehen Sie zum Beispiel

EDIT: Ich dachte, es könnte mit der Einstellung create post for category and tag changes zusammenhängen, aber ich habe sie geändert und die Tags werden immer noch gelöscht. Zum Beispiel:

EDIT 2: Okay, das ist noch seltsamer. Ein Beitrag, der besagt, dass einige Tags entfernt wurden, aber die Tags sind immer noch da…

Läuft Discourse 3.3.0.beta3-dev ( c13f64d35b ) und RSS Polling 0.0.1 be7b56e.

1 „Gefällt mir“

Vielleicht zusammenhängend? Es gibt diesen wiederkehrenden Fehler in den Protokollen:

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'

Und ich glaube, ich habe ein Muster gefunden:

  • Wenn das Feld „Tags“ unter /admin/plugins/rss_polling leer ist, werden die manuell hinzugefügten Tags beim nächsten Abrufen entfernt.
  • Wenn dieses Feld einen Tag enthält, scheinen die manuell hinzugefügten Tags zu bleiben.

Nach weiteren Tests bin ich mir ziemlich sicher, dass das Problem darin besteht, dass Tags automatisch entfernt werden, wenn der RSS-Feed unter /admin/plugins/rss_polling keine zugewiesenen Tags hat.

1 „Gefällt mir“

Ich kann das reproduzieren. :raised_hand:

Meine Schritte:

  • https://meta.discourse.org/c/bug/1.rss zu RSS Polling hinzufügen
  • Benutzer und Kategorie festlegen, aber Tags leer lassen (speichern)
  • Warten, bis Themen eingezogen sind
  • Ein paar auswählen und manuell Tags hinzufügen
  • Auf die nächste Abfrage warten
  • Sehen, dass ein Thema mit manuell hinzugefügten Tags bearbeitet wurde, um sie zu entfernen

Erwartet: Abgefragte Themen mit manuell hinzugefügten Tags sollten nicht bearbeitet werden, um diese Tags zu entfernen
Tatsächlich: Tags von abgefragten Themen werden überschrieben

(Kein Fehler in /logs.)

6 „Gefällt mir“

Seltsam. Es meldet diesen Fehler immer wieder. 1344 Instanzen haben sich in einer Woche angesammelt. Sieht generisch genug aus.

1 „Gefällt mir“

Gibt es eine Behebung auf der nahen Roadmap?

Ich stelle mir vor, dass es noch früh ist. Ich frage mich nur, ob es Neuigkeiten gibt.

Dies geschieht in TopicEmbed im Kern

4 „Gefällt mir“

Ich habe dies so aktualisiert, dass, wenn Tags nil oder fehlen (wie im Repro), die Tags nicht aktualisiert werden:

Dies behebt den Repro, wie aufgelistet

2 „Gefällt mir“

Hallo, ich glaube, es gibt jetzt ein neues Problem. Ich habe gerade Discourse auf 3.3.0.beta4-dev ( 7b8863fcd5 ) aktualisiert und jetzt werden einige importierte Beiträge bei jedem Abruf immer wieder aktualisiert, ohne dass Änderungen sichtbar sind. Das haben diese Beiträge gemeinsam:

  • Sie werden alle mit RSS-Polling importiert.
  • Sie erhielten beim Import ein Tag, das in RSS-Polling festgelegt wurde.
  • Wir haben manuell ein zweites Tag hinzugefügt.

Hier ist ein Beispiel-Diff. Keine Änderungen sichtbar:

Für uns ist das eine Regression. Der vorherige Fehler konnte durch Hinzufügen eines Standard-Tags zu allen RSS-Feeds umgangen werden. Dann konnten Tags problemlos manuell hinzugefügt werden. Jetzt wird unsere Liste „Neueste“ durch diese wiederkehrenden Aktualisierungen ohne Änderungen zugespammt.

Aktualisiert: Oder vielleicht ist es etwas Spezifischeres oder Lokales? Denn nicht alle Themen mit manuell hinzugefügten Tags werden aktualisiert. Ich entferne und füge Tags in einigen der aktualisierten Beiträge erneut hinzu, um zu sehen, ob ich ein Muster finde. Ich werde hier mit allen Erkenntnissen antworten.

2 „Gefällt mir“

Ok, ich kann dieses Muster für die wiederkehrenden Themen bestätigen:

  • Sie werden alle mit RSS Polling importiert.
  • Sie erhielten beim Import ein Tag, das in RSS Polling festgelegt wurde.
  • Wir haben manuell ein zweites Tag hinzugefügt.

Ich war verwirrt, weil nur einige Themen mit einem zusätzlichen Tag weiterhin aktualisiert werden und nicht alle, aber die Antwort ist einfach: Der RSS-Feed ruft sie immer noch auf, während ältere Themen oder Themen mit nur neueren Einträgen im RSS-Feed logischerweise nicht ausgelöst werden.

Wenn möglich, sollte die Implementierung so einfach sein:

  1. Wenn ein importiertes Thema neu ist, importieren Sie die in den RSS Polling-Einstellungen definierten Tags, falls vorhanden.
  2. Wenn ein importiertes Thema nicht neu ist, überprüfen Sie die Tags überhaupt nicht.

Auf diese Weise werden neu importierte Themen mit den erwarteten Tags (oder gar keinen, wenn keine Tags definiert sind) versehen, und bestehende Themen erhalten keine Änderungen/Aktualisierungen aufgrund manuell bearbeiteter Tags.

Können Sie diesen Patch bitte zurücknehmen, bis eine getestete Lösung vorhanden ist? Unsere Hauptseite „Latest“ ist mit diesen alten Einträgen belegt, und wir haben Glück, dass wir gerade erst mit dem Tagging begonnen haben und nur eine Handvoll Einträge manuell getaggt wurden. Ansonsten kann ich die zweiten Tags vorerst entfernen…

Ich sehe immer noch, dass Tags beim Abrufen entfernt werden

Sie können sehen, dass “meta-hmd” entfernt wird. Dieses Tag wurde manuell hinzugefügt, beim nächsten Abruf wird das Tag entfernt.
Das Tag “UploadVR” ist im RSS Polling Plugin konfiguriert. :slightly_frowning_face:

Wie @RGJ verlinkt hat. Der Embed-Import erkennt, dass sich Tags geändert haben und importiert den Beitrag erneut, wobei das hinzugefügte Tag entfernt wird.

Vielleicht könnte ein Schalter hinzugefügt werden, um Änderungen an Discourse-Topic-Tags zu ignorieren?

1 „Gefällt mir“

Option hinzugefügt, um Tag-Aktualisierungen bei RSS-Umfragen zu deaktivieren. Lassen Sie uns wissen, ob dies Ihren Anwendungsfall gelöst hat.

5 „Gefällt mir“

Super, vielen Dank für die schnelle Korrektur!

Ich wollte fragen, ob dieser PR bewertet werden kann:

1 „Gefällt mir“

Der Patch, den @Heliosurge erwähnt, stammt von RSS Polling setting to use pubDate to set the date of imported topics. Für mich ist er in Bezug auf dieses Thema hier sehr relevant, da wir diese Funktion in Auftrag gegeben haben und diese RSS-Polling-Version auf unserem Server installiert haben. Wir haben Tausende von importierten Themen mit korrekten Daten, und ich befürchte, dass die Installation des Standard-RSS-Plugins zum Testen des gestrigen Patches von @featheredtoast die Dinge durcheinander bringen könnte, indem Tausende von Änderungen an falschen Daten vorgenommen werden oder etwas Ähnliches.

Was es wert ist, wir verwenden die gepatchte Version seit Wochen und haben Dutzende verschiedener Feeds ohne einen einzigen Fehler importiert. Es funktioniert großartig und wie vorgesehen.

2 „Gefällt mir“

Ich bin zum offiziellen Plugin zurückgekehrt

Alle Themen, die nicht mehr abgefragt werden, sollten in Ordnung sein.

Vor diesem Patch sollten, wie Sie berichtet haben, alte importierte Feeds, die nicht mehr neu genug sind, unverändert bleiben.

Daher sind alle Feeds, denen Sie manuell Tags hinzugefügt haben und die nicht abgerufen werden, in Ordnung.

1 „Gefällt mir“

@Heliosurge, wenn Sie den Fix hier testen könnten, wäre das großartig. Wir fügen immer noch täglich neue Feeds hinzu und für uns ist die Beibehaltung des PubDate entscheidend, da jeder Import Dutzende oder sogar Hunderte von Einträgen enthalten kann. Im Vergleich dazu können wir auf die Lösung für die Tags warten.

Wenn Sie immer noch brandneue Feeds hinzufügen. Diese neuen Feeds werden das Veröffentlichungsdatum nicht berücksichtigen, wie Sie wissen.

Alle alten Feeds, wie ich bereits erwähnt habe, die aufgrund ihres Alters nicht mehr abgerufen werden. Die Tags werden sich nicht ändern.

Ich bin mir nicht sicher, wie alt das RSS-Thema sein muss. Damit es nicht mehr in der Warteschlange ist.

Dieses Thema wurde nach 4 Tagen automatisch geschlossen. Neue Antworten sind nicht mehr möglich.