Il plugin RSS Polling rimuove i tag aggiunti manualmente

Sto importando feed RSS con il plugin RSS Polling. Non sto aggiungendo tag di default. Invece, il piano è che gli utenti aggiungano i tag manualmente. Ma il plugin rimuove i tag al prossimo pull. Vedi, ad esempio

MODIFICA: Pensavo potesse essere correlato all’impostazione create post for category and tag changes ma l’ho cambiata e i tag vengono ancora eliminati. Ad esempio:

MODIFICA 2: Ok, questo è ancora più strano. Un post che dice che alcuni tag sono stati rimossi ma i tag sono ancora lì…

Eseguo Discourse 3.3.0.beta3-dev ( c13f64d35b ) e RSS Polling 0.0.1 be7b56e.

1 Mi Piace

Forse correlato? C’è questo errore ricorrente nei log:

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'

E penso di aver trovato uno schema:

  • Se il campo “Tags” in /admin/plugins/rss_polling è vuoto, i tag aggiunti manualmente vengono rimossi al successivo polling.
  • Se quel campo ha un tag, allora i tag aggiunti manualmente sembrano rimanere.

Dopo ulteriori test, sono abbastanza sicuro che il problema sia che i tag vengono rimossi automaticamente quando il feed RSS su /admin/plugins/rss_polling non ha tag assegnati.

1 Mi Piace

Posso riprodurre questo. :raised_hand:

I miei passaggi:

  • Aggiungi https://meta.discourse.org/c/bug/1.rss a RSS Polling
  • Imposta utente e categoria, ma lascia vuoti i tag (salva)
  • Attendi che gli argomenti vengano importati
  • Seleziona un paio e aggiungi manualmente i tag
  • Attendi il prossimo sondaggio
  • Vedi un argomento con tag aggiunti manualmente è stato modificato per rimuoverli

Atteso: L’argomento interrogato con tag aggiunti manualmente non dovrebbe essere modificato per rimuovere tali tag
Reale: I tag degli argomenti interrogati vengono sovrascritti

(Nessun errore in /logs)

6 Mi Piace

Strano. Continua a segnalare questo errore. 1344 istanze accumulate in una settimana. Sembra abbastanza generico.

1 Mi Piace

C’è una correzione nella roadmap vicina?

Immagino sia ancora presto. Mi stavo solo chiedendo se ci fossero novità.

Questo sta accadendo in TopicEmbed nel core

4 Mi Piace

Ho aggiornato questo in modo che se i tag sono nil o mancanti (come sono nel repro), i tag non verranno aggiornati:

Questo risolve il repro come elencato

2 Mi Piace

Ciao, penso che ci sia un nuovo problema ora. Ho appena aggiornato Discourse a 3.3.0.beta4-dev ( 7b8863fcd5 ) e ora ci sono alcuni post importati che continuano ad essere aggiornati ad ogni poll, senza che vengano visualizzate modifiche. Questo è ciò che questi post hanno in comune:

  • Sono tutti importati con RSS Polling.
  • Hanno ricevuto un tag quando sono stati importati, quello impostato in RSS Polling.
  • Abbiamo aggiunto un secondo tag manualmente.

Ecco un esempio di diff. Nessuna modifica visibile:

Per noi, questa è una regressione. Il bug precedente poteva essere aggirato aggiungendo un tag predefinito a tutti i feed RSS. Quindi i tag potevano essere aggiunti manualmente senza problemi. Ora la nostra lista Latest viene inondata da questi aggiornamenti ricorrenti senza modifiche.

Aggiornato: o forse è qualcosa di più specifico o locale? Perché non tutti gli argomenti con tag aggiunti manualmente vengono aggiornati. Sto rimuovendo e riaggiungendo i tag in alcuni dei post aggiornati per vedere se trovo uno schema. Risponderò qui con eventuali scoperte.

2 Mi Piace

Ok, posso confermare questo schema per gli argomenti che stanno riaffiorando:

  • Sono tutti importati con RSS Polling.
  • Hanno ricevuto un tag al momento dell’importazione, quello impostato in RSS Polling.
  • Abbiamo aggiunto manualmente un secondo tag.

