]> git.rmz.io Git - dotfiles.git/blobdiff - flexget/config.yml
vim: create new undo block before capitalising previous word
[dotfiles.git] / flexget / config.yml
index 34d5dcba4cc31df2f6823d43cc54788f75e6dad2..f0a55d60bfae9bd1e68973cd43b0c462edeb04f2 100644 (file)
@@ -1,11 +1,16 @@
-secrets: private.yml
+variables: private.yml
 
+web_server:
+  port: 8081
 
 templates: # {{{1
   email: # {{{2
-    email:
-      from: flexget@tardis
-      to: ramsi@localhost
+    notify:
+      task:
+        via:
+          - email:
+              from: flexget@tardis
+              to: ramsi@localhost
 
 
   torrents: # {{{2
@@ -21,24 +26,26 @@ templates: # {{{1
     transmission:
       host: localhost
       port: 9091
-      path: /mnt/Skaro/torrents/done
+      path: /srv/torrents/done
       ratio: 0.0
 
 
   usenet: # {{{2
     sabnzbd:
-      key: '{{secrets.sabnzbd.key}}'
-      url: '{{secrets.sabnzbd.url}}'
+      key: '{?sabnzbd.key?}'
+      url: '{?sabnzbd.url?}'
 
 
   usenet-movies: # {{{2
     inputs:
-      - rss: { url: 'https://www.usenet-crawler.com/rss?t=2040&dl=1&num=100{{secrets.crawler.api}}', silent: yes } # Movies HD
+      - rss: { url: 'https://api.drunkenslug.com/rss?t=2040&dl=1&num=100{?drunkenslug.api?}', silent: yes } # Movies HD
+      - rss: { url: 'https://www.usenet-crawler.com/rss?t=2040&dl=1&num=100{?crawler.api?}', silent: yes } # Movies HD
 
 
   usenet-tv: # {{{2
     inputs:
-      - rss: { url: 'https://www.usenet-crawler.com/rss?t=5030,5040&dl=1&num=100{{secrets.crawler.api}}', silent: yes } # TV SD/HD
+      - rss: { url: 'https://api.drunkenslug.com/rss?t=5030,5040&dl=1&num=100{?drunkenslug.api?}', silent: yes } # Movies HD
+      - rss: { url: 'https://www.usenet-crawler.com/rss?t=5030,5040&dl=1&num=100{?crawler.api?}', silent: yes } # TV SD/HD
 
 
   filters: # {{{2
@@ -67,6 +74,7 @@ templates: # {{{1
         - \[facepalm\]:   {from: title}
         - \bASAP\b:       {from: title}
         - \b Go\):        {from: title} # filter those misplaced french only movies
+        - \b(HEVC|[xXhH]265)\b: {from: title} # don't get x265/HEVC
 
 
   series: # {{{2
@@ -77,25 +85,28 @@ templates: # {{{1
         default: &default_settings
           identified_by: ep
           timeframe: 12 hours
-          target: 1080p webdl h264+
-          quality: 480p+ h264+
+          target: 1080p webdl h264 dts
+          quality: 720p+ h264+
           upgrade: yes
     exists_series:
       path:
-        - '/mnt/Skaro/Series/{{tvdb_series_name}}'
+        - '/mnt/series/{{tvdb_series_name}}'
       allow_different_qualities: better
     content_size:
-      min:  100
-      max: 6000
+      min:   100
+      max: 10000
       strict: yes
 
   series-list: # {{{2
     series:
       default:
         - 8 out of 10 cats
+        - always sunny in philadelphia
         - american dad
         - archer 2009
+        - arrested development
         - better call saul
+        - black mirror
         - boardwalk empire
         - breaking bad
         - broadchurch
@@ -104,13 +115,15 @@ templates: # {{{1
         - community
         - danger 5: { quality: 720p+ }
         - dexter
+        - dirk gently's holistic detective agency
         - doctor who 2005
         - downton abbey
         - eureka
         - family guy
+        - fargo
         - foyle's war
         - futurama
-        - game of thrones
+        - game of thrones: { timeframe: 9 hours, quality: dd5.1+ }
         - homeland
         - house of cards 2013: { alternate_name: house of cards us }
         - how i met your mother
@@ -118,26 +131,36 @@ templates: # {{{1
         - masters of sex
         - my little pony
         - mythbusters
+        - narcos
         - qi: { special_ids: 'uncut' }
         - ray donovan
         - red dwarf
+        - rick and morty
         - sherlock
         - suits
         - the big bang theory
         - the blacklist
