]> git.rmz.io Git - dotfiles.git/commitdiff
flexget: rework config using discover
authorSamir Benmendil <me@rmz.io>
Sun, 22 May 2022 00:54:37 +0000 (01:54 +0100)
committerSamir Benmendil <me@rmz.io>
Tue, 14 May 2024 22:37:32 +0000 (23:37 +0100)
uses discover instead of rss feeds.

flexget/config.yml

index 95acb5920495f124123c882e5ec06df3573836fa..42f5ba5e86f9003fde6b7c594521f47d25d3faf7 100644 (file)
@@ -4,21 +4,30 @@ web_server:
   port: 8081
 
 templates: # {{{1
-  torrents: # {{{2
-    inputs:
-      - rss: { url: 'https://ezrss.it/feed/', silent: yes }
-      - rss: { url: 'http://publichd.se/rss.php', silent: yes }
-      - rss: { url: 'http://rss.bt-chat.com/?group=3', silent: yes }
-      - rss: { url: 'http://kickass.to/tv/?rss=1', silent: yes }
-      - rss: { url: 'http://showrss.info/feeds/all.rss', silent: yes }
-      # - rss: { url: 'http://www.torlock.com/television/rss.xml', silent: yes }
-      # - rss: { url: 'http://torrentz.eu/feed_verified?q=tv', silent: yes }
-      # - rss: { url: 'http://rss.thepiratebay.org/208', silent: yes }
-    transmission:
-      host: localhost
-      port: 9091
-      path: /srv/torrents/done
-      ratio: 0.0
+  anchors: # {{{2
+    _trakt: &trakt
+      account: '{?trakt.account?}'
+    _sonarr: &sonarr
+      base_url: '{?sonarr.url?}'
+      api_key:  '{?sonarr.api?}'
+      port: 8989
+    _trakt_movie_queue: &trakt_movie_queue
+      account: '{?trakt.account?}'
+      list: movie-queue
+    _newznab_series_search: &newznab_series_search
+      url: '{?ds.api?}&t=tvsearch&cat=5040&extended=1'
+      category: tv
+      query:
+        - tvdb_id
+        - series_name
+        - series_alternate_names
+    _newznab_movie_search: &newznab_movie_search
+      url: '{?ds.api?}&t=movie&cat=2040&extended=1'
+      category: movie
+    _series_settings: &series_settings
+      identified_by: ep
+      quality: 720p-1080p webrip+ h264+
+      exact: yes
 
 
   usenet: # {{{2
@@ -27,16 +36,16 @@ templates: # {{{1
       url: '{?sabnzbd.url?}'
 
 
-  usenet-movies: # {{{2
+  usenet_movies_rss: # {{{2
     inputs:
-      - 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
+      - rss: { url: 'https://{?ds.rss?}&t=2040&dl=1&num=100', silent: yes } # Movies HD
+      - rss: { url: 'https://{?uc.rss?}&t=2040&dl=1&num=100', silent: yes } # Movies HD
 
 
-  usenet-tv: # {{{2
+  usenet_series_rss: # {{{2
     inputs:
-      - 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
+      - rss: { url: 'https://{?ds.rss?}&t=5040&dl=1&num=100', silent: yes } # Series HD
+      - rss: { url: 'https://{?uc.rss?}&t=5040&dl=1&num=100', silent: yes } # Series HD
 
 
   filters: # {{{2
@@ -65,20 +74,15 @@ 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
+        - 'nl.subs':      {from: title} # no dutch subtitles
 
 
   series: # {{{2
     set:
       category: 'series'
-    series:
-      settings:
-        default: &default_settings
-          identified_by: ep
-          timeframe: 12 hours
-          target: 1080p webdl h264 dts
-          quality: 720p+ h264+
-          upgrade: yes
+      priority: '0'  # normal
+    trakt_lookup: yes
+    thetvdb_lookup: yes
     exists_series:
       path:
         - '/mnt/series/{{tvdb_series_name}}'
@@ -88,192 +92,152 @@ templates: # {{{1
       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
