Vecchi post elaborati di LazyYT non sono stati rielaborati dopo che lazy-yt è stato sostituito con lazy-video

Sembra che al momento nei miei forum ci siano centinaia o migliaia di post vuoti o post a cui mancano i video di YouTube e il motivo sembra essere che il contenuto del post cotto appare così:

<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 ricostruisco i video di YouTube HTML vengono cotti correttamente utilizzando lazy-video-wrapper.

Ho fatto qualche ricerca e sembra che questo problema possa essere correlato a questo PR: DEV: Remove lazy-yt and replace with lazy-videos by jancernik · Pull Request #20722 · discourse/discourse · GitHub Per qualche motivo, dopo questa modifica, non tutti i post sono stati ricotti. Non sono un esperto di SQL o Discourse, quindi non sono sicuro se il problema sia nello script di migrazione stesso o nel fatto che sia fallito a un certo punto.

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

Sembra che debba ricuocere un paio di migliaia di post con link a YouTube. Come dovrei procedere?

1 Mi Piace

Penso sia possibile essere limitati da YouTube quando si rifanno molti post. Potresti prendere in considerazione di farlo in batch con un ritardo per evitare di raggiungerlo di nuovo.

1 Mi Piace

Potresti indicarmi una risorsa su come farlo? Suppongo un modo che non richieda una sessione attiva del terminale.

Non mi sono addentrato nel motivo per cui i miei post non sono stati ricotti, quindi rimane un mistero. Se qualcuno incontra questo problema e vuole ricuocere manualmente i propri post, ecco come ho proceduto:

Entra nella console di Rails:

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

E ho eseguito questo script:

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

Un post al secondo è più lento di quanto vorrei, ma volevo essere sicuro di non raggiungere eventuali limiti di YouTube, se ce ne sono. Per 12.000 post non è stata un’attesa così brutta.

2 Mi Piace

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