Posts antigos do LazyYT cooked não foram rebaked após o lazy-yt ser substituído por lazy-video.

Parece que no momento em meus fóruns tenho centenas ou milhares de posts em branco ou posts que simplesmente não têm vídeos do YouTube e a razão parece ser que o conteúdo do post assado se parece com isto:

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

Se eu reconstruir, os vídeos do YouTube são assados corretamente usando lazy-video-wrapper.

Eu investiguei um pouco e parece que este problema pode estar relacionado a este PR: DEV: Remove lazy-yt and replace with lazy-videos by jancernik · Pull Request #20722 · discourse/discourse · GitHub Por algum motivo, após essa mudança, nem todos os posts foram reprocessados. Eu não sou um especialista em SQL ou Discourse, então não tenho certeza se o problema está no próprio script de migração ou se ele falhou em algum momento.

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

Parece que preciso reprocessar alguns milhares de posts com links do YouTube. Como devo proceder?

1 curtida

Acho que é possível ser limitado pela taxa do YouTube ao refazer um grande número de postagens. Talvez você queira considerar fazer isso em lotes com um atraso para evitar atingi-lo novamente.

1 curtida

Você poderia me indicar uma referência sobre como fazer isso? Suponho que de uma maneira que não exija uma sessão de terminal ativa.

Eu não investiguei por que minhas postagens não foram reprocessadas, então isso continua sendo um mistério. Se alguém encontrar esse problema e quiser reprocessar manualmente suas postagens, é assim que eu fiz:

Entre no console Rails:

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

E eu executei este script:

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

Uma postagem por segundo é mais lento do que eu gostaria, mas eu queria ter certeza absoluta de que não atingiria nenhum limite do YouTube, se houver. Para 12.000 postagens, não foi uma espera tão ruim.

2 curtidas

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