-        - burn notice
-        - chuck
-        - community
-        - danger 5: { quality: 720p+ }
-        - dexter
-        - dexter new blood
-        - dirk gently's holistic detective agency
-        - doctor who 2005
-        - downton abbey
-        - eureka
-        - family guy
-        - fargo
-        - foundation
-        - foyle's war
-        - futurama
-        - 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
-        - la casa de papel
-        - last week tonight with john oliver: { timeframe: 10 hours }
-        - masters of sex
-        - my little pony
-        - mythbusters
-        - narcos
-        - peaky blinders
-        - qi: { special_ids: 'uncut' }
-        - ray donovan
-        - red dwarf
-        - rick and morty
-        - sherlock
-        - suits
-        - the big bang theory
-        - the blacklist
-        - the blacklist redemption
-        - the book of boba fett
-        - the boys
-        - the cleveland show
-        - the crown
-        - the expanse
-        - the great: { exact: yes }
-        - the man in the high castle
-        - the mandalorian
-        - the umbrella academy
-        - the witcher
-        - the walking dead
-        - the wheel of time
-        - the wire: { quality: 720p+ }
-        - two and a half men
-        - vinyl
-        - westworld: { timeframe: 9 hours, quality: dd5.1+ }
-
-
-  series-trakt: # {{{2
+
+  newznab_series_queue:  # {{{2
+    domain_delay:
+      api.drunkenslug.com: 5 seconds
+    timeframe:
+      wait: 10 hours
+      # let series handle the accept
+      on_reached: do_nothing
+      target: 1080p webrip h264
     configure_series:
       from:
-        trakt_list:
-          username: '{?trakt.username?}'
-          account: '{?trakt.account?}'
-          list: followlist
-          type: shows
-      settings: *default_settings
+         entry_list: trakt-series-queue
+      settings:
+        exact: yes
+        identified_by: ep
+        quality: 720p-1080p webrip+ h264+
+    sort_by:
+      field: quality
+      reverse: yes
+    discover:
+      interval: 50 minutes
+      release_estimations:
+        optimistic: 1 days
+      what:
+        - next_series_episodes:
+            from_start: yes
+      from:
+        - newznab: *newznab_series_search
+    max_reruns: 3
+    thetvdb_lookup: yes
+    series:
+      # this doesn't seem to override the timeframe set above
+      - Last Week Tonight with John Oliver: { timeframe: 8 hours }
+      - House of the Dragon: { timeframe: 8 hours }
+      - Anne Rice's Mayfair Witches:
+          alternate_name:
+            - mayfair witches
 
 
-  series-trakt-backfill: # {{{2
+  newznab_series_backfill: # {{{2
+    domain_delay:
+      api.drunkenslug.com: 5 seconds
     configure_series:
       from:
-        trakt_list:
-          username: '{?trakt.username?}'
-          account: '{?trakt.account?}'
-          list: backfill
-          type: shows
-      settings: # *default_settings
+        sonarr_list:
+          <<: *sonarr
+          only_monitored: yes
+          include_data: yes
+      settings:
+        exact: yes
         identified_by: ep
-        quality: 720p+ h264+
         tracking: backfill
+        quality: 720p-1080p webrip+ h264+
     discover:
-      interval: 1 hours
+      interval: 10 minutes
       what:
-        - next_trakt_episodes:
-            username: '{?trakt.username?}'
-            account: '{?trakt.account?}'
-            list: backfill
-            context: collected
-            position: next
+        - next_sonarr_episodes:
+            <<: *sonarr
+            only_monitored: yes
+            include_ended: yes
       from:
-        - newznab:
-            url: 'https://api.drunkenslug.com/api?apikey={?drunkenslug.apikey?}&t=tvsearch&cat=5030,5040&extended=1'
-            category: tv
-    all_series: yes
+        - newznab: *newznab_series_search
+    seen: local
+    series:
+      generated_series:
+        - money heist:
+            alternate_name: la casa de papel
+        - the ministry of time:
+            alternate_name:
+              - el ministerio del tiempo
+              - the department of time
+    sort_by:
+      field: quality
+      reverse: yes
 
 
   movies: # {{{2
     set:
       category: 'movies'
-      priority: '-2'
+      priority: '-1'  # low
     exists_movie:
       path:
         - '/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
