Come eliminare in massa i vecchi sussurri

Continuiamo la discussione da Operazioni di massa amministrative:

Sto cercando un modo per eliminare i messaggi privati (whispers) oltre una certa età da tutti i topic.

In genere usiamo i messaggi privati per discutere potenziali azioni dei moderatori, ma una volta che l’azione è stata intrapresa, i messaggi privati non sono più così utili e col passare del tempo diventano sempre più rumore di fondo.

Potrei eliminare i post oltre una certa età con post_type=4 (whisper), ma questo potrebbe lasciare cose sospese o inconsistenti nel database, o non essere consentito a causa delle chiavi del forum.

Esiste un modo sicuro per farlo?

2 Mi Piace

Questo sarebbe il modo più pulito per eliminare i post:

whispers = Post.where(post_type: 4).where("created_at < ?", 1.year.ago)

whispers.find_each do |w|
  PostDestroyer.new(Discourse.system_user, w, skip_staff_log: true).destroy
  putc "."
end

In pratica, questo farà sì che sia come se l’utente di Sistema avesse eliminato manualmente ogni post utilizzando il pulsante di eliminazione sul post. Ho incluso skip_staff_log in modo da non intasare i tuoi log dello staff, ma puoi rimuoverlo se preferisci registrare l’azione.

Credi che questo soddisfi le tue esigenze?

4 Mi Piace

Penso che sia perfetto, grazie!

Proverò su un’istanza di test e vediamo quanto ci vuole, dato che probabilmente abbiamo diverse migliaia di messaggi privati!!!

2 Mi Piace

Quindi questo compito funziona bene, grazie… ma i messaggi privati sono semplicemente accorpati e rimangono visibili agli amministratori e ai moderatori quando vengono espansi.

Questo riordina gli argomenti, ma speravo che potessero essere rimossi completamente. Mi chiedevo se fosse possibile spostare tutti i messaggi privati in un nuovo argomento, per poi cancellarlo o nasconderlo almeno ai moderatori, ma poi ho trovato questo: Is there a way to remove all the deleted/hidden posts? e più recentemente: Why is it not possible to permanently delete topics or posts?

Purtroppo quanto sopra suggerisce che non esiste un modo per rimuovere permanentemente i dati :frowning: