Problema de generación de miniaturas y renderizado de markdown

Hola,

Desde la última versión de Discourse 2.5.0, tengo problemas con la generación de miniaturas.
Parece que ahora las miniaturas se generan desde el núcleo, lo que ha provocado que todas las miniaturas se borren.
He probado varias operaciones para restaurarlas y voy a explicar las situaciones en las que no funciona.

Nota: Probablemente haya una buena razón para este cambio, pero sería muy bienvenido no introducir un cambio de comportamiento repentino que rompa la funcionalidad sin ofrecer una forma de prepararse, con una guía de actualización y/o una opción para activar este cambio, por favor. :confounded:

Contexto

  • Discourse 2.5.0 beta4 (faeb5793ba)
  • Plugin Topic List Preview 4.4.0
  • Publicaciones de WP-Discourse publicadas tal cual (HTML completo) en los temas de Discourse (primer mensaje).

Sobre el contenido de una publicación, este es un ejemplo (formateado para ti):

Contenido

HTML de la imagen como código por conveniencia:

<img
        width="150"
        height="84"
        src="https://zuzu.reviews/wp-content/uploads/2020/05/HiZERO-VS-BISSEL-VS-שואב-אלחוטי-VS-שואב-רובוטי-VS-מגב-ודלי-VS-מטאטא-VS-ספונגה-חשמלית-150x84.jpg"
        class="attachment-thumbnail size-thumbnail"
        alt=""
        srcset="
            https://zuzu.reviews/wp-content/uploads/2020/05/HiZERO-VS-BISSEL-VS-שואב-אלחוטי-VS-שואב-רובוטי-VS-מגב-ודלי-VS-מטאטא-VS-ספונגה-חשמלית-150x84.jpg     150w,
            https://zuzu.reviews/wp-content/uploads/2020/05/HiZERO-VS-BISSEL-VS-שואב-אלחוטי-VS-שואב-רובוטי-VS-מגב-ודלי-VS-מטאטא-VS-ספונגה-חשמלית-300x169.jpg    300w,
            https://zuzu.reviews/wp-content/uploads/2020/05/HiZERO-VS-BISSEL-VS-שואב-אלחוטי-VS-שואב-רובוטי-VS-מגב-ודלי-VS-מטאטא-VS-ספונגה-חשמלית-1200x675.jpg  1200w,
            https://zuzu.reviews/wp-content/uploads/2020/05/HiZERO-VS-BISSEL-VS-שואב-אלחוטי-VS-שואב-רובוטי-VS-מגב-ודלי-VS-מטאטא-VS-ספונגה-חשמלית-1536x864.jpg  1536w,
            https://zuzu.reviews/wp-content/uploads/2020/05/HiZERO-VS-BISSEL-VS-שואב-אלחוטי-VS-שואב-רובוטי-VS-מגב-ודלי-VS-מטאטא-VS-ספונגה-חשמלית-2048x1152.jpg 2048w,
            https://zuzu.reviews/wp-content/uploads/2020/05/HiZERO-VS-BISSEL-VS-שואב-אלחוטי-VS-שואב-רובוטי-VS-מגב-ודלי-VS-מטאטא-VS-ספונגה-חשמלית-788x443.jpg    788w,
            https://zuzu.reviews/wp-content/uploads/2020/05/HiZERO-VS-BISSEL-VS-שואב-אלחוטי-VS-שואב-רובוטי-VS-מגב-ודלי-VS-מטאטא-VS-ספונגה-חשמלית.jpg           1280w
        "
        sizes="(max-width: 150px) 100vw, 150px"
    />
<div data-wp>
    <a
        href="https://www.banggood.com/Xiaomi-Redmi-Router-AC2100-2033Mbps-2_4G-5G-Dual-Band-Wireless-Router-6High-Gain-Antennas-128MB-OpenWRT-WiFi-Router-p-1614038.html"
        target="_blank"
        ><img src="https://zuzu.deals/wp-content/uploads/2020/01/5e3128b4e5da7-150x150.jpg"/>
    </a>
    <div>
        <div data-buy>
            <a
                href="https://www.banggood.com/Xiaomi-Redmi-Router-AC2100-2033Mbps-2_4G-5G-Dual-Band-Wireless-Router-6High-Gain-Antennas-128MB-OpenWRT-WiFi-Router-p-1614038.html"
                target="_blank">קנייה
            </a>
            <span data-clipboard-text="BG38b2ac" data-coupon>BG38b2ac</span><i></i>
        </div>
        <div data-price>$43.99</div>
    </div>