-
-    log_filter:
-      - message: "because of rule(s)"
-        plugin: imdb
-
-  movies-1080p: # {{{2
-    quality: 1080p bluray+ h264+
-    content_size:
-      min:  3000
-      max: 15000
-      strict: yes
-
 
-  movies-720p: # {{{2
-    quality: 720p+ webdl+ h264+
-    delay: 14 days
-    content_size:
-      min:  1000
-      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={?crawler.apikey?}&t=movie&extended=1&cat=2040'
-  #           category: movie
-  #     interval: 7 days  # search each entry only once a week
+  newznab_movies_queue:  # {{{2
+    plugin_priority:  # NOTE: currently not verified
+      est_released_movies: 200  # prefer using tmdb release date
+      est_movies_bluray: 100    # over bluray releases
+    discover:
+      interval: 1 hours
+      what:
+        - movie_list: trakt-movies-queue
+      from:
+        - newznab: *newznab_movie_search
+      release_estimations:
+        optimistic: 30 days
+
+    quality: 720p-1080p webrip+ h264+
+    timeframe:
+      wait: 1 day
+      on_reached: accept
+      target: 1080p webrip h264
+    best_quality:
+      on_best: do_nothing
+      on_lower: reject
+    tmdb_lookup: true
+    list_match:
+      from:
+        - movie_list: trakt-movies-queue
 
 
-  trakt-add-collection: # {{{2
+  trakt_add_collection: # {{{2
     list_add:
       - trakt_list:
-          username: '{?trakt.username?}'
           account: '{?trakt.account?}'
           list: collection
 
 
-  move-series: # {{{2
+  trakt_remove_movie_queue: # {{{2
+    # removes movie from queue and watchlist
+    list_remove:
+      - trakt_list:
+          <<: *trakt
+          list: movies-queue
+          type: movies
+      - trakt_list:
+          <<: *trakt
+          list: watchlist
+          type: movies
+
+
+  move_series: # {{{2
     manual: yes
     template:
-      - trakt-add-collection
+      - 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
-
+    regexp: { reject: ['[Ss]ample'] }
     all_series:
       parse_only: yes
     accept_all: yes
@@ -281,7 +245,6 @@ templates: # {{{1
     require_field:
       - tvdb_season
       - tvdb_episode
-
     set:
       destination: '/mnt/series'
       folder: "{{tvdb_series_name}}/{% if tvdb_season == 0 %}Specials{% else %}Season {{tvdb_season}}{% endif %}"
@@ -290,173 +253,282 @@ templates: # {{{1
       to: "/mnt/series/{{folder}}"
       rename: "{{filename}}"
       clean_source: 100   # removes dir if < [N] MB
-
-    # log: "<<<{{folder}}/{{filename}}>>>"
+      along:
+        extensions: [sub, srt]
+        subdirs:    [Subs]
     exec:
       - echo "<<<{{folder}}/{{filename}}>>>"
       - touch "{{destination}}/{{folder}}/{{filename}}{{location|pathext}}"
-    digest: move-tasks
 
 
-  move-movies: # {{{2
+  move_movies: # {{{2
     manual: yes
     template:
-      - trakt-add-collection
+      - 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
-
+    regexp: { reject: ['[Ss]ample'] }
     parsing:
       movie: guessit
-
-    imdb_lookup: yes
+    tmdb_lookup: true
     accept_all: yes
     require_field:
-      - imdb_name
-      - imdb_year
-
+      - tmdb_name
+      - tmdb_year
     set:
       destination: '/mnt/movies'
-      filename: "{{imdb_name}} ({{imdb_year}}){{'{'}}{{quality|replace(' ','}{')}}{{'}'}}[en]"
+      filename: "{{tmdb_name}} ({{tmdb_year}}){{'{'}}{{quality|replace(' ','}{')}}{{'}'}}[en]"
     move:
       to: "/mnt/movies"
       rename: "{{filename}}"
       clean_source: 100   # removes dir if < [N] MB
-
+      along:
+        extensions: [sub, srt]
+        subdirs:    [Subs]
     exec:
       - echo "<<<{{filename}}>>>"
       - touch "{{destination}}/{{filename}}{{location|pathext}}"
