Замените атрибут "data-original" на sr c в режиме мгновенного просмотра телеграммы - PullRequest
0 голосов
/ 20 марта 2020

Мне нужно заменить атрибут «data-original» на «sr c», используя код шаблона телеграммы.

У меня ошибка с шаблоном мгновенного просмотра телеграммы.

Image source not found: src attribute expected in <img data-plugin-lazyload="" data-plugin-options="{'effect' : 'fadeIn'}" data-original="https://site.com.br/thumbs/chamadas/xbox.jpg" alt="PS5 e Xbox Series X podem atrasar por causa do Coronavírus, estima analista" title="PS5 e Xbox Series X podem atrasar por causa do Coronavírus, estima analista"/>

Оригинальный сайт использует атрибут «data-original» во всех изображениях вместо атрибута «sr c» из-за сценария отложенной загрузки. Я пытаюсь извлечь data-original из тега и заменить атрибутом sr c на data-original value.

Думаю, я могу получить узлы img, используя:

//section[has-class("section")]//img

И Я могу получить исходные узлы данных, если использую:

//section[has-class("section")]//img/@data-original

Результат отладки:

-------
Debug 6 nodes:
  [0]:  data-original="https://site.com.br/thumbs/chamadas/xbox.jpg"
  [1]:  data-original="https://site.com.br/uploads/2020/03/15/63185/consoles-next-gen-aberta.jpg"
  [2]:  data-original="https://site.com.br/thumbs/chamadas/B550chamada.jpg"
  [3]:  data-original="https://site.com.br/thumbs/chamadas/nvidia-rtx-ampere-chamada.jpg"
  [4]:  data-original="https://site.com.br/thumbs/chamadas/amd-zen-3-zen-4-roadmap-0.jpg"
  [5]:  data-original="https://site.com.br/thumbs/chamadas/xbox-srs-x-chamada1.jpg"

Я пробовал много комбинаций без успеха, как:

@replace("data-original", "src"): $body//img/@data-original

И самая близкая попытка:

@replace("data-original", "src"): //section[has-class("section")][.//img]

Но в этом последнем коде он удаляет все теги img, и весь текст помещается в одну строку <p> только так, чтобы все статьи имели только одну строку абзаца со всем содержимым и нет изображений.

Теоретически «просто» (не просто) замена атрибута «data-original» на «sr c» сделает работу с шаблоном.

Ссылки могут помочь:

# 1 Мгновенный просмотр справочника

# 2 Мгновенный просмотр справочника

# 3 Мгновенный просмотр документов

# 4 Средний Мгновенный просмотр шаблона

1 Ответ

1 голос
/ 20 марта 2020

Я сделал это, используя следующий сниппет:

# first of all, site use an attribute object to renderize lazy loaded images. Let convert them to img src attrbute so we cna ride of src not set error
<abc>: //div[has-class("news__text")]//img # Find all images in content div class and convert it to <abc>

@set_attr(src, ./@data-original) # Set src attribute from data-original

$imagetag # var to current <abc>

<img>: //div[has-class("news__text")]//abc # Find abc and convert it to <img> again with seted src

Все на основе ответа @ haacki47 в:

...