+        - the blacklist redemption
+        - the boys
         - the cleveland show
+        - the crown
+        - the expanse
+        - the man in the high castle
+        - the mandalorian
+        - the umbrella academy
         - the walking dead
-        - two and a half men
         - the wire: { quality: 720p+ }
+        - two and a half men
         - vinyl
+        - westworld: { timeframe: 9 hours, quality: dd5.1+ }
 
 
   series-trakt: # {{{2
     configure_series:
       from:
         trakt_list:
-          username: '{{secrets.trakt.username}}'
-          account: '{{secrets.trakt.account}}'
+          username: '{?trakt.username?}'
+          account: '{?trakt.account?}'
           list: followlist
           type: shows
       settings: *default_settings
@@ -147,26 +170,26 @@ templates: # {{{1
     configure_series:
       from:
         trakt_list:
-          username: '{{secrets.trakt.username}}'
-          account: '{{secrets.trakt.account}}'
+          username: '{?trakt.username?}'
+          account: '{?trakt.account?}'
           list: backfill
           type: shows
       settings: # *default_settings
         identified_by: ep
         quality: 720p+ h264+
+        tracking: backfill
     discover:
       interval: 1 hours
       what:
-        - trakt_list:
-            username: '{{secrets.trakt.username}}'
-            account: '{{secrets.trakt.account}}'
+        - next_trakt_episodes:
+            username: '{?trakt.username?}'
+            account: '{?trakt.account?}'
             list: backfill
-            type: episodes
-        - emit_series:
-            from_start: yes
+            context: collected
+            position: next
       from:
         - newznab:
-            url: 'https://www.usenet-crawler.com/api?apikey={{secrets.crawler.apikey}}&t=tvsearch&cat=5030,5040&extended=1'
+            url: 'https://api.drunkenslug.com/api?apikey={?drunkenslug.apikey?}&t=tvsearch&cat=5030,5040&extended=1'
             category: tv
     all_series: yes
 
@@ -177,17 +200,18 @@ templates: # {{{1
       priority: '-2'
     exists_movie:
       path:
-        - '/mnt/Skaro/Movies'
+        - '/mnt/movies'
       allow_different_qualities: better
       type: files
       lookup: imdb
 
 
   movies-imdb: # {{{2
+    imdb_lookup: yes
+    require_field: imdb_url
     imdb:
       min_score: 7.5
       min_votes: 30000
-    imdb_required: on
 
 
   movies-1080p: # {{{2
@@ -206,23 +230,112 @@ templates: # {{{1
       max: 10000
       strict: yes
 
-  movies-discover-queue: # {{{2
-    movie_queue: accept
-    discover:
-      what:
-        - emit_movie_queue: yes
-      from:
-        - newznab:
-            url: 'https://www.usenet-crawler.com/api?apikey={{secrets.crawler.apikey}}&t=movie&extended=1&cat=2040'
-            category: movie
-      interval: 7 days  # search each entry only once a week
+  movies-discover-queue: # {{{2
+    movie_queue: accept
+    discover:
+      what:
+        - emit_movie_queue: yes
+      from:
+        - newznab:
+  #           url: 'https://www.usenet-crawler.com/api?apikey={?crawler.apikey?}&t=movie&extended=1&cat=2040'
+            category: movie
+      interval: 7 days  # search each entry only once a week
 
 
   trakt-add-collection: # {{{2