-    digest: move-tasks
+
+
+  series_filesystem: # {{{2
+    filesystem:
+      path:
+        - '/mnt/series'
+      recursive: yes
+      retrieve: files
+      regexp: '.*\.(avi|mkv|mp4|webm|m4v)$'
+    log_filter:  # {{{3
+      - message: "Test mode"
+        plugin: filesystem
+      - message: "Title:"
+        plugin: filesystem
+      - message: "URL:"
+        plugin: filesystem
+      - message: "Filename:"
+        plugin: filesystem
+      - message: "Timestamp:"
+        plugin: filesystem
+      - message: ""
+        plugin: manipulate
+      - message: ""
+        plugin: assume_quality
+        level: verbose #}}}
+    manipulate:
+      - title:
+          from: location
+          replace:
+            regexp: '.*/([^/]+)/[^/]+/(\d+)(?:x(\d+))+([^/]*?)(?:\[.*\])?\.[^.]+$'
+            format: '\1 S\2E\3\4'
+      - title:
+          replace:
+            regexp: '[][(){}]'
+            format: ' '
+    set:
+      collected_at: "{{created}}"
+    parsing:
+      series: guessit
+    metainfo_series: yes
+    require_field:
+      - series_name
+    assume_quality: 480p
+
+
+  movies_filesystem: # {{{2
+    filesystem:
+      path:
+        - '/mnt/movies'
+      recursive: yes
+      retrieve: files
+      regexp: '.*\.(avi|mkv|mp4|webm|m4v)$'
+    tmdb_lookup: true
+    require_field:
+      - tmdb_id
+
+
+  sync_series_trakt: # {{{2
+    plugin_priority: # thetvdb_lookup before set
+      thetvdb_lookup: 110
+      set: 100
+    all_series:
+      parse_only: yes
+    # lookup tvdb info
+    thetvdb_lookup: yes
+    no_entries_ok: yes
+    # replace title with tvdb_series_name
+    set:
+      title:       "{{tvdb_series_name}}"
+      series_name: "{{tvdb_series_name}}"
+      name:        "{{tvdb_series_name}}"
+    accept_all: yes
+    disable: seen
 
 
 tasks: # {{{1
+  parse-series: # {{{2
+    # This is used by flexget.py to get the series/episode id
+    manual: yes
+    all_series:
+      parse_only: yes
+    accept_all: yes
+    disable: [seen]
+
+
   dl-series: # {{{2
     priority: 100
     template:
       - series
-      - series-list
-      - series-trakt
-      - filters
-      - usenet
-      - usenet-tv
-
-
-  # dl-series-trakt-backfill: # {{{2
-  #   priority: 110
-  #   template:
-  #     - series
-  #     - series-trakt-backfill
-  #     - filters
-  #     - usenet
-  #   digest: backfill
-
-
-  # 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
-    priority: 100
-    template:
-      - movies
-      - movies-discover-queue
-      - movies-1080p
+      - newznab_series_queue
       - filters
       - usenet
 
 
-  dl-movies-discover-queue-720p: # {{{2
+  backfill-series: # {{{2
     priority: 110
     template:
-      - movies
-      - movies-discover-queue
-      - movies-720p
+      - series
+      - newznab_series_backfill
       - filters
       - usenet
 
-
-  dl-movies-queue-1080p: # {{{2
+  dl-movies: # {{{2
     priority: 100
     template:
       - movies
-      - movies-1080p
+      - newznab_movies_queue
       - filters
       - usenet
-      - usenet-movies
 
 
-  dl-movies-queue-720p: # {{{2
-    priority: 110
+  sync-watchlist-series-episodes: # {{{2
+    # get episodes from trakt watchlist and adds them to trakt queue
+    # and sets the series_begin to the given episode.
+    priority: 1
+    disable: seen
     template:
-      - movies
-      - movies-720p
-      - filters
-      - usenet
-      - usenet-movies
+      - sync_series_trakt
+    trakt_list:
+      <<: *trakt
+      list: watchlist
+      type: episodes
+    set_series_begin: yes
+    list_remove:
+      - trakt_list:
+          <<: *trakt
+          list: watchlist
+          type: episodes
+    list_add:
+      - trakt_list:
+          <<: *trakt
+          list: series-queue
+          type: shows
+      - trakt_list:
+          <<: *trakt
+          list: watchlist
+          type: shows
 
 
-  dl-movies-imdb-1080p: # {{{2
-    priority: 120
+  sync-watchlist-series: # {{{2
+    # get series from trakt watchlist and queue, and adds them to trakt queue and entry list
+    priority: 2
     template:
-      - movies
-      - movies-imdb
-      - movies-1080p
-      - filters
-      - usenet
-      - usenet-movies
-
+      - sync_series_trakt
+    list_clear:
+      what:
+        - entry_list: trakt-series-queue
+    inputs:
+      - trakt_list:
+          <<: *trakt
+          list: watchlist
+          type: shows
+      - trakt_list:
+          <<: *trakt
+          list: series-queue
+          type: shows
+    if:
+      # if series name contains special characters
+      - trakt_series_name|asciify|strip_symbols != trakt_series_name:
+            set:
+              # set alternate_name with special chars removed
+              configure_series_alternate_name: "{{trakt_series_name|asciify|strip_symbols}}"
+              #FIXME doesn't work for discover, no search is emited for alternate_name
+              # worth a patch?
+              # Maybe that's a newznab search plugin functionality, I've patched it in there for now.
+    disable: seen
+    list_add:
+      - trakt_list:
+          <<: *trakt
+          list: series-queue
+          type: shows
+      - entry_list: trakt-series-queue
 
-  dl-movies-imdb-720p: # {{{2
-    priority: 130
+  sync-series-begin: # {{{2
+    priority: 3
+    disable: seen
     template:
-      - movies
-      - movies-imdb
-      - movies-720p
-      - filters
-      - usenet
-      - usenet-movies
+      - sync_series_trakt
+    configure_series:
+      from:
+        filesystem:
+          path:
+            - '/mnt/series'
+          retrieve: dirs
+    next_trakt_episodes:
+      <<: *trakt
+      list: collection
+      context: collected
+    accept_all: yes
+    set_series_begin: yes
+
+
+  sync-watchlist-movies: # {{{2
+    # get movies from trakt watchlist and adds them to flexget movie queue
+    priority: 1
+    list_clear:
+      what:
+        - movie_list: trakt-movies-queue
+    inputs:
+      - trakt_list:
+          <<: *trakt
+          list: watchlist
+          type: movies
+      - trakt_list:
+          <<: *trakt
+          list: movies-queue
+          type: movies
+    accept_all: yes
+    list_add:
+      - movie_list: trakt-movies-queue
+      - trakt_list:
+          <<: *trakt
+          list: movies-queue
+          type: movies
+    disable: [seen]
+
+
+  _sync-movies-collected-trakt: # {{{2
+    # this is expensive, don't run often
+    manual: yes
+    priority: 1
+    list_clear:
+      what:
+        - movie_list: movies-collected-trakt
+    trakt_list:
+      account: '{?trakt.account?}'
+      list: collection
+      type: movies
+    list_add:
+      - movie_list: movies-collected-trakt
+    accept_all: yes
+    disable: [seen]
 
 
   move-series-usenet: # {{{2
     manual: yes
     template:
-      - move-series
+      - move_series
     filesystem:
       path:
         - /srv/usenet/done/series
@@ -468,7 +540,7 @@ tasks: # {{{1
   move-series-torrents: # {{{2
     manual: yes
     template:
-      - move-series
+      - move_series
     filesystem:
       path:
         - /srv/torrents/done
@@ -480,7 +552,8 @@ tasks: # {{{1
   move-movies-usenet: # {{{2
     manual: yes
     template:
-      - move-movies
+      - move_movies
+      - trakt_remove_movie_queue
     filesystem:
       path:
         - /srv/usenet/done/movies
@@ -491,7 +564,8 @@ tasks: # {{{1
   move-movies-torrents: # {{{2
     manual: yes
     template:
-      - move-movies
+      - move_movies
+      - trakt_remove_movie_queue
     filesystem:
       path:
         - /srv/torrents/done