</div>
<hr />
<p>
    <small>
        &nbsp;פורסם ב:&nbsp;<a href="https://zuzu.deals/%d7%a7%d7%95%d7%a4%d7%95%d7%9f-%d7%91%d7%9c%d7%a2%d7%93%d7%99-%d7%a8%d7%90%d7%95%d7%98%d7%a8-%d7%97%d7%96%d7%a7-%d7%95%d7%97%d7%93%d7%a9-%d7%a9%d7%9c-%d7%a9%d7%99%d7%90%d7%95%d7%9e%d7%99-xiaomi-re-2/"></a>
    </small>
</p>
<br />
<p>נעים להכיר!</p>

Antes de la actualización de Discourse

TLP funcionaba siempre bien con nuestras imágenes externas, tanto al crear como al editar un tema.
Sin embargo, teníamos desactivada la opción descargar imágenes remotas a local debido a un problema con Markdown.

Problema de renderizado de Markdown

Este no es el problema principal, y sigue ocurriendo después de la actualización de Discourse. Aquí algunas explicaciones.
Cuando Discourse descarga y reemplaza el HTML de una imagen con su sintaxis Markdown – en nuestro contexto, esto resulta en:

[...]<a href="<link_here>" target="_blank">![|150x150](upload://l0iarnA6SPVAyJN5l7pnQxZnPvE.jpeg)</a>[...]

Discourse no puede renderizar la imagen

Imagen

image

Para solucionar el problema, necesitas al menos una línea en blanco arriba:

[...]<a href="<link_here>" target="_blank">

![|150x150](upload://l0iarnA6SPVAyJN5l7pnQxZnPvE.jpeg)</a>[...]
Imagen

¿Sería posible permitir el renderizado de imágenes Markdown rodeadas por HTML, por favor?

Después de la actualización de Discourse

  • Todas las miniaturas se eliminaron.
  • Todas las imágenes se muestran correctamente en el contenido del tema.
  • Debido a esta característica (FEATURE: Include optimized thumbnails for topics (#9215) · discourse/discourse@03818e6 · GitHub, creo), nos vimos obligados a activar la opción descargar imágenes remotas a local, ya que parece que ya no es posible obtener una miniatura desde un enlace externo… :pensive:
  • descargar imágenes remotas días máximos antiguos está configurado al máximo, 10000.
Configuración

A partir de esto, me dijeron que rebakeara todas las publicaciones para descargar la imagen. Y ahí es donde se pone extraño.

  1. rake posts:rebake no tuvo mucho efecto (al menos no en el primer mensaje de un tema, pero sí activó muchos PullHotlinkedImages).
    1.1. Al revisar algunos temas, pensé que el HTML de la imagen con atributos class o srcset era la causa, así que intenté normalizar todas las imágenes con el siguiente código (no sé Ruby) – Ayudó en algunos temas.
    1.2. Sin embargo, debido al problema de Markdown, tuve que añadir saltos de línea para solucionarlo. – Al menos en esos temas, las miniaturas funcionaron.
Código
Post.where(post_number: 1)
    .where("raw LIKE '%<img%/>%'")
    .each 
        do |post|
            post.raw.gsub!(/<img[^>]+(src="[^"]+")[^>]+\/>/, "<img \\1 />")
            post.save!(validate: true)
            post.rebake!  
        end

Post
  .where(post_number: 1)
  .where("raw LIKE '%upload://%'").each 
     do |post|  
       post.raw.gsub!(/(!\[.*upload:\/\/.*\))/, "\n\n\\1") 
       post.save!(validate: false); 
       post.rebake! 
     end
  1. Editar manualmente (sin cambiar el contenido, solo guardar) un tema ignorado funciona la mayoría de las veces. La imagen se descarga.
    2.1. Algunos temas siguen ignorados incluso después de una edición. Puedo ver que se activa PullHotlinkedImages, pero no se descargan imágenes. (como con este html <img src="https://zuzu.reviews/wp-content/uploads/2020/05/HiZERO-VS-BISSEL-VS-שואב-אלחוטי-VS-שואב-רובוטי-VS-מגב-ודלי-VS-מטאטא-VS-ספונגה-חשמלית-150x84.jpg" />, enlace)
  2. Después de normalizar y ver que una edición puede ayudar a descargar la imagen, intenté ejecutar rake posts:rebake varias veces – sin efectos.
  3. Luego intenté usar la consola de Rails similar al código anterior pero con un ID de tema específico y solo con post.rebake!sin efectos.
  4. No todas las imágenes de un tema siempre se descargan..
  5. @Canapin me señaló a Download remote images from older posts? - #3 by vinothkannans ; intentando rebakear todas las publicaciones ahora. – No ayudó, lamentablemente.

Es simplemente loco por qué algunas imágenes funcionan y otras no. No creo que sea un problema de criterios. La configuración de imágenes es alta. Realmente no entiendo cuál es la lógica detrás de esto, parece aleatorio.

Actualmente, aún tenemos muchas miniaturas faltantes. Probablemente la mayoría se puedan corregir manualmente editando/guardando, pero eso no es viable. Lo estoy haciendo para un cliente y ya he perdido mucho tiempo intentando solucionar el problema.

No me importa tener imágenes cargadas como miniaturas, pero:

  • ¿Puedes decirme si hay razones específicas por las que las imágenes no se descargan? ¿Hay configuraciones que puedan ayudar? ¿Necesitamos algo? ¿Cómo depurar?
  • ¿Existe una forma de forzar su descarga similar a editar/guardar a través de la consola?
  • ¿Pueden permitir el renderizado de imágenes Markdown si están rodeadas por HTML?

Espero haber sido lo suficientemente preciso en la descripción del problema.

Gracias de antemano por cualquier ayuda y solución.

2 Me gusta

Hola @Arkshine, lamentamos escuchar que estás teniendo problemas aquí. Lamentablemente, no podemos garantizar la compatibilidad con todos los plugins de terceros, especialmente cuando estos anulan el comportamiento principal más allá del alcance de nuestras APIs de plugin. De ahora en adelante, TLP debería poder reducir la cantidad de anulaciones del núcleo que utiliza, y esperamos que la estabilidad mejore.

Ten en cuenta que ahora también contamos con nuestra solución oficial para mostrar miniaturas, la cual está implementada completamente utilizando nuestras APIs de plugin compatibles.

Tienes razón en que las miniaturas del núcleo solo funcionan para imágenes locales. En última instancia, TLP también extraía imágenes y las almacenaba localmente, por lo que la diferencia ahora es que estamos haciendo todo de manera consistente utilizando el trabajo pull_hotlinked_images.

Parece que tenemos varios problemas que resolver aquí. Creo que lo mejor sería separarlos para que no nos perdamos nada. Al leer tu publicación, veo dos cosas:

La extracción de imágenes remotas no debería resultar en HTML/markdown inválido, así que intentaremos solucionarlo. Por favor, abre un tema bug, mencióname y lo investigaremos.

De nuevo, los caracteres especiales no deberían romper las imágenes aquí. Por favor, abre otro tema bug y lo revisaremos.

4 Me gusta

Gracias por la respuesta, @david.

En cuanto a Markdown, el enlace con caracteres especiales funcionará. Gracias.


Pero, en última instancia, mi principal problema sigue siendo hacer que Discourse fuerce la descarga de la imagen. El problema de Markdown se puede resolver desde la consola, y no todos los enlaces tienen caracteres especiales. Todavía tenemos muchos temas sin miniaturas. A esto es a lo que pido ayuda.

Por ejemplo, este no tiene caracteres especiales. Y a menos que haga clic en Guardar edición, la imagen no se descarga mediante la reconstrucción desde la consola, ni usando el enlace Reconstruir HTML.

¿Existe algún comando de Rails u otra cosa que pueda forzar a Discourse a descargar la imagen de la misma manera que al hacer Guardar edición?


De hecho, he intentado usar el componente, pero no funcionó bien. Pero le daré otra oportunidad una vez que se resuelvan los problemas de las miniaturas.

¿Es un sitio de afiliados?

Eso es extraño. Tengo una idea: ¿son estos mensajes creados por el usuario del sistema? ¿O por Discobot?

La mayoría de ellos son usuarios administradores normales. Esos temas se crean a través de la API de WP Discourse.

Por ejemplo, este:

@Arkshine, ¿se suponía que debía haber un enlace ahí?

Lo siento, estaba trabajando con un ejemplo mientras probaba cosas, pero pulsé el botón sin querer.

Dicho esto, empecé a ejecutar esto para ver si ayudaba (¡lo siento si te duele la vista!)

Post
  .joins(:topic)
  .where(post_number: 1)
  .where('topics.visible = true')
  .where('topics.deleted_at IS NULL')
  .each do |post| 
     post.baked_version = nil
     post.save!(validate: false)
     post.rebake!
   end

Tardó un tiempo. He visto bastantes Jobs::PullHotlinkedImages.
Pero parece que no ayudó mucho.

Si revisas un tema específico, por ejemplo, este tema.

Desde la consola, puedo ver que activa Jobs::ProcessPost pero no Jobs::PullHotlinkedImages

[106] pry(main)> Post.update_all(baked_version: nil)
=> 38808

[107] pry(main)> Post.where(post_number: 1, topic_id: 64215).each do |post| post.rebake!; end
=> [#<Post:0x0000557fe01f2fd8
  id: 79717,
  user_id: 3,
  topic_id: 64215,
  post_number: 1,
  raw:
   "<div data-wp><a href=\"https://www.mooki.co.il/gaming/hbilvt-giiming-mwtlmvt/mvwb-giiming-khvl-sparkfox-wvlhn-giiming-mqcvei-lumi-whvr-2\" target=\"_blank\"><img src=\"https://zuzu.deals/wp-content/uploads/2020/05/5ebcf97155cd2-150x150.png\" /></a><div><div data-buy><a href=\"https://www.mooki.co.il/gaming/hbilvt-giiming-mwtlmvt/mvwb-giiming-khvl-sparkfox-wvlhn-giiming-mqcvei-lumi-whvr-2\" target=\"_blank\">קנייה</a><span data-clipboard-text=\"GLA679\" data-coupon>GLA679</span><i></i></div><div data-price>₪679 <span data-old-price>₪1378</span></div></div></div><hr /><p><small>&nbsp;פורסם ב:&nbsp;<a href=\"https://zuzu.deals/%d7%91%d7%9c%d7%a2%d7%93%d7%99-%d7%95%d7%91%d7%9e%d7%97%d7%99%d7%a8-%d7%97%d7%98%d7%99%d7%a4%d7%94-%d7%9e%d7%95%d7%a9%d7%91-%d7%92%d7%99%d7%99%d7%9e%d7%99%d7%a0%d7%92-%d7%90%d7%93%d7%95%d7%9d-spark/\"></a></small></p><br><p><img src=\"https://www.mooki.co.il/pub/media/catalog/product/cache/0f831c1845fc143d00d6d1ebc49f446a/_/s/_sparkfox_k1_5_.png\" /></p>\n<p style=\"text-align: center;\">בין אם אתם גיימרים ובין אם אתם פשוט עובדים ויושבים כל היום והגב כבר זועק לכיסא טוב יותר, הנה לכם עוד מבצע בלעדי במחיר חטיפה!<br />\nכיסא גיימינג מפנק, אוזניות גיימינג ומשלוח מהיר בחינם, עם אחריות יבואן רשמי &#8211; רק ב679₪!!!</p>\n<p style=\"text-align: center;\">השתמשו בקופה בקופון הבלעדי &#8211; <strong>GLA679</strong></p>\n<div> <img src=\"https://zuzu.deals/wp-content/uploads/2020/05/90902-801-09_2_1.jpg\" /></div>\n<div>\n<h3 style=\"text-align: center;\">מושב גיימינג מקצועי SPARKFOX GC60P</h3>\n</div>\n<div>מושב גיימינג בעל עיצוב מיוחד למשחקי מחשב לנוחות מקסימאלית למשתמש</div>\n<div>\n<ul>\n<li>מושב בעל משענת גב גבוהה</li>\n<li>נוחות המקסימאלית למשך זמן משחק ארוך</li>\n<li>זוג כריות לתמיכה בצוואר ובגב התחתון</li>\n<li>סוג חומר: ספוג יצוק</li>\n<li>סוג מסגרת: מתכת</li>\n<li>חומר: עור עם סיבי פחם</li>\n<li>משענות ידיים: מתכווננות מעלה / מטה</li>\n<li>סוג מנגנון: פרפר</li>\n<li>סוג הרמה: הידראולית Class4</li>\n<li>טווח משענת גב: 90°-180°</li>\n<li>סוג בסיס: ניילון</li>\n<li>חומר גלגל: ניילון</li>\n<li>יכולת נשיאה: עד 150 ק"ג</li>\n<li>אחריות: שנה</li>\n</ul>\n<div><strong>מידות</strong></div>\n<div>\n<ul>\n<li>רוחב: 67 ס&quot;מ</li>\n<li>עומק: 67 ס&quot;מ</li>\n<li>גובה משתנה: 124-132 ס&quot;מ</li>\n</ul>\n<h3></h3>\n<p><img src=\"https://zuzu.deals/wp-content/uploads/2020/05/90902-802-08_3_1.jpg\" /></p>\n<h3 style=\"text-align: center;\">אוזניות גיימינג SPARKFOX K1</h3>\n<div>אוזניות גיימינג בעיצוב מיוחד לנוחות מקסימלית לשמע ודיבור וביטול רעשי רקע</div>\n<div>\n<ul>\n<li>ניתנות לשימוש ברוב הקונסולות הקיימות בשוק</li>\n<li>שמע וניהול שיחות בטלפונים ובמחשבים ניידים</li>\n<li>ווסת עוצמת השמע הינו בכבל של האוזנייה- לגישה נוחה</li>\n<li>שמע מעולה ממנהלי התקנים גדולים של 50 מ&quot;מ</li>\n<li>בקרי עוצמת הקול וההשתקה</li>\n<li>כוסות אוזניים מרופדות גדולות לנוחות מרבית</li>\n<li>קשת האוזנייה מתכווננת להתאמה מושלמת לראשכם</li>\n<li>מתחבר ישירות ליציאת בקרי 3.5 מ&quot;מ</li>\n</ul>\n</div>\n<div>מצורף מתאם מיוחד לחיבור האוזניות למחשב נייח ע&quot;י מפצל 3.5 מ&quot;מ ל 2 יציאות 3.5 מ&quot;מ</div>\n</div>\n</div>\n<p>&nbsp;</p>\n<div data-custom-html=\"\"></div>",
  cooked:
   "<div data-wp=\"\">\n<a href=\"https://www.mooki.co.il/gaming/hbilvt-giiming-mwtlmvt/mvwb-giiming-khvl-sparkfox-wvlhn-giiming-mqcvei-lumi-whvr-2\" target=\"_blank\"><img src=\"https://zuzu.deals/wp-content/uploads/2020/05/5ebcf97155cd2-150x150.png\"></a><div>\n<div data-buy=\"\">\n<a href=\"https://www.mooki.co.il/gaming/hbilvt-giiming-mwtlmvt/mvwb-giiming-khvl-sparkfox-wvlhn-giiming-mqcvei-lumi-whvr-2\" target=\"_blank\">קנייה</a><span data-clipboard-text=\"GLA679\" data-coupon=\"\">GLA679</span><i></i>\n</div>\n<div data-price=\"\">₪679 <span data-old-price=\"\">₪1378</span>\n</div>\n</div>\n</div><hr><p><small> פורסם ב: <a href=\"https://zuzu.deals/%d7%91%d7%9c%d7%a2%d7%93%d7%99-%d7%95%d7%91%d7%9e%d7%97%d7%99%d7%a8-%d7%97%d7%98%d7%99%d7%a4%d7%94-%d7%9e%d7%95%d7%a9%d7%91-%d7%92%d7%99%d7%99%d7%9e%d7%99%d7%a0%d7%92-%d7%90%d7%93%d7%95%d7%9d-spark/\"></a></small></p><br><p><img src=\"https://www.mooki.co.il/pub/media/catalog/product/cache/0f831c1845fc143d00d6d1ebc49f446a/_/s/_sparkfox_k1_5_.png\"></p>\n<p>בין אם אתם גיימרים ובין אם אתם פשוט עובדים ויושבים כל היום והגב כבר זועק לכיסא טוב יותר, הנה לכם עוד מבצע בלעדי במחיר חטיפה!<br>\nכיסא גיימינג מפנק, אוזניות גיימינג ומשלוח מהיר בחינם, עם אחריות יבואן רשמי – רק ב679₪!!!</p>\n<p>השתמשו בקופה בקופון הבלעדי – <strong>GLA679</strong></p>\n<div> <img src=\"https://zuzu.deals/wp-content/uploads/2020/05/90902-801-09_2_1.jpg\">\n</div>\n<div>\n<h3>מושב גיימינג מקצועי SPARKFOX GC60P</h3>\n</div>\n<div>מושב גיימינג בעל עיצוב מיוחד למשחקי מחשב לנוחות מקסימאלית למשתמש</div>\n<div>\n<ul>\n<li>מושב בעל משענת גב גבוהה</li>\n<li>נוחות המקסימאלית למשך זמן משחק ארוך</li>\n<li>זוג כריות לתמיכה בצוואר ובגב התחתון</li>\n<li>סוג חומר: ספוג יצוק</li>\n<li>סוג מסגרת: מתכת</li>\n<li>חומר: עור עם סיבי פחם</li>\n<li>משענות ידיים: מתכווננות מעלה / מטה</li>\n<li>סוג מנגנון: פרפר</li>\n<li>סוג הרמה: הידראולית Class4</li>\n<li>טווח משענת גב: 90°-180°</li>\n<li>סוג בסיס: ניילון</li>\n<li>חומר גלגל: ניילון</li>\n<li>יכולת נשיאה: עד 150 ק"ג</li>\n<li>אחריות: שנה</li>\n</ul>\n<div><strong>מידות</strong></div>\n<div>\n<ul>\n<li>רוחב: 67 ס\"מ</li>\n<li>עומק: 67 ס\"מ</li>\n<li>גובה משתנה: 124-132 ס\"מ</li>\n</ul>\n<h3></h3>\n<p><img src=\"https://zuzu.deals/wp-content/uploads/2020/05/90902-802-08_3_1.jpg\"></p>\n<h3>אוזניות גיימינג SPARKFOX K1</h3>\n<div>אוזניות גיימינג בעיצוב מיוחד לנוחות מקסימלית לשמע ודיבור וביטול רעשי רקע</div>\n<div>\n<ul>\n<li>ניתנות לשימוש ברוב הקונסולות הקיימות בשוק</li>\n<li>שמע וניהול שיחות בטלפונים ובמחשבים ניידים</li>\n<li>ווסת עוצמת השמע הינו בכבל של האוזנייה- לגישה נוחה</li>\n<li>שמע מעולה ממנהלי התקנים גדולים של 50 מ\"מ</li>\n<li>בקרי עוצמת הקול וההשתקה</li>\n<li>כוסות אוזניים מרופדות גדולות לנוחות מרבית</li>\n<li>קשת האוזנייה מתכווננת להתאמה מושלמת לראשכם</li>\n<li>מתחבר ישירות ליציאת בקרי 3.5 מ\"מ</li>\n</ul>\n</div>\n<div>מצורף מתאם מיוחד לחיבור האוזניות למחשב נייח ע\"י מפצל 3.5 מ\"מ ל 2 יציאות 3.5 מ\"מ</div>\n</div>\n</div>\n<p> </p>\n<div data-custom-html=\"\"></div>",
  created_at: Thu, 14 May 2020 07:55:31 UTC +00:00,
  updated_at: Tue, 26 May 2020 14:56:16 UTC +00:00,
  reply_to_post_number: nil,
  reply_count: 0,
  quote_count: 0,
  deleted_at: nil,
  off_topic_count: 0,
  like_count: 0,
  incoming_link_count: 2,
  bookmark_count: 0,
  score: 10.8,
  reads: 4,
  post_type: 1,
  sort_order: 1,
  last_editor_id: -1,
  hidden: false,
  hidden_reason_id: nil,
  notify_moderators_count: 0,
  spam_count: 0,
  illegal_count: 0,
  inappropriate_count: 0,
  last_version_at: Thu, 14 May 2020 09:19:26 UTC +00:00,
  user_deleted: false,
  reply_to_user_id: nil,
  percent_rank: 0.0,
  notify_user_count: 0,
  like_score: 0,
  deleted_by_id: nil,
  edit_reason: nil,
  word_count: 939,
  version: 3,
  cook_method: 1,
  wiki: false,
  baked_at: Tue, 26 May 2020 16:59:49 UTC +00:00,
  baked_version: 2,
  hidden_at: nil,
  self_edits: 2,
  reply_quoted: false,
  via_email: false,
  raw_email: nil,
  public_version: 3,
  action_code: nil,
  image_url: "https://zuzu.deals/wp-content/uploads/2020/05/5ebcf97155cd2-150x150.png",
  locked_by_id: nil,
  image_upload_id: nil>]

Si hago Guardar edición desde el compositor:

Veo bien image

Luego puedo ver que la imagen se ha descargado:

Ah, ya veo. El problema aquí es

Porque tenemos esta lógica antes de programar la extracción de imágenes hotlinked:

Esto está diseñado para evitar un bucle infinito de programación de trabajos de pull_hotlinked_image. Pero quizás necesitemos mejorar esta lógica. ¿Podrías revisar el historial de revisiones de uno de estos mensajes y ver por qué fue editado por última vez por el sistema?

2 Me gusta

Para este tema:

  1. image
  2. image (cambio de categoría)
  3. image (solo yo Guardar edición)
  4. image (el sistema reemplaza la imagen con markdown)

Así que, supongo que se debe al cambio de categoría?

1 me gusta

¡Sí, eso lo explicaría! Como solución a corto plazo, puedes ejecutar manualmente el trabajo de arrastrar imágenes enlazadas externamente haciendo algo como:

Jobs.enqueue_in(10, :pull_hotlinked_images, post_id: post.id)

Sin embargo, necesitamos una solución mejor. Lo añadiré a mi lista de tareas pendientes.

5 Me gusta

¡Increíble! ¡Déjame probar eso!

EDITO:

Solo para confirmar, el comando ayudó mucho. Ahora, la mayoría de las imágenes han vuelto. ¡Gracias de nuevo!

Aún quedan casos extremos sin procesar, como imágenes con caracteres especiales, o temas donde las imágenes están marcadas como rotas pero no lo son (una reconstrucción de HTML las repara, luego guarda la edición para descargarlas). Si #9890 se fusiona y se aplica una corrección para Markdown, probablemente se solucionará todo.

2 Me gusta

Acabo de fusionar esta corrección para las ediciones de system-user:

Creo que hemos extraydo todos los demás problemas en temas separados, pero si nos hemos perdido algo, siéntete libre de abrir otro @Arkshine

3 Me gusta

Por cierto, acabo de eliminar esta configuración. Ya no verificamos la antigüedad de la publicación al cargar imágenes con enlaces directos.

cc @merefield

6 Me gusta

Este tema se cerró automáticamente después de 28 horas. Ya no se permiten nuevas respuestas.