Lista de temas (legacy)

¡Hola, gracias por el gran plugin!

Desafortunadamente, con la última actualización, las imágenes que no están alojadas directamente en Discourse ya no se muestran en la cuadrícula ni en los mosaicos. ¿Podrías revisarlo?

Por ejemplo, si la publicación tiene una imagen de otro servidor (Blogger, Picasa, …), ya no se muestran. Anteriormente, funcionaba perfectamente sin ningún problema.

1 me gusta

Las miniaturas ahora son generadas por el núcleo de Discourse y tengo poca influencia sobre eso ahora.

Gran parte de la lógica de generación de miniaturas ha sido eliminada y dejada a cargo de Discourse.

Podrías querer mencionar esto aquí: Theme modifiers: A brief introduction

2 Me gusta

¡Gracias! Acabo de crear una respuesta allí. Estoy un poco escéptico con todas las actualizaciones, ya que todas mis imágenes no están alojadas en un servidor local.

2 Me gusta

Creo que aún debería funcionar si tus ‘subidas’ están alojadas en un servidor remoto mediante la configuración, pero ya no se realizará hotlinking a sitios remotos ni a terceros no afiliados.

Ya no tiene sentido gestionar esta parte del código del complemento, dado que ahora es manejada por el núcleo. Es totalmente correcto que te pongas en contacto con ellos :+1:

4 Me gusta

Gracias. Entiendo la situación. No es una solución sencilla para mi sitio, ya que utilizamos otro servidor para alojar las imágenes. Ahora es demasiado difícil migrar al servidor afiliado con tantos publicaciones, y al mismo tiempo, es demasiado grande para alojarlo en un servidor local.

1 me gusta

El problema que tengo es que, cuando el complemento de eventos está activado, las miniaturas ya no se muestran en el móvil, como se discutió anteriormente. Pensé que te referías a esto.

Las miniaturas se ven bien para mí. ¿Estás seguro de que has actualizado los Eventos según @fzngagan?

2 Me gusta

Debe haberlo fusionado justo después de que lo probé. Gracias a todos, ¡ahora todo funciona!

3 Me gusta

Actualicé ayer y he tenido un rendimiento bastante deficiente. Al revisar el perfilador, veo esta consulta de TLP que parece ser la culpable: ¿quizás falta un índice aquí?

Curiosamente, esta consulta sigue apareciendo incluso cuando ejecuto el sitio en modo seguro :thinking:

1 me gusta

Características Imágenes. Esta consulta no ha cambiado en años (¡literalmente!). ¿Estás seguro de que se trata de un problema nuevo?

¿Estás ordenando por la fecha de creación de la etiqueta? Eso casi seguro que dará lugar a una consulta complicada. Ordenar por «Más reciente» será más sencillo.

Siempre puedes desactivar esta función por el momento.

El componente de tema utiliza la API principal. Si te está causando problemas, siempre puedes cambiar y usar esa por el momento.

1 me gusta

Supongo que es algo nuevo desde que actualicé a PG12. Y sí, necesitamos ordenar por fecha de creación de la etiqueta; eso es más bien una característica central de nuestra comunidad. ¿Qué perdería si cambiara a la TC?

PD: Recuerdo vagamente haber discutido el mismo problema con la fila destacada contigo hace años; haré algunas indagaciones.

2 Me gusta

¿Estás seguro de que la actualización a PG 12 ha terminado de reindexar? Muchos usuarios reportaron un período de rendimiento reducido mientras se realizaba este proceso (y esos informes no estaban relacionados con TLP).

Por cierto, pensándolo mejor, podría haber cambiado algo más, ya que ahora hay que hacer un JOIN con topic_thumbnails, pero eso también ocurrió hace un tiempo y no hemos recibido otros informes. Sospecho que antes simplemente usaba image_url con hotlink en el objeto Topic, lo cual habría sido más rápido (un JOIN menos), pero ya no es posible debido a un cambio en el núcleo. Eso podría estar contribuyendo.

1 me gusta

Sí, la reindexación ha finalizado. La ordenación por fecha de creación del tema presenta el mismo problema. Aquí está la salida de EXPLAIN para ambas consultas:

Ordenado por fecha de etiquetado:

