WORLD OF WARCRAFT

Тема: Новостной телеграм-бот  (Прочитано 107 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Сентраши

  • Сообщений: 111
  • Репутация: 100
  • Grapist

  • Варкрафт: +
    • Имя: Ланкрал
    • Класс: Паладин
    • Сервер: Гордунни
Новостной телеграм-бот
« : 14 Августа, 2020, 14:10:21 »
  • Рейтинг 0



Сделал простенького бота, собирающего статьи с https://www.noob-club.ru/rss2.xml и превращающего их в Instant View (статьи, открываемые прямо в приложении). Для просмотра с телефона нашел для себя это очень удобным решением.



Сам бот тут: https://t.me/ncfeed
Бот как и создатель не преследуют никаких коммерческих целей, собрано из гуано и палок для ознакомления.

Правила для instant view оставлю ниже на случай, если захотите сделать своего бота, например. Сделано буквально на коленке, так что наверняка их можно значительно оптимизировать. Некоторые статьи может не отображать или отображать с ошибками.
~version: "2.0"


body:          /[has-class("post")]
title:         /[has-class("keyinfo") > h5]
subtitle:      /[has-class("poster") > h4]
cover:         $body[has-class("inner")]//img[1]


@remove:       //img[has-class("smiley")]
@remove:       /[has-class("flow_hidden")]
@remove:       //*[@id="blizzicon"]
@remove:       /[has-class("quoteheader")]


$icons:        //ul[has-class("bbc_list")]/li//img
<pic>:         $icons
$icons:        $@


$icons:        //span[has-class("bbc_size")]//img
<pic>:         $icons
$icons:        $@


@split_parent: //iframe


<figure>: $body//a[.//img]
<figure>: $body//blockquote[.//img]
@replace_tag(<div>): //table[has-class("bbc_table")]
@replace_tag(<h3>):  //span[has-class("bbc_size")]


@replace("maxWidth", "s"): //img/@src
@remove: $body//blockquote[has-class("imgur-embed-pub")]


$twitch: //iframe[contains(@src,'twitch')]




@if( $twitch) {
  @replace_tag(<a>): $twitch
  $twitch_links: //a[contains(@src,'twitch')]
  @append(Twitch): $twitch_links
  @set_attr(href, @src): $twitch_links
}


@if( //article ) {    # if <article> exists
  @append(<p>): $$    #   append paragraph into it
}


@remove:  //button
@remove:  //pic[ends-with(@src, ".svg")]
@remove:  //img[ends-with(@src, ".svg")]
@remove:  //p[has-class("ltag__user__social")]


P.S. Код бота на php, занимает пару десятков строк. Могу поделиться, если кому-то понадобится.
« Последнее редактирование: 08 Октября, 2020, 13:23:15 by Сентраши »

 


закрыть