Aperçu de la liste des sujets (legacy)

Bonjour, merci pour l’excellent plugin !

Malheureusement, avec la dernière mise à jour, les images qui ne sont pas hébergées directement sur Discourse n’apparaissent plus dans la grille ou les vignettes. Pourriez-vous vérifier cela ?

Par exemple, si un message contient une image provenant d’un autre serveur (Blogger, Picasa, …), elle n’apparaît plus. Auparavant, cela fonctionnait parfaitement sans aucun problème.

1 « J'aime »

Les vignettes sont désormais générées par le noyau de Discourse et j’ai peu d’influence là-dessus.

Une grande partie de la logique de génération des vignettes a été retirée et confiée à Discourse.

Vous voudrez peut-être en parler ici : Theme modifiers: A brief introduction

2 « J'aime »

Merci ! Je viens juste de répondre là-bas. Je suis un peu sceptique avec toutes ces mises à jour, car toutes mes images ne sont pas hébergées sur un serveur local.

2 « J'aime »

Je pense que cela devrait toujours fonctionner si vos ‘uploads’ sont hébergés sur un serveur distant via les paramètres, mais il ne fera plus de lien direct vers des sites distants et des tiers non affiliés.

Il n’a plus de sens de gérer cette partie du code dans le plugin, car elle est désormais gérée par le cœur du système. Vous avez tout à fait raison de les contacter :+1:

4 « J'aime »

Merci. Je comprends la situation. Ce n’est pas une solution facile à mettre en œuvre pour mon site, car nous utilisons un autre serveur pour héberger les images. Il est trop difficile de migrer vers un serveur affilié avec autant de publications, et en même temps, le volume est trop important pour un hébergement local.

1 « J'aime »

Le problème que je rencontre est que, lorsque le plugin Événements est activé, les miniatures ne s’affichent plus sur mobile, comme nous en avons déjà discuté. Je pensais que c’est de cela que vous parliez.

Les vignettes s’affichent correctement pour moi. Êtes-vous certain d’avoir mis à jour les événements conformément à @fzngagan ?

2 « J'aime »

Il a dû fusionner cela juste après que je l’eus testé, merci les gars, tout fonctionne maintenant !

3 « J'aime »

J’ai effectué une mise à jour hier et je rencontre des performances plutôt médiocres. L’analyse du profileur me montre cette requête de TLP qui semble être la cause du problème — peut-être manque-t-il un index ici ?

Ce qui est curieux, c’est que cette requête apparaît toujours lorsque j’exécute le site en mode sans échec :thinking:

1 « J'aime »

Fonctionnalité Images. Cette requête n’a pas changé depuis toujours (comme des années !). Êtes-vous certain qu’il s’agit d’un nouveau problème ?

Triez-vous par date de création de l’étiquette ? Cela risque presque d’entraîner une requête compliquée. Le tri par « Dernier » sera plus doux.

Vous pouvez toujours désactiver cette fonctionnalité pour le moment.

Le composant Thème utilise l’API principale. Vous pourriez toujours basculer et l’utiliser pour le moment si cela vous pose problème.

1 « J'aime »

C’est nouveau depuis que j’ai passé à PG12, je suppose. Et nous avons besoin d’un tri par date de création des tags, c’est plutôt une « fonctionnalité » essentielle de notre communauté. Qu’est-ce que je manquerais si je passais au TC ?

P.S. : Je me souviens vaguement avoir discuté de ce même problème avec la ligne mise en avant avec vous il y a des années, je vais faire quelques recherches.

2 « J'aime »

Êtes-vous sûr que la mise à niveau vers PG 12 a terminé la réindexation ? De nombreux utilisateurs ont signalé une période de performances réduites pendant ce processus (et ces signalements n’étaient pas liés à TLP).

Au fait, en y réfléchissant, autre chose a peut-être changé : il faut désormais faire une jointure avec topic_thumbnails, mais cela remonte aussi à un certain temps et nous n’avons reçu aucun autre signalement. Je soupçonne qu’auparavant, on utilisait simplement un hotlink image_url dans l’objet Topic, ce qui était plus rapide (une jointure de moins), mais ce n’est plus possible pour nous suite à un changement du cœur. Cela pourrait y contribuer.

1 « J'aime »

Oui, le réindexage est terminé. Le tri par date de création du sujet pose le même problème. Voici la sortie EXPLAIN pour les deux requêtes :

Trié par date de balisage :

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 rows)

Trié par date du sujet :

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 rows)
2 « J'aime »

Utile. Merci.

Désolé, je ne suis pas sûr de quand je pourrai m’en occuper.

Sachez également que le nouveau join pourrait être amélioré mais je ne peux pas m’en débarrasser. (oh oui, je le pouvais !).

1 « J'aime »

OK, j’ai travaillé hors ligne avec @bartv pour améliorer cela.

Cela n’affecte que le Plugin, pas le TC :

Je recommande de mettre à niveau pour en bénéficier, car il s’agit d’une amélioration majeure pour les sites utilisant des images mises en avant.

5 « J'aime »

Tu es une vraie rockstar ! :guitar:

3 « J'aime »

Votre enquête détaillée a également été cruciale, Bart, merci.

3 « J'aime »

Bonjour, j’ai ajouté l’URL de clonage Git dans le fichier app.yml de mon conteneur, mais lorsque je tente de reconstruire l’application, j’obtiens l’erreur suivante :

(<unknown>): un caractère de tabulation a été trouvé, ce qui viole l'indentation lors de l'analyse d'un scalaire simple à la ligne 91, colonne 13 -e LANG=en_US.UTF-8

Le site web ne fonctionne plus.

J’ai supprimé l’URL de clonage Git pour le plugin et tout fonctionne à nouveau.

1 « J'aime »

Je ne pense pas que votre problème soit spécifique à ce plugin. Vous ne pouvez pas utiliser d’onglets dans votre fichier app.yml. Utilisez des espaces.

2 « J'aime »

D’accord, désolé, j’ai copié-collé la dernière ligne du plugin et modifié l’URL de git clone. Ça fonctionne maintenant, merci :slight_smile:

2 « J'aime »