Sto migrando un forum legacy con circa 1,3 milioni di post e vent’anni di storia verso Discourse.
Ciò che vorrei evitare è che ogni utente mostri 0 minuti di lettura dall’inizio subito dopo una migrazione riuscita, dato che molti hanno 5, 10 e alcuni oltre 15 anni di storia.
Considerando l’enfasi di Discourse sul tempo di lettura (che secondo me è ottima), sarebbe bello poter calcolare, con il massimo sforzo possibile, questa statistica per gli utenti con una storia significativa, in modo che non abbiano la sensazione che il loro contributo sia stato azzerato dopo la migrazione. (Sebbene la gamification possa essere una grande fonte di ispirazione e motivazione, può anche demoralizzare quando le statistiche di cui gli utenti vanno fieri vengono azzerate.)
So che non esiste un modo perfetto per visualizzare dati che non erano mai stati tracciati in precedenza, ma esiste uno script che posso eseguire, o forse qualcosa da aggiungere a uno script di importazione, che stimi il tempo di lettura storico di un utente in base al suo attuale numero di post?
Qualcosa del genere:
PostCount = SELECT posts_count FROM posts WHERE id = (ID utente corrente in importazione)
ReadTimePerPost = 300 (secondi)
RetroactiveReadTime = PostCount * ReadTimePerPost
Sarebbe teoricamente possibile farlo e poi inserire quel numero nel database associato a ciascun utente?
In tal caso, dove e come viene memorizzato il tempo di lettura?
A proposito, attribuire a ogni post un valore di 300 secondi di tempo di lettura è solo una mia stima. Onestamente è probabilmente molto bassa, considerando tutto, ma molto più accurata di 0.
Post.where(user_id: user.id).where(some other stuff?).each do |post|
PostTiming.create(topic_id: post.topic_id, post_number: post.post_number, user_id: user.id, msecs: READ_TIME_MSECS
end
Se ho fatto bene i calcoli, 300 secondi fanno 5 minuti. Pensi che ci siano voluti 5 minuti per leggere e rispondere a questo post?
Non ho ancora avuto il tempo di riflettere sui tempi. Quello che pensavo è che il tempo di lettura non tenga tecnicamente conto solo dei momenti in cui un post è il risultato della lettura. Molte persone leggono molto e dedicano molto tempo allo scorrimento veloce, cosa che non verrebbe affatto considerata basandosi solo sul tempo necessario per leggere e pubblicare.
Detto questo, preferirei sottostimare piuttosto che sovrastimare.
Ho eseguito decine di importazioni. Nessuno ha mai chiesto di inventare tempi di lettura falsi. Sono sicuro che le persone sapranno che le statistiche iniziano dal momento in cui siete passati a Discourse.
Un uso molto più prezioso del tuo tempo è probabilmente identificare quale soglia automatica utilizzare per concedere il livello TL2 agli utenti importati e selezionare manualmente le persone della tua comunità di cui ti fidi, che abbiano buon giudizio riguardo ai titoli e alla categorizzazione, per iniziare come TL3.
La promozione a TL è l’utilizzo principale delle statistiche sui tempi di lettura che potrebbe plausibilmente essere rilevante per un’importazione.