La miniature YouTube n’apparaît pas dans la liste des sujets, par exemple avec le thème Fakebook ou le plugin TLP.
Scénario de reproduction (STR) :
Publier une vidéo YouTube, passer au thème Fakebook : aucune miniature n’apparaît.
Solution de contournement :
Reconstruire le sujet fait réapparaître la miniature. Cependant, étant donné que les utilisateurs s’attendent à ce que la miniature s’affiche immédiatement sans intervention du personnel, ce n’est pas une solution idéale.
Plus d’informations :
Topic.image_url semble être nil.
Cela semble s’être cassé récemment, début août… Je pense que cela fonctionnait avant le 5 août (mais je ne suis pas sûr de la date exacte de la rupture). J’ai remarqué que cela correspond à peu près à une nouvelle version de Onebox…
J’ai testé cela sur une version précédente et le problème n’était pas présent, ce qui élimine l’hypothèse d’une réponse og de YouTube. De plus, le thème Fakebook présente le même comportement que le plugin TLP, ce qui élimine également ce dernier. Je soupçonne donc une régression récente dans Discourse ou Onebox.
C’est un vrai problème pour les utilisateurs des aperçus de la liste des sujets.
@nbianca pourquoi n’utilisons-nous plus la méthode post.post_analyzer.found_oneboxes? ici ?
Tous les oneboxes utilisant soit oembed soit iframe échoueront avec le nouveau mode de sélecteur CSS, ce qui rend également notre détecteur de Onebox différent dans l’ensemble du code.
Le problème était que le First Onebox était attribué pour tout lien publié, qu’il s’agisse ou non d’un Onebox. Cela se produit parce que PrettyText ajoute class="onebox" à tous les liens, puis Oneboxer tente d’analyser tous les liens ayant la classe onebox.
La modification que j’ai apportée vérifie si le document final contient des Oneboxes (les Oneboxes sont des aside avec la classe onebox). Je vais examiner de plus près la situation pour comprendre ce qui est cassé et pourquoi, et je reviendrai avec une correction qui résoudra les deux problèmes.
J’ai apporté quelques améliorations ici et créé cette PR.
Je viens de tester la version 2.3.2 et il ne semble pas que les liens YouTube définissent l’attribut image_url du sujet. La raison en est que l’image est extraite de l’attribut src d’une balise img, mais lorsqu’un lien vidéo YouTube est ajouté, il y a un div avec un attribut CSS background-image.
Êtes-vous certain que image_url était défini auparavant ?
Je pense que je devrai effectuer une analyse plus approfondie, mais il semble que des changements suffisants aient eu lieu pour rompre la compatibilité avec TLP.
Je vais creuser un peu plus et revenir en arrière. Malheureusement, je ne serai peut-être pas disponible au cours des prochains jours.
C’est très étrange que le bisect ait trouvé un changement dans cooked_post_processor… Je vais vérifier à nouveau et annuler.
Oui, confirmé :
Avec ce commit, cela échoue : 7c83d2eeb261ac676a8320e6a704752c56fd242e
Avec ce commit précédent, tout va bien : 922c40f87cdceb8197dd61361334e0def23f13d5