-    trakt_add:
-      username: '{{secrets.trakt.username}}'
-      account: '{{secrets.trakt.account}}'
-      list: collection
+    list_add:
+      - trakt_list:
+          username: '{?trakt.username?}'
+          account: '{?trakt.account?}'
+          list: collection
+
+
+  move-series: # {{{2
+    manual: yes
+    template:
+      - trakt-add-collection
+    disable:
+      - retry_failed
+      - seen
+      - seen_info_hash
+    no_entries_ok: yes
+
+    regexp:
+      reject:
+        - '[Ss]ample'
+
+    # guessit can extract info from full paths which may contain more info
+    #    manipulate:
+    #      - title:
+    #          from: location
+
+    parsing:
+      series: guessit
+
+    all_series:
+      parse_only: yes
+    accept_all: yes
+    thetvdb_lookup: yes
+    require_field:
+      - tvdb_season
+      - tvdb_episode
+
+    set:
+      destination: '/mnt/series'
+      folder: "{{tvdb_series_name}}/{% if tvdb_season == 0 %}Specials{% else %}Season {{tvdb_season}}{% endif %}"
+      filename: "{{tvdb_season}}x{{tvdb_episode|pad(2)}} {{tvdb_ep_name|replace('/','-')}} ({{tvdb_ep_air_date|formatdate('%Y')}}){{'{'}}{{quality|replace(' ','}{')}}{{'}'}}[{{tvdb_language}}]"
+    move:
+      to: "/mnt/series/{{folder}}"
+      rename: "{{filename}}"
+      clean_source: 100   # removes dir if < [N] MB
+
+    # log: "<<<{{folder}}/{{filename}}>>>"
+    exec:
+      - echo "<<<{{folder}}/{{filename}}>>>"
+      - touch "{{destination}}/{{folder}}/{{filename}}{{location|pathext}}"
+    digest: move-tasks
+
+
+  move-movies: # {{{2
+    manual: yes
+    template:
+      - trakt-add-collection
+    disable:
+      - retry_failed
+      - seen
+      - seen_info_hash
+    no_entries_ok: yes
+
+    regexp:
+      reject:
+        - '[Ss]ample'
+
+    # guessit can extract info from full paths which may contain more info
+    # manipulate:
+    #   - title:
+    #       from: location
+
+    parsing:
+      movie: guessit
+
+    imdb_lookup: yes
+    accept_all: yes
+    require_field:
+      - imdb_name
+      - imdb_year
+
+    set:
+      destination: '/mnt/movies'
+      filename: "{{imdb_name}} ({{imdb_year}}){{'{'}}{{quality|replace(' ','}{')}}{{'}'}}[en]"
+    move:
+      to: "/mnt/movies"
+      rename: "{{filename}}"
+      clean_source: 100   # removes dir if < [N] MB
+
+    exec:
+      - echo "<<<{{filename}}>>>"
+      - touch "{{destination}}/{{filename}}{{location|pathext}}"
+    digest: move-tasks
 
 
 tasks: # {{{1
@@ -248,33 +361,33 @@ tasks: # {{{1
   #   digest: backfill
 
 
-  dl-movies-trakt: # {{{2
-    priority: 10
-    trakt_list:
-      username: '{{secrets.trakt.username}}'
-      account: '{{secrets.trakt.account}}'
-      list: watchlist
-      type: movies
-    accept_all: yes
-    movie_queue: add
-
-
-  dl-movies-trakt-remove: # {{{2
-    priority: 20
-    disable:
-      - seen
-    emit_movie_queue: yes
-    crossmatch:
-      from:
-        - trakt_list:
-            username: '{{secrets.trakt.username}}'
-            account: '{{secrets.trakt.account}}'
-            list: watchlist
-            type: movies
-      fields: [imdb_id]
-      action: reject
-    accept_all: yes
-    movie_queue: remove
+  dl-movies-trakt: # {{{2
+    priority: 10
+    trakt_list:
+  #     username: '{?trakt.username?}'
+  #     account: '{?trakt.account?}'
+      list: watchlist
+      type: movies
+    accept_all: yes
+    movie_queue: add
+
+
+  dl-movies-trakt-remove: # {{{2
+    priority: 20
+    disable:
+      - seen
+    emit_movie_queue: yes
+    crossmatch:
+      from:
+        - trakt_list:
+  #           username: '{?trakt.username?}'
+  #           account: '{?trakt.account?}'
+            list: watchlist
+            type: movies
+      fields: [imdb_id]
+      action: reject
+    accept_all: yes
+    movie_queue: remove
 
 
   dl-movies-discover-queue-1080p: # {{{2
@@ -345,108 +458,66 @@ tasks: # {{{1
       - usenet-movies
 
 
-  move-series: # {{{2
+  move-series-usenet: # {{{2
     manual: yes
     template:
-      - trakt-add-collection
-    seen: local
-    disable:
-      - retry_failed
-      - nzb_size
-    no_entries_ok: yes
-
+      - move-series
     filesystem:
       path:
-        - /mnt/Skaro/usenet/done
-        - /mnt/Skaro/torrents/done
+        - /srv/usenet/done
       recursive: yes
       retrieve: files
-      regexp: '.*\.(avi|mkv|mp4|mpg|divx|webm)$'
+      regexp: '.*\.(avi|mkv|mp4|mpg|divx|webm|flv)$'
 
-    regexp:
-      reject:
-        - '[Ss]ample'
 
