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.