discourse=# explain SELECT "topics"."id", "topics"."title", "topics"."last_posted_at", "topics"."created_at", "topics"."updated_at", "topics"."views", "topics"."posts_count", "topics"."user_id", "topics"."last_post_user_id", "topics"."reply_count", "topics"."featured_user1_id", "topics"."featured_user2_id", "topics"."featured_user3_id", "topics"."deleted_at", "topics"."highest_post_number", "topics"."like_count", "topics"."incoming_link_count", "topics"."category_id", "topics"."visible", "topics"."moderator_posts_count", "topics"."closed", "topics"."archived", "topics"."bumped_at", "topics"."has_summary", "topics"."archetype", "topics"."featured_user4_id", "topics"."notify_moderators_count", "topics"."spam_count", "topics"."pinned_at", "topics"."score", "topics"."percent_rank", "topics"."subtype", "topics"."slug", "topics"."deleted_by_id", "topics"."participant_count", "topics"."word_count", "topics"."excerpt", "topics"."pinned_globally", "topics"."pinned_until", "topics"."fancy_title", "topics"."highest_staff_post_number", "topics"."featured_link", "topics"."reviewable_score", "topics"."image_upload_id" 
discourse-# FROM "topics" 
discourse-# INNER JOIN "topic_tags" 
discourse-# ON "topic_tags"."topic_id" = "topics"."id" 
discourse-# INNER JOIN "tags" ON "tags"."id" = "topic_tags"."tag_id" 
discourse-# WHERE ("topics"."deleted_at" IS NULL) 
discourse-# AND "topics"."visible" = TRUE 
discourse-# AND (NOT topics.closed AND NOT topics.archived AND topics.deleted_at IS NULL) 
discourse-# AND (topics.image_upload_id in (
discourse(#         SELECT image_upload_id FROM topic_thumbnails
discourse(#       ))
discourse-# AND (tags.id IN (1)) 
discourse-# 
discourse-# ORDER BY (
discourse(#  SELECT created_at FROM topic_tags
discourse(#         WHERE topic_id = topics.id
discourse(#         AND tag_id IN (1)
discourse(#         LIMIT 1
discourse(# )
discourse-# 
discourse-# DESC LIMIT 6; 
                                                                    QUERY PLAN                                                         
            
---------------------------------------------------------------------------------------------------------------------------------------
------------
 Limit  (cost=2631719.94..2631719.95 rows=6 width=569)
   ->  Sort  (cost=2631719.94..2631721.73 rows=717 width=569)
         Sort Key: ((SubPlan 1)) DESC
         ->  Nested Loop  (cost=0.43..2631707.09 rows=717 width=569)
               ->  Seq Scan on tags  (cost=0.00..4.51 rows=1 width=4)
                     Filter: (id = 1)
               ->  Nested Loop  (cost=0.43..2625737.13 rows=717 width=565)
                     ->  Seq Scan on topic_tags  (cost=0.00..860.33 rows=1539 width=8)
                           Filter: (tag_id = 1)
                     ->  Index Scan using topics_pkey on topics  (cost=0.43..1705.57 rows=1 width=561)
                           Index Cond: (id = topic_tags.topic_id)
                           Filter: ((deleted_at IS NULL) AND visible AND (NOT closed) AND (NOT archived) AND (deleted_at IS NULL) AND (
SubPlan 2))
                           SubPlan 2
                             ->  Seq Scan on topic_thumbnails  (cost=0.00..2966.64 rows=171664 width=8)
               SubPlan 1
                 ->  Limit  (cost=0.29..8.31 rows=1 width=8)
                       ->  Index Scan using index_topic_tags_on_topic_id_and_tag_id on topic_tags topic_tags_1  (cost=0.29..8.31 rows=1
 width=8)
                             Index Cond: ((topic_id = topics.id) AND (tag_id = 1))
 JIT:
   Functions: 25
   Options: Inlining true, Optimization true, Expressions true, Deforming true
(21 filas)

Ordenado por fecha del tema:

discourse=# explain SELECT "topics"."id", "topics"."title", "topics"."last_posted_at", "topics"."created_at", "topics"."updated_at", "topics"."views", "topics"."posts_count", "topics"."user_id", "topics"."last_post_user_id", "topics"."reply_count", "topics"."featured_user1_id", "topics"."featured_user2_id", "topics"."featured_user3_id", "topics"."deleted_at", "topics"."highest_post_number", "topics"."like_count", "topics"."incoming_link_count", "topics"."category_id", "topics"."visible", "topics"."moderator_posts_count", "topics"."closed", "topics"."archived", "topics"."bumped_at", "topics"."has_summary", "topics"."archetype", "topics"."featured_user4_id", "topics"."notify_moderators_count", "topics"."spam_count", "topics"."pinned_at", "topics"."score", "topics"."percent_rank", "topics"."subtype", "topics"."slug", "topics"."deleted_by_id", "topics"."participant_count", "topics"."word_count", "topics"."excerpt", "topics"."pinned_globally", "topics"."pinned_until", "topics"."fancy_title", "topics"."highest_staff_post_number", "topics"."featured_link", "topics"."reviewable_score", "topics"."image_upload_id" FROM "topics" INNER JOIN "topic_tags" ON "topic_tags"."topic_id" = "topics"."id" INNER JOIN "tags" ON "tags"."id" = "topic_tags"."tag_id" WHERE ("topics"."deleted_at" IS NULL) AND "topics"."visible" = TRUE AND (NOT topics.closed AND NOT topics.archived AND topics.deleted_at IS NULL) AND (topics.image_upload_id in (
        SELECT image_upload_id FROM topic_thumbnails
      )) AND (tags.id IN (1)) ORDER BY (SELECT created_at FROM topic_tags
        WHERE topic_id = topics.id
        AND tag_id IN (1)
        LIMIT 1)
        DESC LIMIT 6; 
                                                                    QUERY PLAN                                                         
            
---------------------------------------------------------------------------------------------------------------------------------------
------------
 Limit  (cost=2631719.94..2631719.95 rows=6 width=569)
   ->  Sort  (cost=2631719.94..2631721.73 rows=717 width=569)
         Sort Key: ((SubPlan 1)) DESC
         ->  Nested Loop  (cost=0.43..2631707.09 rows=717 width=569)
               ->  Seq Scan on tags  (cost=0.00..4.51 rows=1 width=4)
                     Filter: (id = 1)
               ->  Nested Loop  (cost=0.43..2625737.13 rows=717 width=565)
                     ->  Seq Scan on topic_tags  (cost=0.00..860.33 rows=1539 width=8)
                           Filter: (tag_id = 1)
                     ->  Index Scan using topics_pkey on topics  (cost=0.43..1705.57 rows=1 width=561)
                           Index Cond: (id = topic_tags.topic_id)
                           Filter: ((deleted_at IS NULL) AND visible AND (NOT closed) AND (NOT archived) AND (deleted_at IS NULL) AND (
SubPlan 2))
                           SubPlan 2
                             ->  Seq Scan on topic_thumbnails  (cost=0.00..2966.64 rows=171664 width=8)
               SubPlan 1
                 ->  Limit  (cost=0.29..8.31 rows=1 width=8)
                       ->  Index Scan using index_topic_tags_on_topic_id_and_tag_id on topic_tags topic_tags_1  (cost=0.29..8.31 rows=1
 width=8)
                             Index Cond: ((topic_id = topics.id) AND (tag_id = 1))
 JIT:
   Functions: 25
   Options: Inlining true, Optimization true, Expressions true, Deforming true
(21 filas)
2 Me gusta

Útil. Gracias.

Lo siento, no estoy seguro de cuándo podré dedicarme a esto.

También ten en cuenta que el nuevo join podría mejorarse pero no puedo eliminarlo. (¡oh, sí que puedo!).

1 me gusta

OK, he trabajado con @bartv fuera de línea para mejorar esto.

Esto solo afecta al Plugin, no a la TC:

Recomiendo actualizar para aprovecharlo, ya que es una gran mejora para los sitios que utilizan imágenes destacadas.

5 Me gusta

¡Eres una estrella de rock! :guitar:

3 Me gusta

Tu detallada investigación también fue crucial, Bart, gracias.

3 Me gusta

Hola, he añadido la URL de git clone al archivo app.yml de los contenedores, pero al intentar reconstruir la aplicación obtengo el siguiente error:

(<desconocido>): se encontró un carácter de tabulación que viola la indentación mientras se escaneaba un escalar plano en la línea 91, columna 13 -e LANG=en_US.UTF-8

y el sitio web no funcionó.

He eliminado la URL de git clone para el plugin y de nuevo funciona.

1 me gusta

No creo que tu problema sea específico de este complemento. No puedes usar tabulaciones en tu archivo app.yml. Usa espacios.

2 Me gusta

Bien, lo siento. He copiado y pegado la última línea del plugin y he cambiado la URL de git clone. Ahora funciona, gracias :slight_smile:

2 Me gusta