-    thetvdb_lookup: yes
-    all_series:
-      parse_only: yes
-    accept_all: yes
-    require_field: tvdb_episode
-
-    set:
-      destination: '/mnt/Skaro/Series'
-      folder: "{{tvdb_series_name}}/{% if tvdb_season == 0 %}Specials{% else %}Season {{tvdb_season}}{% endif %}"
-      filename: "{{tvdb_season}}x{{tvdb_episode|pad(2)}} {{tvdb_ep_name|replace('/','-')}} ({{tvdb_ep_air_date|formatdate('%Y')}}){{'{'}}{{quality|replace(' ','}{')}}{{'}'}}[en]"
-    move:
-      to: "/mnt/Skaro/Series/{{folder}}"
-      filename: "{{filename}}"
-      clean_source: 100   # removes dir if < [N] MB
-
-    # log: "<<<{{folder}}/{{filename}}>>>"
-    exec:
-      - echo "<<<{{folder}}/{{filename}}>>>"
-      - touch "{{destination}}/{{folder}}/{{filename}}{{location|pathext}}"
-    digest: move-tasks
+  move-series-torrents: # {{{2
+    manual: yes
+    template:
+      - move-series
+    filesystem:
+      path:
+        - /srv/torrents/done
+      recursive: yes
+      retrieve: files
+      regexp: '.*\.(avi|mkv|mp4|mpg|divx|webm|flv)$'
 
 
-  move-movies: # {{{2
+  move-movies-usenet: # {{{2
     manual: yes
     template:
-      - trakt-add-collection
-    seen: local
-    disable:
-      - retry_failed
-      - nzb_size
-    no_entries_ok: yes
-
+      - move-movies
     filesystem:
       path:
-        - /mnt/Skaro/usenet/done
-        - /mnt/Skaro/torrents/done
+        - /srv/usenet/done
       recursive: yes
       regexp: '.*\.(mkv|avi|mp4)$'
 
-    regexp:
-      reject:
-        - '[Ss]ample'
-
-    imdb_lookup: yes
-    if:
-      - movie_name is None:
-          manipulate:
-            - title:
-                extract: '([^/]*)/[^/]*$'
-                from: location
-          imdb_lookup: yes
-
-    accept_all: yes
-    require_field: imdb_name
 
-    set:
-      destination: '/mnt/Skaro/Movies'
-      filename: "{{imdb_name}} ({{imdb_year}}){{'{'}}{{quality|replace(' ','}{')}}{{'}'}}[en]"
-    move:
-      to: "/mnt/Skaro/Movies"
-      filename: "{{filename}}"
-      clean_source: 100   # removes dir if < [N] MB
-
-    exec:
-      - echo "<<<{{filename}}>>>"
-      - touch "{{destination}}/{{filename}}{{location|pathext}}"
-    digest: move-tasks
+  move-movies-torrents: # {{{2
+    manual: yes
+    template:
+      - move-movies
+    filesystem:
+      path:
+        - /srv/torrents/done
+      recursive: yes
+      regexp: '.*\.(mkv|avi|mp4)$'
 
 
   daily-mail: # {{{2
     manual: yes
     no_entries_ok: yes
-    emit_digest:
+    from_digest:
       list: move-tasks
     seen: local
     accept_all: yes
-    email:
-      from: flexget@tardis
-      to: ramsi@localhost
-      template: move
+    notify:
+      task:
+        template: move
+        via:
+          - email:
+              from: flexget@tardis
+              to: ramsi@localhost
 
 
   backfill-mail: # {{{2
@@ -455,7 +526,7 @@ tasks: # {{{1
     template:
       - email
     no_entries_ok: yes
-    emit_digest:
+    from_digest:
       list: backfill
     seen: local
     accept_all: yes
@@ -467,11 +538,12 @@ tasks: # {{{1
 
     filesystem:
       path:
-        - '/mnt/Skaro/Series'
+        - '/mnt/series'
       recursive: yes
       retrieve: files
       regexp: '.*\.(avi|mkv|mp4|webm|m4v)$'
 
+    #TODO use guessit like in move-series
     manipulate:
       - title:
           from: location
@@ -505,11 +577,12 @@ tasks: # {{{1
 
     filesystem:
       path:
-        - '/mnt/Skaro/Series'
+        - '/mnt/series'
       recursive: yes
       retrieve: files
       regexp: '.*\.(avi|mkv|mp4|webm|m4v)$'
 
+    #TODO use guessit like in move-series
     manipulate:
       - title:
           from: location
@@ -541,7 +614,7 @@ tasks: # {{{1
       - trakt-add-collection
     filesystem:
       path:
-        - '/mnt/Skaro/Movies'
+        - '/mnt/movies'
       recursive: yes
       retrieve: files
       regexp: '.*\.(avi|mkv|mp4|webm|m4v)$'