Possiamo eliminare tutti i messaggi 'Bumped Automatically' in una volta sola?

Cercato prima di pubblicare:
Mi piace ‘Auto Bumping dei topic’ per mantenere i topic aggiornati. Ma avrei voluto che quando un visitatore visita i topic, non gli venissero mostrati decine di messaggi di ‘Automaticamente aggiornato’.

C’è un modo per eliminarli occasionalmente, manualmente o automaticamente (o entrambi)?

Lo chiedo perché ho scoperto che al mio livello, qualunque sia il mio desiderio, la stessa cosa è per lo più già stata gestita.

2 Mi Piace

Ciao @Bathinda!
Puoi fare clic manualmente sull’icona di eliminazione, come qualsiasi altro post:

2 Mi Piace

Grazie, ma non è un modo pratico per eliminare centinaia di messaggi di “bump” su argomenti diversi.

Non sono nemmeno riuscito a selezionare tutti i messaggi di “bump” su un singolo argomento.

1 Mi Piace

Non esiste una funzionalità integrata per un’azione di massa di questo tipo.

Potresti usare uno script Rails per eliminare i messaggi di auto-bump esistenti, qualcosa come:

  1. Accedi al tuo server tramite SSH

  2. cd /var/discourse

  3. ./launcher enter app

  4. rails c

  5. Post.where("action_code = 'autobumped'").destroy_all

:warning: Esegui sempre prima un backup, per sicurezza.

4 Mi Piace

Va bene così.
Grazie.

C’è qualche comando con cui potremmo prima elencare/vedere tutti quei messaggi prima di dare il comando ‘destroy (elimina)’?

1 Mi Piace

Il modo migliore sarebbe farlo dall’interfaccia di Discourse con Data Explorer:

Utilizza la seguente query:

SELECT * from posts
WHERE action_code = 'autobumped'

3 Mi Piace

Ah!! Questa è la query che mi renderebbe felice. Grazie ancora.

2 Mi Piace

Sebbene la query suggerita mostri gli argomenti che contengono messaggi ‘auto-bumped’ in tutti gli argomenti. Ma si è rivelata di scarso aiuto.


Restituisce solo centinaia di argomenti che contengono migliaia di messaggi ‘Auto-Bumped’, ma non dice quanti messaggi di questo tipo esistono in quanti argomenti.

Quindi, penso che alla fine dovrò brandire l’ascia nelle ‘stanze buie’ della console di rails (il che è un po’ intimidatorio).

Sono un po’ preoccupato perché influenzerà migliaia di argomenti/post in una sola volta. Se solo ci fosse un pulsante seleziona tutto all’interno degli argomenti che selezionerebbe tutti i messaggi di bumping insieme e potremmo eliminare quei messaggi con un clic all’interno di qualsiasi argomento. E se qualcuno volesse eliminare tutti i messaggi di questo tipo in Tutti gli argomenti con un solo comando dovrebbe inserire ‘rails’.

Non mi sto lamentando. Sto solo esprimendo me stesso.

1 Mi Piace

La quinta riga del comando rails da te indicata chiederebbe o richiederebbe qualcosa prima di eliminare tutti quei post? O farebbe semplicemente ciò che le è stato detto di fare, senza alcun avviso, ecc., o possibilità di recupero?

Se possibile, possiamo eliminare i ‘messaggi di bumping’ da qualsiasi argomento per primo, invece di eliminarli da tutto il sito web?

Inoltre, puoi suggerirmi/dirmi un comando rails per visualizzare alcuni esempi dei post che stiamo per eliminare?

Grazie.

Qualcosa di simile nel data-explorer potrebbe aiutare a dare una panoramica:


SELECT p.topic_id,
       COUNT(p.id) AS count
FROM posts p
WHERE action_code = 'autobumped'
GROUP BY p.topic_id
ORDER BY count DESC

Tuttavia, vorrei mettere in guardia sull’uso della console di Rails per apportare modifiche come queste su un sito live se non si ha esperienza. Potresti voler creare un sito di prova e fare pratica prima di tuffarti. :+1:

3 Mi Piace

Sì, ha risolto il problema per quanto offerto dai designer/sviluppatori.

Ma vorrei comunque dire che dovrebbe esserci un comando ‘Admin’, nelle impostazioni di amministrazione o nell’argomento visualizzato, per selezionare tutti i ‘messaggi duplicati (Auto-Bumped)’ in un argomento qualsiasi o in tutti gli argomenti e quindi rimuoverli, ogni volta che l’amministratore lo desidera.

Forse potresti nascondere quei messaggi con CSS? Sfortunatamente, non credo che il widget post-small-action includa attualmente il tipo di azione come classe CSS, quindi non puoi puntare specificamente ai messaggi di bump. Forse un componente a tema potrebbe aiutare?

1 Mi Piace

Sì, l’ho controllato prima di suggerire la soluzione del data explorer.
Aggiungere classi specifiche alle piccole azioni potrebbe essere un buon suggerimento per una #funzionalità.

1 Mi Piace

Puoi suggerirmi qualcosa per favore.
Posso semplicemente copiare e incollare la stessa cosa in un componente. Non conosco la programmazione.

Non ho fatto molto con l’API dei plugin, ma ho visto che c’è un metodo che può aggiungere classi ai post di piccole azioni:

Quindi ho creato un componente tema che includeva questo nella sezione Head:

<script type="text/discourse-plugin" version="1.6.0">
  api.addPostSmallActionClassesCallback(post => {
    return ["small-action-" + post.actionCode]
  });
</script>

…e questo nella sezione CSS:

.small-action.small-action-autobumped {
  display: none;
}

…e il messaggio di autobump è scomparso!

Non ho fatto altri test, quindi non so se ci potrebbero essere altri effetti collaterali. È possibile che le classi small-action-[...] possano entrare in conflitto altrove nell’applicazione, nel qual caso dovresti scegliere un prefisso che sia garantito essere univoco.

3 Mi Piace

Si noti che il metodo addPostSmallActionClassesCallback è stato aggiunto solo il mese scorso, quindi è necessario disporre di una versione abbastanza recente di Discourse:

2 Mi Piace

Grazie.
Si prega di elaborare quest’ultima frase: in tal caso dovresti scegliere un prefisso che sia garantito essere univoco.

Ad esempio, potresti usare il prefisso bathinda-, che è garantito non entrerà in conflitto con nulla in Discourse né ora né in futuro. Sarebbe qualcosa di simile a questo:

Head:

<script type="text/discourse-plugin" version="1.6.0">
  api.addPostSmallActionClassesCallback(post => {
    return ["bathinda-" + post.actionCode]
  });
</script>

CSS:

.small-action.bathinda-autobumped {
  display: none;
}
2 Mi Piace

@simonk

Grazie ancora. Creato e utilizzato/attivato il componente con successo.
Tuttavia, dopo aver nascosto i messaggi ‘Automatically Bumped’, sembra così.

Un po’ ‘non amabile’, meglio di niente/altre soluzioni.

Ah capisco, è a causa dei messaggi con intervallo di tempo che non sono nascosti. Questo è complicato perché non puoi selezionare un elemento precedente con CSS.

1 Mi Piace