I have a client for whom embedded youtube videos are missing. They appear in composer’s preview, but when the messages are saved, they disappear. They are working fine in try.discourse.org. I tried whitelisting youtu.be and changing the URL to a youtube.com url too. Neither solved the problem.
It seems that the problem was that recent Discourse updates have caused my DOI resolver plugin to muck things up. (I disabled a couple other things too, but it was definitely some plugin. . . )
Récemment, après une série de modifications et de mises à niveau de mon installation Discourse, il ne manque plus que deux choses. La première est l’impossibilité de reconstruire le conteneur de données, ce sur quoi je travaille encore, et la seconde est que tous les oneboxes fonctionnent sauf ceux avec des URL YouTube.
Depuis le serveur et le conteneur, je peux faire un CURL vers YouTube. Comment puis-je m’assurer qu’il s’agit bien d’un bannissement temporaire de l’adresse IP ?
Edit : Je confirme que ni la reconstruction (App) ni le rebaking n’affectent ce problème.
Edit 2 : En cherchant, j’ai vu que @jomaxro a commenté ici que des éléments comme CloudFlare peuvent affecter les oneboxes… un CDN peut-il affecter un seul onebox ? J’ai essayé de le mettre en mode développement, mais rien n’a changé.
Edit 3 : J’ai essayé de supprimer tous les plugins. Rien n’a changé. (De plus, je ne peux pas rebaker car il semble que les processus s’interrompent mutuellement).
Edit 4 : J’ai essayé la commande de @Overgrow et oui, effectivement j’ai un problème :
[1] pry(main)> posts = Post.where("raw like '%youtube%'").count
=> 72674
J’ai du mal à exécuter les commandes de rebaking car mon conteneur me renvoie ceci :
Cela pourrait fonctionner pour récuire lentement : Post.where("raw like '%youtube%'").where("cooked NOT LIKE '%lazyYT%'").update_all(baked_version: nil)
Tout d’abord, un grand merci d’avoir pris le temps de m’aider @riking.
J’ai exécuté cette commande et j’ai obtenu ce que je suppose être le nombre de publications manquantes : 22 462. D’après la dernière partie de la commande, peut-on supposer en toute sécurité qu’elle s’exécute en arrière-plan ?
Une expression rationnelle n’est pas nécessaire pour faire correspondre une chaîne dans un message. Une simple recherche de chaîne suffira pour trouver youtube (par exemple). Dans cet exemple, chaque message contenant la chaîne youtube sera retraité, un tous les 100 secondes (très lent…)
Environ 100 secondes se sont écoulées :
Je vais laisser cela tourner, en supposant que dans 76 200 secondes, plus ou moins, cette tâche rake sera terminée
Je devrais probablement avoir configuré cet exemple avec un délai de 10 secondes
Je voulais dire que je l’ai exécuté sur un petit échantillon, puis je l’ai relancé, mais le nombre n’a pas changé.
Par exemple : j’ai lancé la commande avec 76 000 publications, 200 ont été traitées, puis cela s’est arrêté. J’ai relancé et le nouveau nombre était de 76 200 (oui, peut-être que mes utilisateurs ont ajouté 400 publications avec YouTube… mais… je ne sais pas).
Maintenant, je le relance simplement pour voir comment cela se passe, mais cela prendra quelques jours (76 500 visites…)
Puisque personne d’autre ne rencontre ce problème, j’essaie d’identifier mes variables, à savoir :
Changement de machine (donc cela pourrait être une limitation de débit de YouTube ?)
Restauration d’une sauvegarde Discourse sur une nouvelle installation (cela ne devrait pas être lié, mais à ce stade, je parie sur tout ce qui bouge)
Installation en deux conteneurs (Je pensais avoir un problème avec la reconstruction des données, mais grâce à ces informations de @Falco, je sais maintenant que c’est « normal ».)
Ajout de CloudFlare par-dessus, en suivant les tutoriels CDN disponibles ici.
Ensuite, je me suis dit : « bon, bien sûr, il faut ajouter le minuteur, sinon on ne peut pas tester la « Théorie de la limite de débit » », alors j’ai essayé celle que vous avez partagée :
root@cont-web-only:/var/www/discourse# time rake posts:rebake_match['youtube',string,100]
216 / 76594 (0.2%)-
Je l’ai arrêtée juste pour vérifier si quelque chose changeait. Apparemment non, alors j’ai pensé : « d’accord, laissons-le repartir et voyons comment ça se passe » :
root@cont-web-only:/var/www/discourse# time rake posts:rebake_match['youtube',string,100]
116 / 76598 (0.2%)-
Cela tourne actuellement. Mon argument était donc que le nombre total de publications n’a pas diminué avec l’autre rebake. (Je pourrais avoir tort, et je le suis probablement, avec cette logique).