Le plugin de sondage RSS supprime les balises ajoutées manuellement

J’importe des flux RSS avec le plugin RSS Polling. Je n’ajoute aucune balise par défaut. Au lieu de cela, le plan est que les utilisateurs ajoutent les balises manuellement. Mais le plugin supprime les balises lors du prochain cycle. Voir par exemple

EDIT : Je pensais que cela pourrait être lié au paramètre create post for category and tag changes mais je l’ai modifié et les balises sont toujours supprimées. Par exemple :

EDIT 2 : Ok, c’est encore plus étrange. Un message indique que certaines balises ont été supprimées mais les balises sont toujours là…

J’utilise Discourse 3.3.0.beta3-dev ( c13f64d35b ) et RSS Polling 0.0.1 be7b56e.

1 « J'aime »

Peut-être lié ? Il y a cette erreur récurrente dans les logs :

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'

Et je pense avoir trouvé un schéma :

  • Si le champ « Tags » dans /admin/plugins/rss_polling est vide, les tags ajoutés manuellement sont supprimés lors du prochain sondage.
  • Si ce champ contient un tag, alors les tags ajoutés manuellement semblent rester.

Après avoir testé davantage, je suis presque certain que le problème est que les balises sont automatiquement supprimées lorsque le flux RSS sur /admin/plugins/rss_polling n’a aucune balise assignée.

1 « J'aime »

Je peux reproduire cela. :raised_hand:

Mes étapes :

  • Ajouter https://meta.discourse.org/c/bug/1.rss au sondage RSS
  • Définir l’utilisateur et la catégorie, mais laisser les tags vides (enregistrer)
  • Attendre que les sujets soient récupérés
  • Sélectionner quelques-uns et ajouter manuellement des tags
  • Attendre le prochain sondage
  • Voir qu’un sujet avec des tags ajoutés manuellement a été modifié pour les supprimer

Attendu : Le sujet sondé avec des tags ajoutés manuellement ne devrait pas être modifié pour supprimer ces tags
Réel : Les tags du sujet sondé sont écrasés

(Aucune erreur dans /logs cependant)

6 « J'aime »

Étrange. Il continue de signaler cette erreur. 1344 instances accumulées en une semaine. Cela semble assez générique.

1 « J'aime »

Y a-t-il une solution prévue dans la feuille de route à venir ?

J’imagine que c’est encore tôt. Je me demandais juste s’il y avait des nouvelles.

Cela se produit dans TopicEmbed dans le noyau

4 « J'aime »

J’ai mis à jour ceci pour que si les balises sont nulles ou manquantes (comme elles le sont dans le repro), les balises ne soient pas mises à jour :

Cela corrige le repro comme indiqué.

2 « J'aime »

Salut, je pense qu’il y a un nouveau problème maintenant. Je viens de mettre à jour Discourse vers 3.3.0.beta4-dev ( 7b8863fcd5 ) et maintenant certains posts importés continuent d’être mis à jour à chaque interrogation, sans que des changements de différence ne soient visibles. Voici ce que ces posts ont en commun :

  • Ils sont tous importés avec le sondage RSS.
  • Ils ont reçu une étiquette lors de leur importation, celle définie dans le sondage RSS.
  • Nous avons ajouté une deuxième étiquette manuellement.

Voici un exemple de différence. Aucun changement visible :

Pour nous, c’est une régression. Le bug précédent pouvait être contourné en ajoutant une étiquette par défaut à tous les flux RSS. Ensuite, les étiquettes pouvaient être ajoutées manuellement sans problème. Maintenant, notre liste des derniers posts est spammée par ces mises à jour récurrentes sans changements.

Mise à jour : ou peut-être est-ce quelque chose de plus spécifique ou local ? Parce que tous les sujets avec des étiquettes ajoutées manuellement ne sont pas mis à jour. Je suis en train de supprimer et de rajouter des étiquettes sur certains des posts mis à jour pour voir si je trouve un schéma. Je répondrai ici avec mes découvertes.

2 « J'aime »

Ok, je peux confirmer ce schéma pour les sujets qui refont surface :

  • Ils sont tous importés avec RSS Polling.
  • Ils ont reçu une étiquette lors de leur importation, celle définie dans RSS Polling.
  • Nous avons ajouté une deuxième étiquette manuellement.

