Flexget, Lostfilm.tv и Telegram - новая версия

flexget янв. 23, 2017

Нововведения

Начиная с версии 2.9.0 flexget, которая вышла в начале января этого года, изменилась подсистема уведомлений. Вот цитата с сайт разработчика:

Notification system has been changed once more. Hopefully we worked most of the kinks out of the new system with this one. Summary of changes:

Старый конфиг уже не подходит. Придется внести изменения:

Secrets

Для удобства я вынес все пароли, ключи ссылки и прочую конфиденциальную информацию в отдельный файл. Для этого необходимо воспользоваться плагином secrets.
В директории .flexget создаем папку private,  а в ней файл secretfile.yml следующего содержания:

transmlogin:
  host: xxxxxxxxxxx
lostfilm:
  cookie: uid=xxxxxxxxxxxx; pass=xxxxxxxxxxxxx; usess=xxxxxxxxxxxxxxxxxx
RRSUrls:
  lostfilm: http://www.lostfilm.tv/rssdd.xml
  baibako: http://baibako.tv/rss2.php?feed=dl&passkey=xxxxxxxxxxxxxxxx&cat=xxx,xxx
pushbullet:
  apikey: xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
telegram:
  bot_token: xxxxxxxxxxxxxxxxxx
  username: mr_xxxxx

Добавляем следующую строку в самое начало config.yml

variables: private/secretfile.yml

Notify

Приводим в нашем старом конфиге в разделе templates подраздел notification к следующему виду:

notifycation:
    notify:
      entries:
        message: |+
          *{{series_name}}* рейтинг: {{tvdb_ep_rating}}
          *{{tvdb_ep_name}}*
          _{{series_season}} сезон {{series_episode}} серия_         
          [Постер]({{tvdb_banner}})
        via:
          - telegram:
             bot_token: '{? telegram.bot_token ?}'
             parse_mode: markdown
             recipients:
               - username: '{? telegram.username ?}'

Отображения постеров сериалов в уведомлениях

Я отказался от использования постеров с сайта лостфильма. Выбрал более универсальное решение — использование данных с сайта thetvdb.com
В самое начало подраздела tvshows необходимо добавить следующую строчку:

thetvdb_lookup: yes

Проблема с пилотными сериями

Была небольшая проблема — пилотные серии сериалов качались не в папку с именем «название_сериала», а в папку  —  «название_сериала Pilot». Для того что бы устранить эту ошибку необходимо в задание lostfilm внести следующие правки:

      - title:
          replace:
            regexp: '[^a-zA-Z0-9()]+|\bPilot\b'
            format: ' '

Сериалы

Названия сериалов я решил вынести в отдельный файл.
В папке private cоздаем файл series_lostfilm.yml следующего содержания:

series:
      - Emerald City
      - The Magicians
      - Stranger Things
      - The Expanse
      - The Frankenstein Chronicles
      - American Horror Story
      - The Walking Dead
      - Californication
      - Outcast
      - The Man in the High Castle
      - Taboo
      - Timeless
      - Bates Motel
      - Game of Thrones
      - The Shannara Chronicles
      - Mr. Robot
      - Sherlock
      - Elementary
      - Beyond
      - The Last Kingdom
      - Humans
      - A Series of Unfortunate Events:
          alternate_name: 33 A Series of Unfortunate Events
      - Black Mirror
      - Fargo
      - Dark Matter
      - Incorporated
      - Preacher
      - Wayward Pines
      - The Strain
      - Frequency
      - Dirk Gently's Holistic Detective Agency
      - Shut Eye
      - Twin Peaks
      - Z Nation
      - The Librarians
      - 12 Monkeys
      - Better Call Saul
      - The X-Files
      - Colony

В самый конец задания lostfilm добавляем строку:

include: private/series_lostfilm.yml

Результат

В итоге мы должны получить такой файл конфигурации:

variables: private/secretfile.yml
schedules:
  - tasks: '*'
    interval:
      minutes: 30 
templates:
  tvshows:
    thetvdb_lookup: yes
    set:
      path: /D/transmission/video/TV Shows/{{series_name}}/Season {{series_season}}
      label: TV Shows
    transmission:
      host: '{? transmlogin.host ?}'
      port: 9091
    series_premiere: yes
  clean:
    clean_transmission:
      host: '{? transmlogin.host ?}'
      port: 9091
      finished_for: 30 days
  notifycation:
    notify:
      entries:
        message: |+
          *{{series_name}}* рейтинг: {{tvdb_ep_rating}}
          *{{tvdb_ep_name}}*
          _{{series_season}} сезон {{series_episode}} серия_         
          [Постер]({{tvdb_banner}})
        via:
          - telegram:
             bot_token: '{? telegram.bot_token ?}'
             parse_mode: markdown
             recipients:
               - username: '{? telegram.username ?}'
tasks:
  lostfilm:
    template:
      - tvshows
      - notifycation
    headers:
      cookie: '{? lostfilm.cookie ?}'
    rss: '{? RRSUrls.lostfilm ?}'
    verify_ssl_certificates: no
    urlrewrite:
      newlost:    
        regexp: 'http://lostfilm.tv/download.php\?(?P<details>.*)' 
        format: 'http://www.lostfilm.tv/download.php?\g<details>' 
    regexp:
      reject:
        - The Complete
        - mkv
        - mp4
        - 720p
        - 1080p
    manipulate:
      - title:
          replace:
            regexp: '[^a-zA-Z0-9()]+|\bPilot\b'
            format: ' '
      - url:
          replace:
            regexp: '&'
            format: '&'
    include: private/series_lostfilm.yml
  services:
    template:
      - clean

Внешний вид уведомлений в telegram:

Если есть вопросы, задавайте 🙂

Great! You've successfully subscribed.
Great! Next, complete checkout for full access.
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.