Ero confuso perché solo alcuni argomenti con un tag aggiuntivo continuano a essere aggiornati e non tutti, ma la risposta è semplice: il feed RSS li sta ancora richiamando, mentre argomenti più vecchi o argomenti con solo voci recenti nel feed RSS logicamente non vengono attivati.

Se possibile, l’implementazione dovrebbe essere semplice come questa:

  1. Se un argomento importato è nuovo, importa i tag definiti nelle impostazioni di RSS Polling, se presenti.
  2. Se un argomento importato non è nuovo, non controllare affatto i tag.

In questo modo i nuovi argomenti importati arrivano con i tag previsti (o nessuno, se non sono definiti tag) e gli argomenti esistenti non subiscono modifiche/aggiornamenti a causa di tag modificati manualmente.

Puoi annullare questa patch finché non sarà in vigore una soluzione testata, per favore? La nostra pagina principale Latest è occupata da queste vecchie voci e siamo fortunati che abbiamo appena iniziato a taggare e ci sono solo una manciata di voci taggate manualmente. Altrimenti posso rimuovere i secondi tag per ora…

Sto ancora vedendo la rimozione dei tag durante l’estrazione

Puoi vedere che il “meta-hmd” viene rimosso. Questo tag è stato aggiunto manualmente e al prossimo pull viene rimosso.
Il tag “UploadVR” è configurato nel plugin RSS Polling. :slightly_frowning_face:

Come collegato da @RGJ. L’importazione dell’embed sta vedendo che i tag sono cambiati e sta reimportando il post rimuovendo il tag aggiunto.

Forse potrebbe essere aggiunta un’opzione per ignorare le modifiche ai tag degli argomenti di discourse?

1 Mi Piace

Aggiunta un’opzione per disabilitare gli aggiornamenti dei tag nei sondaggi RSS. Fateci sapere se questo ha risolto il vostro caso d’uso.

5 Mi Piace

Fantastico, grazie per la rapida correzione!

Mi chiedevo se questa PR potesse essere valutata

1 Mi Piace

La patch menzionata da @Heliosurge proviene da RSS Polling setting to use pubDate to set the date of imported topics. Per me è molto rilevante per questo argomento perché abbiamo commissionato quella funzionalità e abbiamo installato quella versione di RSS Polling sul nostro server. Abbiamo migliaia di argomenti importati con date corrette e temo che l’installazione del plugin RSS standard per testare la patch di ieri di @featheredtoast possa causare problemi portando migliaia di modifiche a date errate o qualcosa di simile.

Per quello che vale, stiamo eseguendo la versione patchata da settimane e abbiamo importato dozzine di feed diversi senza un singolo intoppo. Funziona benissimo e come previsto.

2 Mi Piace

Sono tornato al plugin ufficiale

Qualsiasi argomento non più sottoposto a polling dovrebbe andare bene.

Prima di questa patch, come hai segnalato, i vecchi feed importati che non sono più abbastanza nuovi dovrebbero rimanere invariati.

Quindi, qualsiasi feed a cui hai aggiunto tag manualmente che non vengono estratti andrà bene.

1 Mi Piace

@Heliosurge se potessi testare la correzione qui sarebbe fantastico. Stiamo ancora aggiungendo nuovi feed quasi quotidianamente e per noi mantenere il PubDate è fondamentale poiché ogni importazione potrebbe avere dozzine o addirittura centinaia di voci. Al contrario, possiamo aspettare la soluzione per i tag.

Se stai ancora aggiungendo feed completamente nuovi. Quei nuovi feed non avranno la data di pubblicazione rispettata, come sai.

Qualsiasi vecchio feed, come ho menzionato, che non viene più recuperato a causa dell’età. Non cambierà i tag.

Non sono sicuro di quanto debba essere vecchio l’argomento RSS. Affinché non sia più in coda.

Questo argomento è stato chiuso automaticamente dopo 4 giorni. Non sono più permesse nuove risposte.