@@ -502,99 +576,72 @@ tasks: # {{{1
   seed-series-db: # {{{2
     manual: yes
     seen: local
-
-    filesystem:
-      path:
-        - '/mnt/series'
-      recursive: yes
-      retrieve: files
-      regexp: '.*\.(avi|mkv|mp4|webm|m4v)$'
-
-    #TODO use guessit like in move-series
-    manipulate:
-      - title:
-          from: location
-          replace:
-            regexp: '.*/([^/]+)/[^/]+/(\d+)(?:x(\d+))+([^/]*)\.[^.]+$'
-            format: '\1 S\2E\3\4'
-      - title:
-          replace:
-            regexp: '\[.*\]'
-            format: ''
-      - title:
-          replace:
-            regexp: '[\(\)\{\}]'
-            format: ' '
-
-    metainfo_series: yes
-    thetvdb_lookup: yes
-    all_series:
-      tracking: no
-    assume_quality: 480p
+    template:
+      - series_filesystem
+    configure_series:
+      from:
+        # entry_list: series-trakt
+        sonarr_list:
+          <<: *sonarr
+          only_monitored: yes
+      settings:
+        tracking: no
+        identified_by: ep
     accept_all: yes
-    require_field:
-      - tvdb_id
 
 
-  seed-trakt-series: # {{{2
+  seed-series-trakt: # {{{2
+    # can also be used to learn and seed local db
+    # since adding to trakt doesn't work that is the only usage atm
     manual: yes
     seen: local
+    configure_series:
+      from:
+        filesystem:
+          path:
+            - '/mnt/series'
+          retrieve: dirs
     template:
-      - trakt-add-collection
-
-    filesystem:
-      path:
-        - '/mnt/series'
-      recursive: yes
-      retrieve: files
-      regexp: '.*\.(avi|mkv|mp4|webm|m4v)$'
-
-    #TODO use guessit like in move-series
-    manipulate:
-      - title:
-          from: location
-          replace:
-            regexp: '.*/([^/]+)/[^/]+/(\d+)(?:x(\d+))+([^/]*)\.[^.]+$'
-            format: '\1 S\2E\3\4'
-      - title:
-          replace:
-            regexp: '\[.*\]'
-            format: ''
-      - title:
-          replace:
-            regexp: '[\(\)\{\}]'
-            format: ' '
-
-    metainfo_series: yes
-    thetvdb_lookup: yes
-    all_series: yes
-    assume_quality: 480p
+      - series_filesystem
+      # currently doesn't work and times out, need to patch to send in batches
+      # - trakt_add_collection
     accept_all: yes
-    require_field:
-      - tvdb_id
 
 
-  seed-trakt-movies: # {{{2
+  seed-movies-trakt: # {{{2
+    # this will result in an error since the request is soo long
+    # but it seems that the data is still uploaded fully and updated
     manual: yes
     seen: local
     template:
-      - trakt-add-collection
-    filesystem:
-      path:
-        - '/mnt/movies'
-      recursive: yes
-      retrieve: files
-      regexp: '.*\.(avi|mkv|mp4|webm|m4v)$'
-    imdb_lookup: yes
+      - movies_filesystem
+      - trakt_add_collection
     accept_all: yes
-    require_field:
-      - imdb_id
+
+
+  trakt-copy-list: # {{{2
+    manual: yes
+    trakt_list:
+      <<: *trakt
+      list: series-queue
+      type: shows
+    accept_all: yes
+    list_add:
+      - trakt_list:
+          <<: *trakt
+          list: series-queue-backup
+          type: shows
+
 
 
 schedules: # {{{1
-  - tasks: ['dl-*']
-    schedule:
-      hour: '*'
-      minute: '48'
+  - tasks: ['sync-watchlist-series*', 'dl-*']
+    interval:
+      hours: 1
+      jitter: 120  # seconds
+  - tasks: ['sync-watchlist-movies']
+    interval:
+      hours: 3  # needs to be 2h+ to avoid trakt_list cache
+      jitter: 120  # seconds
 
 # vim: sts=2 ts=2 sw=2 et