¿Es posible hacer una llamada a la API para obtener la lista de usuarios ignorados por el usuario y ocultar el tema que tiene ese ID de usuario o eliminar esos temas antes de que se renderice la lista de temas?
Aquí está mi implementación por ahora:
Inspirado en:
https://meta.discourse.org/t/topics-created-by-ignored-users-showing-on-homepage/170366/14
Y con este componente de tema:
También funcionará en dispositivos móviles.
Además, si actualizas esta línea:
por:
<a href="{{topic.lastPostUrl}}" data-user-card="{{topic.last_poster_username}}" data-user-id="{{topic.creator.username}}">{{avatar topic.lastPosterUser imageSize="large"}}</a>
y cambias mi código en:
https://github.com/notedboi/Discourse-Hide-Ignored-Users/blob/main/common/head_tag.html#L13
a:
let tr = $('*[data-user-id="' + ignored[u] + '"]');
podrás mantener la vista de la tarjeta/avata del último autor mientras se ocultan los temas creados por usuarios ignorados.
Mi única preocupación es que el script sigue verificando cada 500 ms y podría consumir demasiada memoria.
También estoy investigando cómo eliminar a los usuarios ignorados de la categoría de temas móviles.
<script type="text/x-handlebars" data-template-name="components/mobile-category-topic">
<td class="main-link" data-user-id="{{topic.creator.username}}">
<div class="topic-inset" >
{{raw "topic-status" topic=topic}}
{{topic-link topic}}
{{#if topic.unseen}}
<span class="badge-notification new-topic"></span>
{{/if}}
<span class={{cold-age-class topic.last_posted_at}} title={{raw-date topic.last_posted_at}}>{{format-age topic.last_posted_at}}</span>
</div>
</td>
<td class="num posts">{{raw "list/post-count-or-badges" topic=topic postBadgesEnabled="true"}}</td>
</script>
Cuando intenté agregar data-user-id a esta vista, no funcionó. ¿Estoy revisando la plantilla equivocada?
Actualización: He encontrado el problema. El objeto topic que se pasa desde category.topic no contiene el ID del creador del tema. Además, ninguna de las propiedades del objeto topic puede usarse como indicador para eliminar el tema. Estoy bloqueado. Agradecería cualquier ayuda
!
Estoy intentando actualizarlo y evitar el uso de setInterval, pero en caso de que alguien quiera usarlo, la última actualización admite tanto Miniaturas de temas como Extractos de la lista de temas.
Tu código no pareció funcionar e hizo que el foro fuera muy lento. ¿Alguna idea? @th21
Tal vez sea demasiado antiguo para usar, hice un nuevo componente si quieres probarlo.
Está basado en
He estado usando tu componente durante mucho tiempo y creo que debería ser parte del núcleo de Discourse, muchas gracias por crearlo. Desafortunadamente, ahora está siendo marcado porque necesita ser actualizado para las nuevas listas de temas de Glimmer:
Echaré un vistazo