X-Git-Url: https://git.rmz.io/dotfiles.git/blobdiff_plain/b5287d30fcaac638fd86a64bac729bf60f51a673..a59aa3f7d15dae57e2d066e47af3556c46d9dac4:/flexget/config.yml diff --git a/flexget/config.yml b/flexget/config.yml index e15c26a..d848534 100644 --- a/flexget/config.yml +++ b/flexget/config.yml @@ -1,31 +1,33 @@ variables: private.yml +web_server: + port: 8081 templates: # {{{1 - email: # {{{2 - notify: - task: - via: - - email: - from: flexget@tardis - to: ramsi@localhost - - - 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 @@ -34,18 +36,16 @@ templates: # {{{1 url: '{?sabnzbd.url?}' - usenet-movies: # {{{2 + usenet_movies_rss: # {{{2 inputs: - - rss: { url: 'https://www.usenet-crawler.com/rss?t=2040&dl=1&num=100{?crawler.api?}', silent: yes } # Movies HD - - rss: { url: 'https://newztown.co.za/rss?t=2040&dl=1&num=100{?newztown.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://{?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://www.usenet-crawler.com/rss?t=5030,5040&dl=1&num=100{?crawler.api?}', silent: yes } # TV SD/HD - - rss: { url: 'https://newztown.co.za/rss?t=5030,5040&dl=1&num=100{?newztown.api?}', silent: yes } # TV SD/HD - - rss: { url: 'https://api.drunkenslug.com/rss?t=2040&dl=1&num=100{?drunkenslug.api?}', silent: yes } # Movies 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 @@ -74,529 +74,579 @@ templates: # {{{1 - \[facepalm\]: {from: title} - \bASAP\b: {from: title} - \b Go\): {from: title} # filter those misplaced french only movies - - \b(HEVC|x265)\b: {from: title} # don't get x265/HEVC + - 'nl.subs': {from: title} # no dutch subtitles + - 'NIXON': {from: title} # rubbish futurama releases, wrong season numbering series: # {{{2 set: category: 'series' - series: - settings: - default: &default_settings - identified_by: ep - timeframe: 12 hours - target: 1080p webdl h264+ - quality: 480p+ h264+ - upgrade: yes + 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: 6000 + min: 100 + max: 10000 strict: yes - series-list: # {{{2 - series: - default: - - 8 out of 10 cats - - 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 - - doctor who 2005 - - downton abbey - - eureka - - family guy - - fargo - - foyle's war - - futurama - - game of thrones: { timeframe: 9 hours } - - homeland - - house of cards 2013: { alternate_name: house of cards us } - - how i met your mother - - last week tonight with john oliver: { timeframe: 10 hours } - - masters of sex - - my little pony - - mythbusters - - qi: { special_ids: 'uncut' } - - ray donovan - - red dwarf - - rick and morty - - sherlock - - suits - - the big bang theory - - the blacklist - - the blacklist redemption - - the cleveland show - - the walking dead - - the wire: { quality: 720p+ } - - two and a half men - - vinyl - - westworld - - - 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: - - trakt_list: - username: '{?trakt.username?}' - account: '{?trakt.account?}' - list: backfill - type: episodes - - next_series_episodes: - from_start: yes + - next_sonarr_episodes: + <<: *sonarr + only_monitored: yes + include_ended: yes from: - - newznab: - url: 'https://www.usenet-crawler.com/api?apikey={?crawler.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 - - - 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 -tasks: # {{{1 - dl-series: # {{{2 - priority: 100 - template: - - email - - 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: - - email - - movies - - movies-discover-queue - - movies-1080p - - filters - - usenet - - - dl-movies-discover-queue-720p: # {{{2 - priority: 110 - template: - - email - - movies - - movies-discover-queue - - movies-720p - - filters - - usenet - - - dl-movies-queue-1080p: # {{{2 - priority: 100 - template: - - email - - movies - - movies-1080p - - filters - - usenet - - usenet-movies - - - dl-movies-queue-720p: # {{{2 - priority: 110 - template: - - email - - movies - - movies-720p - - filters - - usenet - - usenet-movies - - - dl-movies-imdb-1080p: # {{{2 - priority: 120 - template: - - email - - movies - - movies-imdb - - movies-1080p - - filters - - usenet - - usenet-movies - - - dl-movies-imdb-720p: # {{{2 - priority: 130 - template: - - email - - movies - - movies-imdb - - movies-720p - - filters - - usenet - - usenet-movies + 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 + move_series: # {{{2 manual: yes template: - - trakt-add-collection + - trakt_add_collection disable: - retry_failed - seen - seen_info_hash no_entries_ok: yes - - filesystem: - path: - - /srv/usenet/done - - /srv/torrents/done - recursive: yes - retrieve: files - regexp: '.*\.(avi|mkv|mp4|mpg|divx|webm)$' - - regexp: - reject: - - '[Ss]ample' - - thetvdb_lookup: yes - if: - - "not has_field('tvdb_episode')": - manipulate: - - title: - extract: 'done/([^/]*)/[^/]*$' - from: location - thetvdb_lookup: 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 - - tvdb_ep_name - 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(' ','}{')}}{{'}'}}[en]" + 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}}>>>" + 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 - - filesystem: - path: - - /srv/usenet/done - - /srv/torrents/done - recursive: yes - regexp: '.*\.(mkv|avi|mp4)$' - - regexp: - reject: - - '[Ss]ample' - - imdb_lookup: yes - if: - - movie_name is None: - manipulate: - - title: - extract: 'done/([^/]*)/[^/]*$' - from: location - imdb_lookup: yes - + regexp: { reject: ['[Ss]ample'] } + parsing: + movie: guessit + 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 - - - daily-mail: # {{{2 - manual: yes - no_entries_ok: yes - from_digest: - list: move-tasks - seen: local - accept_all: yes - notify: - task: - template: move - via: - - email: - from: flexget@tardis - to: ramsi@localhost - - - backfill-mail: # {{{2 - priority: 500 - manual: yes - template: - - email - no_entries_ok: yes - from_digest: - list: backfill - seen: local - accept_all: yes - seed-series-db: # {{{2 - manual: yes - seen: local - + 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+))+([^/]*)\.[^.]+$' + regexp: '.*/([^/]+)/[^/]+/(\d+)(?:x(\d+))+([^/]*?)(?:\[.*\])?\.[^.]+$' format: '\1 S\2E\3\4' - title: replace: - regexp: '\[.*\]' - format: '' - - title: - replace: - regexp: '[\(\)\{\}]' + 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: - tracking: no - assume_quality: 480p + parse_only: yes accept_all: yes - require_field: - - tvdb_id + disable: [seen] + + + dl-series: # {{{2 + priority: 100 + template: + - series + - newznab_series_queue + - filters + - usenet - seed-trakt-series: # {{{2 + backfill-series: # {{{2 + priority: 110 + template: + - series + - newznab_series_backfill + - filters + - usenet + + dl-movies: # {{{2 + priority: 100 + template: + - movies + - newznab_movies_queue + - filters + - usenet + + + 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 + + + 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 - seen: local template: - - trakt-add-collection + - move_series + filesystem: + path: + - /srv/usenet/done/series + recursive: yes + retrieve: files + regexp: '.*\.(avi|mkv|mp4|mpg|divx|webm|flv)$' + + move-series-torrents: # {{{2 + manual: yes + template: + - move_series filesystem: path: - - '/mnt/series' + - /srv/torrents/done recursive: yes retrieve: files - regexp: '.*\.(avi|mkv|mp4|webm|m4v)$' + regexp: '.*\.(avi|mkv|mp4|mpg|divx|webm|flv)$' - 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 - accept_all: yes - require_field: - - tvdb_id + 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)$' - seed-trakt-movies: # {{{2 + move-movies-torrents: # {{{2 manual: yes - seen: local template: - - trakt-add-collection + - move_movies + - trakt_remove_movie_queue filesystem: path: - - '/mnt/movies' + - /srv/torrents/done recursive: yes - retrieve: files - regexp: '.*\.(avi|mkv|mp4|webm|m4v)$' - imdb_lookup: yes + regexp: '.*\.(mkv|avi|mp4)$' + + + 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 - require_field: - - imdb_id + + + 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-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 + + + 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: ['daily-mail'] - schedule: - hour: '17' - minute: '00' - - - tasks: ['dl-*'] - schedule: - hour: '*' - minute: '48' - - - tasks: ['backfill-mail'] - schedule: - hour: '*' - minute: '48' + - 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