¿Podemos eliminar todos los mensajes 'Impulsados automáticamente' de una vez?

Buscado antes de publicar:
Me gusta ‘Auto Bumping the topics’ para mantener los temas renovados. Pero desearía que cuando los visitantes visitaran los temas, no se les mostraran decenas de mensajes de ‘Automáticamente Rebotado’.

¿Hay alguna forma de eliminarlos ocasionalmente, manualmente o automáticamente (o ambos)?

Pregunto esto porque he descubierto que a mi nivel, sea cual sea mi deseo, la mayoría de las veces ya se ha solucionado.

2 Me gusta

¡Hola @Bathinda!
Puedes hacer clic manualmente en el icono de eliminar, como cualquier otra publicación:

2 Me gusta

Gracias, pero esa no es una forma práctica de eliminar cientos de mensajes de “bump” en diferentes temas.

Ni siquiera pude seleccionar todos los mensajes de “bump” en un solo tema.

1 me gusta

No existe una función integrada para una acción masiva como esta.

Podrías usar un script de Rails para eliminar los mensajes de autoincremento existentes, algo como:

  1. Conéctate por SSH a tu servidor
  2. cd /var/discourse
  3. ./launcher enter app
  4. rails c
  5. Post.where("action_code = 'autobumped'").destroy_all

:warning: Siempre haz una copia de seguridad primero, por si acaso.

4 Me gusta

Eso es suficiente.
Gracias.

¿Hay algún comando con el que podamos primero listar/ver todos esos mensajes antes de dar el comando ‘destroy (eliminar)’?

1 me gusta

La mejor manera sería hacerlo desde la interfaz de Discourse con Data Explorer:

Utiliza la siguiente consulta:

SELECT * from posts
WHERE action_code = 'autobumped'

3 Me gusta

¡Ah! Esa es la consulta que me haría feliz. Gracias de nuevo.

2 Me gusta

Aunque la consulta sugerida muestra los temas que contienen mensajes de ‘auto-bumped’ en todos los temas. Pero resultó de poca ayuda.


Simplemente devuelve cientos de temas que contienen miles de mensajes de ‘Auto-Bumped’, pero no dice cuántos de esos mensajes existen en cuántos temas.

Así que, creo, al final, tendré que usar el hacha en las ‘habitaciones oscuras’ de la consola de rails solamente (lo cual es un poco intimidante).

Estoy un poco preocupado porque afectará a miles de temas/publicaciones de una sola vez. Si tan solo hubiera un botón de seleccionar todo dentro de los temas que seleccionara todos los mensajes de ‘bumping’ juntos y pudiéramos eliminar esos mensajes con un solo clic dentro de cualquier tema. Y si alguien quisiera eliminar todos esos mensajes en Todos los Temas con solo un comando tendría que ingresar ‘rails’.

No me estoy quejando. Solo me estoy expresando.

1 me gusta

¿La quinta línea del comando de rails que me indicaste preguntaría o solicitaría algo antes de eliminar todas esas publicaciones? ¿O simplemente haría lo que se le indicó, sin ninguna advertencia, etc., ni posibilidad de recuperación?

Si es posible, ¿podemos eliminar los ‘mensajes de impulso’ de cualquier tema primero, en lugar de eliminar de todo el sitio web?

Además, ¿puedes sugerir/indicar algún comando de rails para ver algunas muestras de las publicaciones que vamos a eliminar?

Gracias.

Algo como esto en el explorador de datos puede ayudar a dar una visión general:


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

Sin embargo, te lanzo una advertencia sobre el uso de la consola de Rails para realizar cambios como estos en un sitio en producción si no tienes experiencia con ella. Quizás quieras montar un sitio de prueba y practicar antes de lanzarte. :+1:

3 Me gusta

Sí, resolvió el problema en la medida en que lo ofrecieron los diseñadores/desarrolladores.

Pero aún así me gustaría decir que debería haber algún comando de ‘Administrador’, en la configuración del administrador o en el tema que se está viendo, para seleccionar todos los ‘mensajes duplicados (Auto-Bumped)’ en cualquier tema o en todos los temas y luego eliminarlos, cuando el administrador lo desee.

¿Quizás podrías ocultar esos mensajes con CSS en su lugar? Desafortunadamente, no creo que el widget post-small-action incluya actualmente el tipo de acción como una clase CSS, por lo que no puedes apuntar específicamente a los mensajes de “bump”. ¿Quizás un componente temático podría ayudar?

1 me gusta

Sí, lo comprobé antes de sugerir la solución del explorador de datos.
Agregar clases específicas a las acciones pequeñas podría ser una buena sugerencia de Feature.

1 me gusta

¿Puedes sugerir algo, por favor?
Puedo simplemente copiar y pegar lo mismo en un componente. No sé de codificación.

No he hecho mucho con la API de plugins, pero vi que hay un método que puede añadir clases a las publicaciones de acciones pequeñas:

Así que hice un componente de tema que incluía esto en la sección Head:

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

…y esto en la sección CSS:

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

…¡y el mensaje de autobumped desapareció!

No he hecho ninguna otra prueba, así que no sé si habría otros efectos secundarios. Es posible que las clases small-action-[...] entren en conflicto en algún otro lugar de la aplicación, en cuyo caso deberías elegir un prefijo que garantice ser único.

3 Me gusta

Tenga en cuenta que el método addPostSmallActionClassesCallback se agregó el mes pasado, por lo que necesita tener una versión bastante reciente de Discourse:

2 Me gusta

Gracias.
Por favor, elabore esto último: en cuyo caso deberías elegir un prefijo que garantice ser único.

Por ejemplo, podrías usar el prefijo bathinda-, que se garantizaría que no entraría en conflicto con nada en Discourse, ni ahora ni en el futuro. Se vería algo así:

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 Me gusta

@simonk

Gracias de nuevo. Creé y usé/activé el componente con éxito.
Aunque después de ocultar los mensajes de ‘Bump automático’, se ve así.

Un poco ‘poco atractivo’, mejor que nada/otras soluciones.

Ah, ya veo, es por los mensajes de desfase horario que no están ocultos. Esto es complicado porque no puedes apuntar a un elemento anterior con CSS.

1 me gusta