X-Git-Url: https://git.rmz.io/dotfiles.git/blobdiff_plain/ee99efb0df6b146d098b5b65cdbed8a61ecd9ff1..a59aa3f7d15dae57e2d066e47af3556c46d9dac4:/flexget/config.yml diff --git a/flexget/config.yml b/flexget/config.yml index cf45208..d848534 100644 --- a/flexget/config.yml +++ b/flexget/config.yml @@ -1,84 +1,652 @@ -email: - from: flexget@tardis - to: ramsi@localhost +variables: private.yml -tasks: - tv-shows: +web_server: + port: 8081 + +templates: # {{{1 + 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?}' + + + usenet_movies_rss: # {{{2 + inputs: + - 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_series_rss: # {{{2 inputs: - - rss: { url: 'https://www.ezrss.it/feed/', 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.bt-chat.com/?group=3', silent: yes } - - rss: { url: 'http://showrss.karmorra.info/feeds/all.rss', silent: yes } -# - rss: { url: 'http://rss.thepiratebay.org/208', silent: yes } + - 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 content_filter: + require: + - '*.mkv' + - '*.mp4' reject: + - 'filename.mkv' - '*.rar' - '*.r0*' + - '*.wmv' + - '*.exe' + regexp: + reject: + - \b3-?D\b: {from: title} + - \btrailer\b: {from: title} # I've gotten a few trailers that matched as movies. VERY annoying + - \bR5\b: {from: title} # The following are poor quality types that somehow got through the quality + - \bWEBSCR\b: {from: title} # features usually due to the title including a keyword like "720p" as well + - \bscreener\b: {from: title} + - \bTS\b: {from: title} + - \bCam\b: {from: title} + - '{C_P}': {from: title} # The following are groups with poor quality releases + - TrTd TeaM: {from: title} + - \[TNTVillage\]: {from: title} + - \[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: - - "/mnt/Skaro/Series" - - "/home/ramsi/Torrents" + path: + - '/mnt/series/{{tvdb_series_name}}' + allow_different_qualities: better + content_size: + min: 100 + max: 10000 + strict: yes + + 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: + # 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: - normal: - upgrade: yes - - normal: - - american dad - - burn notice - - chuck - - family guy - - futurama - - how i met your mother - - qi - - the big bang theory - - the cleveland show - - two and a half men - 720p: - - dexter - - doctor who - - eureka - - game of thrones - - house - - my little pony - - red dwarf - - weeds - - transmission: - host: localhost - port: 9091 - path: /mnt/Skaro/Torrents.flex - removewhendone: yes - ratio: 0.0 - - move-episodes: + 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 + set: + category: 'movies' + priority: '-1' # low + exists_movie: + path: + - '/mnt/movies' + allow_different_qualities: better + type: files + + + 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 - metainfo_series: 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}}" + - find: - path: /mnt/Skaro/Torrents.flex + series_filesystem: # {{{2 + filesystem: + path: + - '/mnt/series' recursive: yes - regexp: '.*\.(avi|mkv|mp4)$' + 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 - move: - to: "/mnt/Skaro/Series/{{series_name_tvdb}}/Season {{tvdb_season}}/" - filename: "{{tvdb_season}}x{{tvdb_episode|pad(2)}} {{ep_name|replace('/','-')}} ({{ep_air_date|formatdate('%Y')}}){{'{'}}{{quality|replace(' ','}{')}}{{'}'}}[en]{{location|pathext}}" - move-movies: - tmdb_lookup: yes +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] - find: - path: /mnt/Skaro/Movies.carsten + + dl-series: # {{{2 + priority: 100 + template: + - series + - newznab_series_queue + - filters + - usenet + + + 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 + template: + - move_series + filesystem: + path: + - /srv/usenet/done/series recursive: yes - regexp: '.*\.mkv$' + retrieve: files + regexp: '.*\.(avi|mkv|mp4|mpg|divx|webm|flv)$' - move: - to: "/mnt/Skaro/Movies.flexed" - filename: "{{tmdb_name}} ({{tmdb_year}}){{'{'}}{{quality|replace(' ','}{')}}{{'}'}}[en][de].mkv" + + 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)$' + + + move-movies-torrents: # {{{2 + manual: yes + template: + - move_movies + - trakt_remove_movie_queue + filesystem: + path: + - /srv/torrents/done + recursive: 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 + + + 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: ['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