J’étais confus car seuls certains sujets avec une étiquette supplémentaire continuent d’être actualisés et pas tous, mais la réponse est simple : le flux RSS continue de les appeler, tandis que les sujets plus anciens ou les sujets avec seulement des entrées récentes dans le flux RSS ne sont logiquement pas déclenchés.

Si possible, l’implémentation devrait être aussi simple que ceci :

  1. Si un sujet importé est nouveau, importer les étiquettes définies dans les paramètres de RSS Polling, le cas échéant.
  2. Si un sujet importé n’est pas nouveau, ne pas vérifier les étiquettes du tout.

De cette façon, les nouveaux sujets importés viennent avec les étiquettes attendues (ou aucune, si aucune étiquette n’est définie) et les sujets existants ne subissent aucun changement/actualisation en raison des étiquettes modifiées manuellement.

Pouvez-vous annuler ce correctif jusqu’à ce qu’une solution testée soit en place, s’il vous plaît ? Notre page principale “Latest” est occupée par ces anciennes entrées et nous avons de la chance que nous ayons juste commencé à étiqueter et qu’il n’y ait qu’une poignée d’entrées étiquetées manuellement. Sinon, je peux supprimer les secondes étiquettes pour l’instant…

Je le vois toujours supprimer des balises lors de l’extraction

Vous pouvez voir que le « meta-hmd » est supprimé. Cette balise a été ajoutée manuellement, lors du prochain extrait, elle supprime la balise.
La balise « UploadVR » est configurée dans le plugin RSS Polling. :slightly_frowning_face:

Comme l’a lié @RGJ. L’importation intégrée constate que les balises ont changé et réimporte le message en supprimant la balise ajoutée.

Peut-être qu’un interrupteur pourrait être ajouté pour ignorer les changements de balises de sujet discourse ?

1 « J'aime »

Ajout d’une option pour désactiver les mises à jour des balises sur les sondages RSS. Faites-nous savoir si cela a résolu votre cas d’utilisation.

5 « J'aime »

Génial, merci pour la correction rapide !

Je me demandais si cette PR pouvait être évaluée :

1 « J'aime »

Le correctif mentionné par @Heliosurge provient de RSS Polling setting to use pubDate to set the date of imported topics. Pour moi, il est très pertinent pour ce sujet car nous avons commandé cette fonctionnalité et nous avons cette version de RSS Polling installée sur notre serveur. Nous avons des milliers de sujets importés avec les bonnes dates, et je crains que l’installation du plugin RSS standard pour tester le correctif d’hier par @featheredtoast ne casse les choses en apportant des milliers de modifications à des dates incorrectes ou autre.

Pour ce que ça vaut, nous utilisons la version corrigée depuis des semaines et nous avons importé des dizaines de flux différents sans le moindre problème. Cela fonctionne très bien et comme prévu.

2 « J'aime »

Je suis revenu au plugin officiel

Tous les sujets qui ne sont plus interrogés devraient aller bien.

Avant ce correctif, comme vous l’avez signalé, les anciens flux importés qui ne sont plus assez récents devraient rester inchangés.

Donc, tous les flux auxquels vous avez ajouté des balises manuellement et qui ne sont pas extraits iront bien.

1 « J'aime »

@Heliosurge si vous pouvez tester la correction ici, ce serait formidable. Nous continuons d’ajouter de nouveaux flux presque quotidiennement et pour nous, conserver le PubDate est crucial car chaque importation peut contenir des dizaines, voire des centaines d’entrées. En comparaison, nous pouvons attendre la solution pour les tags.

Si vous ajoutez toujours de nouveaux flux. Ces nouveaux flux n’auront pas de date de publication respectée comme vous le savez.

Tous les anciens flux, comme je l’ai mentionné, qui ne sont plus récupérés en raison de leur ancienneté. Ne changeront pas les balises.

Je ne suis pas sûr de l’ancienneté du sujet RSS. Pour qu’il ne soit plus dans la file d’attente.

Ce sujet a été automatiquement fermé après 4 jours. Les nouvelles réponses ne sont plus autorisées.