X-Git-Url: https://git.rmz.io/dotfiles.git/blobdiff_plain/c93cac14db0f7770cf76cad899142f807b31b36a..a59aa3f7d15dae57e2d066e47af3556c46d9dac4:/flexget/config.yml diff --git a/flexget/config.yml b/flexget/config.yml index 5abf670..d848534 100644 --- a/flexget/config.yml +++ b/flexget/config.yml @@ -1,47 +1,51 @@ -secrets: private.yml +variables: private.yml +web_server: + port: 8081 templates: # {{{1 - email: # {{{2 - email: - from: flexget@tardis - to: ramsi@localhost + 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 + sabnzbd: + key: '{?sabnzbd.key?}' + url: '{?sabnzbd.url?}' - 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: /mnt/Skaro/torrents/done - ratio: 0.0 - - - usenet-movies: # {{{2 - sabnzbd: - key: '{{secrets.sabnzbd.key}}' - url: '{{secrets.sabnzbd.url}}' - category: 'movie' + usenet_movies_rss: # {{{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://{?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 - sabnzbd: - key: '{{secrets.sabnzbd.key}}' - url: '{{secrets.sabnzbd.url}}' - category: 'tv' + usenet_series_rss: # {{{2 inputs: - - rss: { url: 'https://www.usenet-crawler.com/rss?t=5030&dl=1&num=100{{secrets.crawler.api}}', silent: yes } # TV SD - - rss: { url: 'https://www.usenet-crawler.com/rss?t=5040&dl=1&num=100{{secrets.crawler.api}}', silent: yes } # TV 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 @@ -70,219 +74,579 @@ templates: # {{{1 - \[facepalm\]: {from: title} - \bASAP\b: {from: title} - \b Go\): {from: title} # filter those misplaced french only movies + - 'nl.subs': {from: title} # no dutch subtitles + - 'NIXON': {from: title} # rubbish futurama releases, wrong season numbering + + + series: # {{{2 + set: + category: 'series' + priority: '0' # normal + trakt_lookup: yes + thetvdb_lookup: yes + exists_series: + path: + - '/mnt/series/{{tvdb_series_name}}' + allow_different_qualities: better + content_size: + min: 100 + max: 10000 + strict: yes - tv: # {{{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: + 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: - normal: - - 8 out of 10 cats - - american dad - - archer 2009 - - boardwalk empire - - breaking bad - - broadchurch - - burn notice - - chuck - - community - - dexter - - doctor who 2005 - - downton abbey - - eureka - - family guy - - foyle's war - - futurama - - game of thrones - - homeland - - how i met your mother - - last week tonight with john oliver - - master of sex - - my little pony - - mythbusters - - qi (xl) - - ray donovan - - red dwarf - - sherlock - - suits - - the big bang theory - - the blacklist - - the cleveland show - - the walking dead - - two and a half men - - the wire: - quality: 720p+ + # 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 + + + newznab_series_backfill: # {{{2 + domain_delay: + api.drunkenslug.com: 5 seconds + configure_series: + from: + sonarr_list: + <<: *sonarr + only_monitored: yes + include_data: yes + settings: + exact: yes + identified_by: ep + # tracking: backfill + quality: 720p-1080p webrip+ h264+ + discover: + interval: 10 minutes + what: + - next_sonarr_episodes: + <<: *sonarr + only_monitored: yes + include_ended: yes + from: + - 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 - imdb: - min_score: 7.5 - min_votes: 50000 - imdb_required: on - my_exists_movie: + set: + category: 'movies' + priority: '-1' # low + exists_movie: path: - - '/mnt/Skaro/Movies' + - '/mnt/movies' allow_different_qualities: better type: files - seen_movies: strict + + + 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 + list_add: + - trakt_list: + account: '{?trakt.account?}' + list: collection + + + 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 + disable: + - retry_failed + - seen + - seen_info_hash + no_entries_ok: yes + parsing: + series: guessit + regexp: { reject: ['[Ss]ample'] } + 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 + along: + extensions: [sub, srt] + subdirs: [Subs] + exec: + - echo "<<<{{folder}}/{{filename}}>>>" + - touch "{{destination}}/{{folder}}/{{filename}}{{location|pathext}}" + + + move_movies: # {{{2 + manual: yes + template: + - trakt_add_collection + disable: + - retry_failed + - seen + - seen_info_hash + no_entries_ok: yes + regexp: { reject: ['[Ss]ample'] } + parsing: + movie: guessit + tmdb_lookup: true + accept_all: yes + require_field: + - tmdb_name + - tmdb_year + set: + destination: '/mnt/movies' + 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}}" + + + 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 - dl-tv: # {{{2 - priority: 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: - - email - - tv + - series + - newznab_series_queue - filters - - usenet-tv - series: - settings: - normal: - timeframe: 12 hours - target: 1080p webdl - quality: 480p+ - upgrade: yes - exists_series: - path: '/mnt/Skaro/Series/{{tvdb_series_name}}' - allow_different_qualities: better - content_size: - min: 100 - max: 6000 - strict: yes + - usenet - dl-movies-1080p: # {{{2 - priority: 1 + backfill-series: # {{{2 + priority: 110 template: - - email - - movies + - series + - newznab_series_backfill - filters - - usenet-movies - quality: 1080p webdl+ - content_size: - min: 3000 - max: 15000 - strict: yes - + - usenet - dl-movies-720p: # {{{2 - priority: 2 + dl-movies: # {{{2 + priority: 100 template: - - email - movies + - newznab_movies_queue - filters - - usenet-movies - quality: 720p hdrip+ - delay: 7 days - content_size: - min: 1000 - max: 10000 - strict: yes + - usenet - move-tv: # {{{2 + 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: + - 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 + + + sync-watchlist-series: # {{{2 + # get series from trakt watchlist and queue, and adds them to trakt queue and entry list priority: 2 + template: + - 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 + + sync-series-begin: # {{{2 + priority: 3 + disable: seen + template: + - 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 - seen: local - retry_failed: - max_retries: 0 - no_entries_ok: yes - find: - path: - - /mnt/Skaro/usenet/done - - /mnt/Skaro/torrents/done - recursive: yes - regexp: '.*\.(avi|mkv|mp4|mpg|divx|webm)$' + 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] - regexp: - reject: - - '[Ss]ample' - thetvdb_lookup: yes - all_series: - parse_only: yes + _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] - set: - destination: '/mnt/Skaro/Series' - move: - to: "/mnt/Skaro/Series/{{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]" - clean_source: 100 # removes dir if < [N] MB - email: - from: flexget@tardis - to: ramsi@localhost - template: move + move-series-usenet: # {{{2 + manual: yes + template: + - move_series + filesystem: + path: + - /srv/usenet/done/series + recursive: yes + retrieve: files + regexp: '.*\.(avi|mkv|mp4|mpg|divx|webm|flv)$' - move-movies: # {{{2 - priority: 3 + 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-usenet: # {{{2 + manual: yes + template: + - move_movies + - trakt_remove_movie_queue + filesystem: + path: + - /srv/usenet/done/movies + recursive: yes + regexp: '.*\.(mkv|avi|mp4)$' - seen: local - retry_failed: - max_retries: 0 - no_entries_ok: yes - find: + move-movies-torrents: # {{{2 + manual: yes + template: + - move_movies + - trakt_remove_movie_queue + filesystem: path: - - /mnt/Skaro/usenet/done - - /mnt/Skaro/torrents/done + - /srv/torrents/done recursive: yes regexp: '.*\.(mkv|avi|mp4)$' - regexp: - reject: - - '[Ss]ample' - imdb_lookup: yes + seed-series-db: # {{{2 + manual: yes + seen: local + 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 - set: - destination: '/mnt/Skaro/Movies' - move: - to: "/mnt/Skaro/Movies" - filename: "{{imdb_name}} ({{imdb_year}}){{'{'}}{{quality|replace(' ','}{')}}{{'}'}}[en]" - clean_source: 100 # removes dir if < [N] MB - email: - from: flexget@tardis - to: ramsi@localhost - template: move + 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: + - series_filesystem + # currently doesn't work and times out, need to patch to send in batches + # - trakt_add_collection + accept_all: yes - seed-tv-db: # {{{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: + - movies_filesystem + - trakt_add_collection + accept_all: yes - find: - path: '/mnt/Skaro/Series' - regexp: '.*\.(avi|mkv|mp4|webm)$' - recursive: yes - - manipulate: - - title: - from: location - replace: - regexp: '.*/([^/]+)/[^/]+/(\d+)x(\d+)([^/]*)\.[^.]+$' - format: '\1 S\2E\3\4' - - title: - replace: - regexp: '\[.*\]' - format: '' - - title: - replace: - regexp: '[\(\)\{\}]' - format: ' ' - all_series: yes - assume_quality: 480p + 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 - require_field: - - series_name schedules: # {{{1 - - tasks: ['dl-*', 'move-*'] + - tasks: ['sync-watchlist-series*', 'dl-series'] interval: hours: 1 + jitter: 120 # seconds + - tasks: ['dl-movies'] + interval: + hours: 2 + 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