Les anciens articles de LazyYT n'ont pas été recuits après que lazy-yt a été remplacé par lazy-video

Il semble qu’actuellement, sur mes forums, j’aie des centaines ou des milliers de publications vides ou des publications auxquelles il manque simplement des vidéos YouTube, et la raison semble être que le contenu des publications cuites ressemble à ceci :

<div class="cooked">
<div class="lazyYT" data-youtube-id="WJxSNbAer9M" data-youtube-title="Starset - Die For You (Official Audio)" data-width="480" data-height="270" data-parameters="feature=oembed&amp;wmode=opaque">
</div>
</div>

Si je reconstruis les vidéos YouTube HTML, elles sont correctement cuites en utilisant lazy-video-wrapper.

J’ai fait quelques recherches et il semble que ce problème soit peut-être lié à cette PR : DEV: Remove lazy-yt and replace with lazy-videos by jancernik · Pull Request #20722 · discourse/discourse · GitHub Pour une raison quelconque, après ce changement, toutes les publications n’ont pas été re-cuites. Je ne suis pas un expert en SQL ou en Discourse, donc je ne suis pas sûr si le problème vient du script de migration lui-même ou s’il a échoué à un moment donné.

class RebakeLazyYtPosts < ActiveRecord::Migration[7.0]
  def up
    execute <<~SQL
      UPDATE posts SET baked_version = 0
      WHERE cooked LIKE '%lazyYT-container%'
    SQL
  end

Il semble que je doive re-cuire quelques milliers de publications contenant des liens YouTube. Comment devrais-je procéder ?

1 « J'aime »

Je pense qu’il est possible d’être limité en débit par YouTube lors de la re-cuisson d’une grande quantité de publications. Vous voudrez peut-être envisager de le faire par lots avec un délai pour éviter de le rencontrer à nouveau.

1 « J'aime »

Pourriez-vous m’indiquer une référence sur la façon de faire ? Je suppose qu’une méthode qui ne nécessiterait pas de session terminal active.

Je n’ai pas cherché à comprendre pourquoi mes publications n’étaient pas re-cuites, donc cela reste un mystère. Si quelqu’un rencontre ce problème et souhaite re-cuire manuellement ses publications, voici comment j’ai procédé :

Entrez dans la console Rails :

cd /var/discourse
./launcher enter app
rails c

Et j’ai exécuté ce script :

posts = Post.where ("cooked like '%lazyYT%'")
posts.each do |p|
    p.rebake!     
    sleep 1 
end

Une publication par seconde est plus lent que ce que j’aimerais, mais je voulais être absolument sûr de ne pas atteindre de limites YouTube s’il y en a. Pour 12 000 publications, l’attente n’était pas si mal.

2 « J'aime »

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.