flexget 3.14.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- flexget-3.14.0/.gitignore +52 -0
- flexget-3.14.0/LICENSE +23 -0
- flexget-3.14.0/PKG-INFO +314 -0
- flexget-3.14.0/README.rst +84 -0
- flexget-3.14.0/build_locked_extras.py +62 -0
- flexget-3.14.0/bundle_webui.py +106 -0
- flexget-3.14.0/dev_tools.py +126 -0
- flexget-3.14.0/flexget/__init__.py +80 -0
- flexget-3.14.0/flexget/_version.py +13 -0
- flexget-3.14.0/flexget/api/__init__.py +12 -0
- flexget-3.14.0/flexget/api/app.py +464 -0
- flexget-3.14.0/flexget/api/core/__init__.py +1 -0
- flexget-3.14.0/flexget/api/core/authentication.py +130 -0
- flexget-3.14.0/flexget/api/core/cached.py +38 -0
- flexget-3.14.0/flexget/api/core/database.py +65 -0
- flexget-3.14.0/flexget/api/core/format_checker.py +42 -0
- flexget-3.14.0/flexget/api/core/plugins.py +169 -0
- flexget-3.14.0/flexget/api/core/schema.py +65 -0
- flexget-3.14.0/flexget/api/core/server.py +577 -0
- flexget-3.14.0/flexget/api/core/tasks.py +639 -0
- flexget-3.14.0/flexget/api/core/user.py +66 -0
- flexget-3.14.0/flexget/api/templates/api_response.html +41 -0
- flexget-3.14.0/flexget/api/templates/swagger-ui.html +93 -0
- flexget-3.14.0/flexget/components/README.md +5 -0
- flexget-3.14.0/flexget/components/__init__.py +0 -0
- flexget-3.14.0/flexget/components/archive/__init__.py +0 -0
- flexget-3.14.0/flexget/components/archive/archive.py +122 -0
- flexget-3.14.0/flexget/components/archive/cli.py +280 -0
- flexget-3.14.0/flexget/components/archive/db.py +175 -0
- flexget-3.14.0/flexget/components/archives/__init__.py +0 -0
- flexget-3.14.0/flexget/components/archives/archives.py +61 -0
- flexget-3.14.0/flexget/components/archives/decompress.py +220 -0
- flexget-3.14.0/flexget/components/archives/utils.py +281 -0
- flexget-3.14.0/flexget/components/backlog/__init__.py +0 -0
- flexget-3.14.0/flexget/components/backlog/backlog.py +115 -0
- flexget-3.14.0/flexget/components/backlog/cli.py +38 -0
- flexget-3.14.0/flexget/components/backlog/db.py +111 -0
- flexget-3.14.0/flexget/components/bittorrent/__init__.py +0 -0
- flexget-3.14.0/flexget/components/bittorrent/convert_magnet.py +122 -0
- flexget-3.14.0/flexget/components/bittorrent/magnet_info_hash.py +41 -0
- flexget-3.14.0/flexget/components/bittorrent/private_torrents.py +49 -0
- flexget-3.14.0/flexget/components/bittorrent/torrent.py +116 -0
- flexget-3.14.0/flexget/components/bittorrent/torrent_alive.py +279 -0
- flexget-3.14.0/flexget/components/bittorrent/torrent_files.py +29 -0
- flexget-3.14.0/flexget/components/bittorrent/torrent_match.py +201 -0
- flexget-3.14.0/flexget/components/bittorrent/torrent_scrub.py +121 -0
- flexget-3.14.0/flexget/components/bittorrent/torrent_size.py +26 -0
- flexget-3.14.0/flexget/components/bittorrent/trackers.py +119 -0
- flexget-3.14.0/flexget/components/emby/__init__.py +0 -0
- flexget-3.14.0/flexget/components/emby/api_emby.py +2779 -0
- flexget-3.14.0/flexget/components/emby/emby_list.py +67 -0
- flexget-3.14.0/flexget/components/emby/emby_lookup.py +97 -0
- flexget-3.14.0/flexget/components/emby/emby_refresh.py +93 -0
- flexget-3.14.0/flexget/components/emby/emby_util.py +163 -0
- flexget-3.14.0/flexget/components/emby/from_emby.py +115 -0
- flexget-3.14.0/flexget/components/estimate_release/__init__.py +0 -0
- flexget-3.14.0/flexget/components/estimate_release/estimate_release.py +43 -0
- flexget-3.14.0/flexget/components/estimate_release/estimators/__init__.py +0 -0
- flexget-3.14.0/flexget/components/estimate_release/estimators/est_movies_bluray.py +46 -0
- flexget-3.14.0/flexget/components/estimate_release/estimators/est_released_movies.py +36 -0
- flexget-3.14.0/flexget/components/estimate_release/estimators/est_series_tvmaze.py +89 -0
- flexget-3.14.0/flexget/components/failed/__init__.py +0 -0
- flexget-3.14.0/flexget/components/failed/api.py +153 -0
- flexget-3.14.0/flexget/components/failed/cli.py +55 -0
- flexget-3.14.0/flexget/components/failed/db.py +94 -0
- flexget-3.14.0/flexget/components/failed/retry_failed.py +142 -0
- flexget-3.14.0/flexget/components/ftp/__init__.py +0 -0
- flexget-3.14.0/flexget/components/ftp/ftp_download.py +223 -0
- flexget-3.14.0/flexget/components/ftp/ftp_list.py +168 -0
- flexget-3.14.0/flexget/components/ftp/sftp.py +427 -0
- flexget-3.14.0/flexget/components/ftp/sftp_client.py +676 -0
- flexget-3.14.0/flexget/components/history/__init__.py +0 -0
- flexget-3.14.0/flexget/components/history/api.py +109 -0
- flexget-3.14.0/flexget/components/history/cli.py +68 -0
- flexget-3.14.0/flexget/components/history/db.py +48 -0
- flexget-3.14.0/flexget/components/history/history.py +36 -0
- flexget-3.14.0/flexget/components/imdb/__init__.py +0 -0
- flexget-3.14.0/flexget/components/imdb/api.py +45 -0
- flexget-3.14.0/flexget/components/imdb/db.py +231 -0
- flexget-3.14.0/flexget/components/imdb/from_imdb.py +362 -0
- flexget-3.14.0/flexget/components/imdb/imdb.py +269 -0
- flexget-3.14.0/flexget/components/imdb/imdb_lookup.py +323 -0
- flexget-3.14.0/flexget/components/imdb/imdb_url.py +47 -0
- flexget-3.14.0/flexget/components/imdb/imdb_watchlist.py +250 -0
- flexget-3.14.0/flexget/components/imdb/utils.py +399 -0
- flexget-3.14.0/flexget/components/irc/__init__.py +0 -0
- flexget-3.14.0/flexget/components/irc/api.py +126 -0
- flexget-3.14.0/flexget/components/irc/cli.py +111 -0
- flexget-3.14.0/flexget/components/irc/irc.py +1086 -0
- flexget-3.14.0/flexget/components/managed_lists/__init__.py +0 -0
- flexget-3.14.0/flexget/components/managed_lists/list_add.py +58 -0
- flexget-3.14.0/flexget/components/managed_lists/list_clear.py +61 -0
- flexget-3.14.0/flexget/components/managed_lists/list_match.py +85 -0
- flexget-3.14.0/flexget/components/managed_lists/list_remove.py +51 -0
- flexget-3.14.0/flexget/components/managed_lists/lists/__init__.py +0 -0
- flexget-3.14.0/flexget/components/managed_lists/lists/couchpotato_list.py +262 -0
- flexget-3.14.0/flexget/components/managed_lists/lists/entry_list/__init__.py +0 -0
- flexget-3.14.0/flexget/components/managed_lists/lists/entry_list/api.py +321 -0
- flexget-3.14.0/flexget/components/managed_lists/lists/entry_list/cli.py +222 -0
- flexget-3.14.0/flexget/components/managed_lists/lists/entry_list/db.py +256 -0
- flexget-3.14.0/flexget/components/managed_lists/lists/entry_list/entry_list.py +48 -0
- flexget-3.14.0/flexget/components/managed_lists/lists/imdb_list.py +500 -0
- flexget-3.14.0/flexget/components/managed_lists/lists/movie_list/__init__.py +0 -0
- flexget-3.14.0/flexget/components/managed_lists/lists/movie_list/api.py +368 -0
- flexget-3.14.0/flexget/components/managed_lists/lists/movie_list/cli.py +255 -0
- flexget-3.14.0/flexget/components/managed_lists/lists/movie_list/db.py +214 -0
- flexget-3.14.0/flexget/components/managed_lists/lists/movie_list/movie_list.py +194 -0
- flexget-3.14.0/flexget/components/managed_lists/lists/ombi_list.py +1021 -0
- flexget-3.14.0/flexget/components/managed_lists/lists/pending_list/__init__.py +0 -0
- flexget-3.14.0/flexget/components/managed_lists/lists/pending_list/api.py +386 -0
- flexget-3.14.0/flexget/components/managed_lists/lists/pending_list/cli.py +268 -0
- flexget-3.14.0/flexget/components/managed_lists/lists/pending_list/db.py +169 -0
- flexget-3.14.0/flexget/components/managed_lists/lists/pending_list/pending_list.py +148 -0
- flexget-3.14.0/flexget/components/managed_lists/lists/plex_watchlist.py +205 -0
- flexget-3.14.0/flexget/components/managed_lists/lists/radarr_list.py +627 -0
- flexget-3.14.0/flexget/components/managed_lists/lists/regexp_list/__init__.py +0 -0
- flexget-3.14.0/flexget/components/managed_lists/lists/regexp_list/cli.py +128 -0
- flexget-3.14.0/flexget/components/managed_lists/lists/regexp_list/db.py +133 -0
- flexget-3.14.0/flexget/components/managed_lists/lists/regexp_list/regexp_list.py +117 -0
- flexget-3.14.0/flexget/components/managed_lists/lists/sonarr_list.py +302 -0
- flexget-3.14.0/flexget/components/managed_lists/lists/subtitle_list.py +429 -0
- flexget-3.14.0/flexget/components/managed_lists/lists/thetvdb_list.py +156 -0
- flexget-3.14.0/flexget/components/managed_lists/lists/yaml_list.py +190 -0
- flexget-3.14.0/flexget/components/notify/__init__.py +0 -0
- flexget-3.14.0/flexget/components/notify/notification_framework.py +134 -0
- flexget-3.14.0/flexget/components/notify/notifiers/__init__.py +0 -0
- flexget-3.14.0/flexget/components/notify/notifiers/bark.py +93 -0
- flexget-3.14.0/flexget/components/notify/notifiers/cronitor.py +94 -0
- flexget-3.14.0/flexget/components/notify/notifiers/discord.py +205 -0
- flexget-3.14.0/flexget/components/notify/notifiers/email.py +200 -0
- flexget-3.14.0/flexget/components/notify/notifiers/gotify.py +80 -0
- flexget-3.14.0/flexget/components/notify/notifiers/ifttt.py +85 -0
- flexget-3.14.0/flexget/components/notify/notifiers/join.py +101 -0
- flexget-3.14.0/flexget/components/notify/notifiers/matrix.py +79 -0
- flexget-3.14.0/flexget/components/notify/notifiers/microsoftteams.py +55 -0
- flexget-3.14.0/flexget/components/notify/notifiers/mqtt.py +250 -0
- flexget-3.14.0/flexget/components/notify/notifiers/notifymyandroid.py +91 -0
- flexget-3.14.0/flexget/components/notify/notifiers/ntfysh.py +82 -0
- flexget-3.14.0/flexget/components/notify/notifiers/prowl.py +90 -0
- flexget-3.14.0/flexget/components/notify/notifiers/pushalot.py +83 -0
- flexget-3.14.0/flexget/components/notify/notifiers/pushbullet.py +142 -0
- flexget-3.14.0/flexget/components/notify/notifiers/pushover.py +142 -0
- flexget-3.14.0/flexget/components/notify/notifiers/pushsafer.py +108 -0
- flexget-3.14.0/flexget/components/notify/notifiers/rapidpush.py +92 -0
- flexget-3.14.0/flexget/components/notify/notifiers/slack.py +128 -0
- flexget-3.14.0/flexget/components/notify/notifiers/sms_ru.py +76 -0
- flexget-3.14.0/flexget/components/notify/notifiers/telegram.py +519 -0
- flexget-3.14.0/flexget/components/notify/notifiers/toast.py +198 -0
- flexget-3.14.0/flexget/components/notify/notifiers/xmpp.py +94 -0
- flexget-3.14.0/flexget/components/notify/notify.py +174 -0
- flexget-3.14.0/flexget/components/parsing/__init__.py +0 -0
- flexget-3.14.0/flexget/components/parsing/parsers/__init__.py +0 -0
- flexget-3.14.0/flexget/components/parsing/parsers/parser_common.py +198 -0
- flexget-3.14.0/flexget/components/parsing/parsers/parser_guessit.py +452 -0
- flexget-3.14.0/flexget/components/parsing/parsers/parser_internal.py +81 -0
- flexget-3.14.0/flexget/components/parsing/plugin_parsing.py +101 -0
- flexget-3.14.0/flexget/components/pending_approval/__init__.py +0 -0
- flexget-3.14.0/flexget/components/pending_approval/api.py +219 -0
- flexget-3.14.0/flexget/components/pending_approval/cli.py +132 -0
- flexget-3.14.0/flexget/components/pending_approval/db.py +99 -0
- flexget-3.14.0/flexget/components/pending_approval/pending_approval.py +79 -0
- flexget-3.14.0/flexget/components/rejected/__init__.py +0 -0
- flexget-3.14.0/flexget/components/rejected/api.py +166 -0
- flexget-3.14.0/flexget/components/rejected/cli.py +48 -0
- flexget-3.14.0/flexget/components/rejected/db.py +85 -0
- flexget-3.14.0/flexget/components/rejected/remember_rejected.py +129 -0
- flexget-3.14.0/flexget/components/scheduler/__init__.py +0 -0
- flexget-3.14.0/flexget/components/scheduler/api.py +199 -0
- flexget-3.14.0/flexget/components/scheduler/scheduler.py +198 -0
- flexget-3.14.0/flexget/components/seen/__init__.py +0 -0
- flexget-3.14.0/flexget/components/seen/api.py +180 -0
- flexget-3.14.0/flexget/components/seen/cli.py +178 -0
- flexget-3.14.0/flexget/components/seen/db.py +304 -0
- flexget-3.14.0/flexget/components/seen/seen.py +155 -0
- flexget-3.14.0/flexget/components/seen/seen_info_hash.py +47 -0
- flexget-3.14.0/flexget/components/seen/seen_movies.py +77 -0
- flexget-3.14.0/flexget/components/series/__init__.py +0 -0
- flexget-3.14.0/flexget/components/series/all_series.py +60 -0
- flexget-3.14.0/flexget/components/series/api.py +1231 -0
- flexget-3.14.0/flexget/components/series/cli.py +430 -0
- flexget-3.14.0/flexget/components/series/configure_series.py +97 -0
- flexget-3.14.0/flexget/components/series/db.py +1553 -0
- flexget-3.14.0/flexget/components/series/gen_series.py +80 -0
- flexget-3.14.0/flexget/components/series/internal_estimator.py +64 -0
- flexget-3.14.0/flexget/components/series/metainfo_series.py +63 -0
- flexget-3.14.0/flexget/components/series/next_series_episodes.py +297 -0
- flexget-3.14.0/flexget/components/series/next_series_seasons.py +250 -0
- flexget-3.14.0/flexget/components/series/series.py +1234 -0
- flexget-3.14.0/flexget/components/series/series_begin.py +50 -0
- flexget-3.14.0/flexget/components/series/series_premiere.py +94 -0
- flexget-3.14.0/flexget/components/series/series_remove.py +57 -0
- flexget-3.14.0/flexget/components/series/utils.py +13 -0
- flexget-3.14.0/flexget/components/sites/__init__.py +0 -0
- flexget-3.14.0/flexget/components/sites/sites/__init__.py +0 -0
- flexget-3.14.0/flexget/components/sites/sites/allyoulike.py +110 -0
- flexget-3.14.0/flexget/components/sites/sites/alpharatio.py +334 -0
- flexget-3.14.0/flexget/components/sites/sites/animeindex.py +30 -0
- flexget-3.14.0/flexget/components/sites/sites/anirena.py +21 -0
- flexget-3.14.0/flexget/components/sites/sites/archetorrent.py +30 -0
- flexget-3.14.0/flexget/components/sites/sites/argenteam.py +108 -0
- flexget-3.14.0/flexget/components/sites/sites/awesomehd.py +150 -0
- flexget-3.14.0/flexget/components/sites/sites/bakabt.py +43 -0
- flexget-3.14.0/flexget/components/sites/sites/btn.py +141 -0
- flexget-3.14.0/flexget/components/sites/sites/cinemageddon.py +24 -0
- flexget-3.14.0/flexget/components/sites/sites/cpasbien.py +146 -0
- flexget-3.14.0/flexget/components/sites/sites/deadfrog.py +45 -0
- flexget-3.14.0/flexget/components/sites/sites/descargas2020.py +141 -0
- flexget-3.14.0/flexget/components/sites/sites/ettv.py +46 -0
- flexget-3.14.0/flexget/components/sites/sites/eztv.py +125 -0
- flexget-3.14.0/flexget/components/sites/sites/filelist.py +282 -0
- flexget-3.14.0/flexget/components/sites/sites/filelist_api.py +165 -0
- flexget-3.14.0/flexget/components/sites/sites/frenchtorrentdb.py +58 -0
- flexget-3.14.0/flexget/components/sites/sites/fuzer.py +169 -0
- flexget-3.14.0/flexget/components/sites/sites/google_cse.py +90 -0
- flexget-3.14.0/flexget/components/sites/sites/hebits.py +154 -0
- flexget-3.14.0/flexget/components/sites/sites/hliang.py +48 -0
- flexget-3.14.0/flexget/components/sites/sites/horriblesubs.py +107 -0
- flexget-3.14.0/flexget/components/sites/sites/iptorrents.py +223 -0
- flexget-3.14.0/flexget/components/sites/sites/koreus.py +41 -0
- flexget-3.14.0/flexget/components/sites/sites/limetorrents.py +139 -0
- flexget-3.14.0/flexget/components/sites/sites/lostfilm.py +603 -0
- flexget-3.14.0/flexget/components/sites/sites/magnetdl.py +159 -0
- flexget-3.14.0/flexget/components/sites/sites/morethantv.py +328 -0
- flexget-3.14.0/flexget/components/sites/sites/ncore.py +134 -0
- flexget-3.14.0/flexget/components/sites/sites/newtorrents.py +139 -0
- flexget-3.14.0/flexget/components/sites/sites/newznab.py +159 -0
- flexget-3.14.0/flexget/components/sites/sites/nnmclub.py +37 -0
- flexget-3.14.0/flexget/components/sites/sites/nyaa.py +120 -0
- flexget-3.14.0/flexget/components/sites/sites/passthepopcorn.py +263 -0
- flexget-3.14.0/flexget/components/sites/sites/piratebay.py +196 -0
- flexget-3.14.0/flexget/components/sites/sites/ptn.py +151 -0
- flexget-3.14.0/flexget/components/sites/sites/redirect.py +61 -0
- flexget-3.14.0/flexget/components/sites/sites/rlsbb.py +179 -0
- flexget-3.14.0/flexget/components/sites/sites/rmz.py +107 -0
- flexget-3.14.0/flexget/components/sites/sites/rss.py +48 -0
- flexget-3.14.0/flexget/components/sites/sites/rutracker.py +175 -0
- flexget-3.14.0/flexget/components/sites/sites/serienjunkies.py +211 -0
- flexget-3.14.0/flexget/components/sites/sites/shortened.py +24 -0
- flexget-3.14.0/flexget/components/sites/sites/site_1337x.py +139 -0
- flexget-3.14.0/flexget/components/sites/sites/site_rutracker.py +58 -0
- flexget-3.14.0/flexget/components/sites/sites/solidtorrents.py +177 -0
- flexget-3.14.0/flexget/components/sites/sites/torrent_cache.py +58 -0
- flexget-3.14.0/flexget/components/sites/sites/torrentday.py +201 -0
- flexget-3.14.0/flexget/components/sites/sites/torrentleech.py +170 -0
- flexget-3.14.0/flexget/components/sites/sites/torrentz.py +128 -0
- flexget-3.14.0/flexget/components/sites/sites/wordpress.py +96 -0
- flexget-3.14.0/flexget/components/sites/sites/yts.py +77 -0
- flexget-3.14.0/flexget/components/sites/urlrewrite.py +79 -0
- flexget-3.14.0/flexget/components/sites/urlrewrite_search.py +93 -0
- flexget-3.14.0/flexget/components/sites/urlrewriting.py +125 -0
- flexget-3.14.0/flexget/components/sites/utils.py +41 -0
- flexget-3.14.0/flexget/components/status/__init__.py +0 -0
- flexget-3.14.0/flexget/components/status/api.py +273 -0
- flexget-3.14.0/flexget/components/status/cli.py +129 -0
- flexget-3.14.0/flexget/components/status/db.py +176 -0
- flexget-3.14.0/flexget/components/status/status.py +60 -0
- flexget-3.14.0/flexget/components/thetvdb/__init__.py +0 -0
- flexget-3.14.0/flexget/components/thetvdb/api.py +265 -0
- flexget-3.14.0/flexget/components/thetvdb/api_tvdb.py +805 -0
- flexget-3.14.0/flexget/components/thetvdb/thetvdb_lookup.py +220 -0
- flexget-3.14.0/flexget/components/tmdb/__init__.py +0 -0
- flexget-3.14.0/flexget/components/tmdb/api.py +148 -0
- flexget-3.14.0/flexget/components/tmdb/api_tmdb.py +410 -0
- flexget-3.14.0/flexget/components/tmdb/tmdb_lookup.py +107 -0
- flexget-3.14.0/flexget/components/trakt/__init__.py +0 -0
- flexget-3.14.0/flexget/components/trakt/api.py +230 -0
- flexget-3.14.0/flexget/components/trakt/api_trakt.py +428 -0
- flexget-3.14.0/flexget/components/trakt/cli.py +129 -0
- flexget-3.14.0/flexget/components/trakt/db.py +1131 -0
- flexget-3.14.0/flexget/components/trakt/next_trakt_episodes.py +167 -0
- flexget-3.14.0/flexget/components/trakt/trakt_calendar.py +153 -0
- flexget-3.14.0/flexget/components/trakt/trakt_list.py +516 -0
- flexget-3.14.0/flexget/components/trakt/trakt_lookup.py +378 -0
- flexget-3.14.0/flexget/components/tvmaze/__init__.py +0 -0
- flexget-3.14.0/flexget/components/tvmaze/api.py +188 -0
- flexget-3.14.0/flexget/components/tvmaze/api_tvmaze.py +731 -0
- flexget-3.14.0/flexget/components/tvmaze/tvmaze_lookup.py +222 -0
- flexget-3.14.0/flexget/components/variables/__init__.py +0 -0
- flexget-3.14.0/flexget/components/variables/api.py +49 -0
- flexget-3.14.0/flexget/components/variables/variables.py +122 -0
- flexget-3.14.0/flexget/config_schema.py +543 -0
- flexget-3.14.0/flexget/db_schema.py +270 -0
- flexget-3.14.0/flexget/entry.py +442 -0
- flexget-3.14.0/flexget/event.py +112 -0
- flexget-3.14.0/flexget/ipc.py +196 -0
- flexget-3.14.0/flexget/log.py +211 -0
- flexget-3.14.0/flexget/manager.py +1072 -0
- flexget-3.14.0/flexget/options.py +581 -0
- flexget-3.14.0/flexget/plugin.py +659 -0
- flexget-3.14.0/flexget/plugins/README.md +5 -0
- flexget-3.14.0/flexget/plugins/__init__.py +1 -0
- flexget-3.14.0/flexget/plugins/cli/__init__.py +1 -0
- flexget-3.14.0/flexget/plugins/cli/check.py +172 -0
- flexget-3.14.0/flexget/plugins/cli/cli_config.py +69 -0
- flexget-3.14.0/flexget/plugins/cli/database.py +83 -0
- flexget-3.14.0/flexget/plugins/cli/debug_info.py +24 -0
- flexget-3.14.0/flexget/plugins/cli/doc.py +56 -0
- flexget-3.14.0/flexget/plugins/cli/explain_sql.py +52 -0
- flexget-3.14.0/flexget/plugins/cli/filters.py +29 -0
- flexget-3.14.0/flexget/plugins/cli/inject.py +91 -0
- flexget-3.14.0/flexget/plugins/cli/perf_tests.py +81 -0
- flexget-3.14.0/flexget/plugins/cli/performance.py +92 -0
- flexget-3.14.0/flexget/plugins/cli/plugins.py +54 -0
- flexget-3.14.0/flexget/plugins/cli/templates.py +41 -0
- flexget-3.14.0/flexget/plugins/cli/try_regexp.py +87 -0
- flexget-3.14.0/flexget/plugins/cli/web.py +36 -0
- flexget-3.14.0/flexget/plugins/cli/wiki_qualities.py +31 -0
- flexget-3.14.0/flexget/plugins/cli/win32_service.py +84 -0
- flexget-3.14.0/flexget/plugins/clients/__init__.py +0 -0
- flexget-3.14.0/flexget/plugins/clients/aria2.py +325 -0
- flexget-3.14.0/flexget/plugins/clients/deluge.py +726 -0
- flexget-3.14.0/flexget/plugins/clients/nzbget.py +64 -0
- flexget-3.14.0/flexget/plugins/clients/pyload.py +279 -0
- flexget-3.14.0/flexget/plugins/clients/qbittorrent.py +420 -0
- flexget-3.14.0/flexget/plugins/clients/rtorrent.py +824 -0
- flexget-3.14.0/flexget/plugins/clients/transmission.py +939 -0
- flexget-3.14.0/flexget/plugins/daemon/__init__.py +1 -0
- flexget-3.14.0/flexget/plugins/daemon/web_server.py +128 -0
- flexget-3.14.0/flexget/plugins/filter/__init__.py +1 -0
- flexget-3.14.0/flexget/plugins/filter/abort_if_exists.py +42 -0
- flexget-3.14.0/flexget/plugins/filter/accept_all.py +28 -0
- flexget-3.14.0/flexget/plugins/filter/age.py +82 -0
- flexget-3.14.0/flexget/plugins/filter/best_quality.py +82 -0
- flexget-3.14.0/flexget/plugins/filter/content_filter.py +172 -0
- flexget-3.14.0/flexget/plugins/filter/content_size.py +98 -0
- flexget-3.14.0/flexget/plugins/filter/crossmatch.py +117 -0
- flexget-3.14.0/flexget/plugins/filter/delay.py +153 -0
- flexget-3.14.0/flexget/plugins/filter/duplicates.py +46 -0
- flexget-3.14.0/flexget/plugins/filter/exists.py +61 -0
- flexget-3.14.0/flexget/plugins/filter/exists_movie.py +214 -0
- flexget-3.14.0/flexget/plugins/filter/exists_series.py +140 -0
- flexget-3.14.0/flexget/plugins/filter/if_condition.py +96 -0
- flexget-3.14.0/flexget/plugins/filter/limit_new.py +48 -0
- flexget-3.14.0/flexget/plugins/filter/magnets.py +27 -0
- flexget-3.14.0/flexget/plugins/filter/only_new.py +35 -0
- flexget-3.14.0/flexget/plugins/filter/proper_movies.py +183 -0
- flexget-3.14.0/flexget/plugins/filter/quality.py +42 -0
- flexget-3.14.0/flexget/plugins/filter/regexp.py +240 -0
- flexget-3.14.0/flexget/plugins/filter/require_field.py +37 -0
- flexget-3.14.0/flexget/plugins/filter/rottentomatoes.py +234 -0
- flexget-3.14.0/flexget/plugins/filter/thetvdb.py +232 -0
- flexget-3.14.0/flexget/plugins/filter/timeframe.py +208 -0
- flexget-3.14.0/flexget/plugins/filter/unique.py +83 -0
- flexget-3.14.0/flexget/plugins/filter/upgrade.py +234 -0
- flexget-3.14.0/flexget/plugins/generic/__init__.py +1 -0
- flexget-3.14.0/flexget/plugins/generic/cron_env.py +38 -0
- flexget-3.14.0/flexget/plugins/generic/db_analyze.py +13 -0
- flexget-3.14.0/flexget/plugins/generic/db_vacuum.py +30 -0
- flexget-3.14.0/flexget/plugins/generic/log_start.py +26 -0
- flexget-3.14.0/flexget/plugins/generic/urlfix.py +32 -0
- flexget-3.14.0/flexget/plugins/generic/welcome.py +46 -0
- flexget-3.14.0/flexget/plugins/input/__init__.py +1 -0
- flexget-3.14.0/flexget/plugins/input/anidb_list.py +135 -0
- flexget-3.14.0/flexget/plugins/input/anilist.py +281 -0
- flexget-3.14.0/flexget/plugins/input/apple_trailers.py +176 -0
- flexget-3.14.0/flexget/plugins/input/betaseries_list.py +201 -0
- flexget-3.14.0/flexget/plugins/input/discover.py +327 -0
- flexget-3.14.0/flexget/plugins/input/filesystem.py +219 -0
- flexget-3.14.0/flexget/plugins/input/filmweb_watchlist.py +106 -0
- flexget-3.14.0/flexget/plugins/input/from_piratebay.py +193 -0
- flexget-3.14.0/flexget/plugins/input/from_task.py +42 -0
- flexget-3.14.0/flexget/plugins/input/from_telegram.py +226 -0
- flexget-3.14.0/flexget/plugins/input/gazelle.py +486 -0
- flexget-3.14.0/flexget/plugins/input/generate.py +41 -0
- flexget-3.14.0/flexget/plugins/input/html.py +309 -0
- flexget-3.14.0/flexget/plugins/input/input_csv.py +78 -0
- flexget-3.14.0/flexget/plugins/input/inputs.py +71 -0
- flexget-3.14.0/flexget/plugins/input/json.py +81 -0
- flexget-3.14.0/flexget/plugins/input/kitsu.py +164 -0
- flexget-3.14.0/flexget/plugins/input/letterboxd.py +147 -0
- flexget-3.14.0/flexget/plugins/input/limit.py +50 -0
- flexget-3.14.0/flexget/plugins/input/medusa.py +100 -0
- flexget-3.14.0/flexget/plugins/input/mock.py +53 -0
- flexget-3.14.0/flexget/plugins/input/my_anime_list.py +122 -0
- flexget-3.14.0/flexget/plugins/input/myepisodes_list.py +109 -0
- flexget-3.14.0/flexget/plugins/input/next_sonarr_episodes.py +137 -0
- flexget-3.14.0/flexget/plugins/input/npo_watchlist.py +338 -0
- flexget-3.14.0/flexget/plugins/input/parameterize.py +56 -0
- flexget-3.14.0/flexget/plugins/input/plex.py +419 -0
- flexget-3.14.0/flexget/plugins/input/pogcal.py +72 -0
- flexget-3.14.0/flexget/plugins/input/regexp_parse.py +215 -0
- flexget-3.14.0/flexget/plugins/input/rlslog.py +122 -0
- flexget-3.14.0/flexget/plugins/input/rottentomatoes_list.py +90 -0
- flexget-3.14.0/flexget/plugins/input/rss.py +589 -0
- flexget-3.14.0/flexget/plugins/input/sceper.py +106 -0
- flexget-3.14.0/flexget/plugins/input/sickbeard.py +155 -0
- flexget-3.14.0/flexget/plugins/input/tail.py +188 -0
- flexget-3.14.0/flexget/plugins/input/text.py +141 -0
- flexget-3.14.0/flexget/plugins/input/torznab.py +283 -0
- flexget-3.14.0/flexget/plugins/input/twitterfeed.py +169 -0
- flexget-3.14.0/flexget/plugins/internal/__init__.py +4 -0
- flexget-3.14.0/flexget/plugins/internal/api_bluray.py +279 -0
- flexget-3.14.0/flexget/plugins/internal/api_rottentomatoes.py +633 -0
- flexget-3.14.0/flexget/plugins/internal/change_warn.py +116 -0
- flexget-3.14.0/flexget/plugins/metainfo/__init__.py +1 -0
- flexget-3.14.0/flexget/plugins/metainfo/assume_quality.py +116 -0
- flexget-3.14.0/flexget/plugins/metainfo/bluray_lookup.py +78 -0
- flexget-3.14.0/flexget/plugins/metainfo/content_size.py +72 -0
- flexget-3.14.0/flexget/plugins/metainfo/media_id.py +56 -0
- flexget-3.14.0/flexget/plugins/metainfo/metainfo_movie.py +56 -0
- flexget-3.14.0/flexget/plugins/metainfo/nfo_lookup.py +259 -0
- flexget-3.14.0/flexget/plugins/metainfo/nzb_size.py +65 -0
- flexget-3.14.0/flexget/plugins/metainfo/quality.py +52 -0
- flexget-3.14.0/flexget/plugins/metainfo/rottentomatoes_lookup.py +135 -0
- flexget-3.14.0/flexget/plugins/metainfo/subtitles_check.py +85 -0
- flexget-3.14.0/flexget/plugins/metainfo/task.py +27 -0
- flexget-3.14.0/flexget/plugins/modify/__init__.py +1 -0
- flexget-3.14.0/flexget/plugins/modify/extension.py +33 -0
- flexget-3.14.0/flexget/plugins/modify/headers.py +33 -0
- flexget-3.14.0/flexget/plugins/modify/manipulate.py +159 -0
- flexget-3.14.0/flexget/plugins/modify/path_by_ext.py +53 -0
- flexget-3.14.0/flexget/plugins/modify/path_by_space.py +149 -0
- flexget-3.14.0/flexget/plugins/modify/plugin_priority.py +56 -0
- flexget-3.14.0/flexget/plugins/modify/regex_extract.py +86 -0
- flexget-3.14.0/flexget/plugins/modify/reorder_quality.py +79 -0
- flexget-3.14.0/flexget/plugins/modify/set_field.py +68 -0
- flexget-3.14.0/flexget/plugins/modify/sort_by.py +90 -0
- flexget-3.14.0/flexget/plugins/modify/sort_by_weight.py +277 -0
- flexget-3.14.0/flexget/plugins/operate/__init__.py +1 -0
- flexget-3.14.0/flexget/plugins/operate/abort.py +20 -0
- flexget-3.14.0/flexget/plugins/operate/cfscraper.py +35 -0
- flexget-3.14.0/flexget/plugins/operate/cookies.py +190 -0
- flexget-3.14.0/flexget/plugins/operate/debug_db_sessions.py +108 -0
- flexget-3.14.0/flexget/plugins/operate/debug_warnings.py +24 -0
- flexget-3.14.0/flexget/plugins/operate/digest.py +157 -0
- flexget-3.14.0/flexget/plugins/operate/disable.py +71 -0
- flexget-3.14.0/flexget/plugins/operate/disable_phases.py +30 -0
- flexget-3.14.0/flexget/plugins/operate/domain_delay.py +29 -0
- flexget-3.14.0/flexget/plugins/operate/entry_trace.py +39 -0
- flexget-3.14.0/flexget/plugins/operate/formlogin.py +98 -0
- flexget-3.14.0/flexget/plugins/operate/free_space.py +121 -0
- flexget-3.14.0/flexget/plugins/operate/include.py +63 -0
- flexget-3.14.0/flexget/plugins/operate/interval.py +63 -0
- flexget-3.14.0/flexget/plugins/operate/log_filter.py +107 -0
- flexget-3.14.0/flexget/plugins/operate/manual.py +39 -0
- flexget-3.14.0/flexget/plugins/operate/max_reruns.py +40 -0
- flexget-3.14.0/flexget/plugins/operate/pathscrub.py +30 -0
- flexget-3.14.0/flexget/plugins/operate/priority.py +24 -0
- flexget-3.14.0/flexget/plugins/operate/proxy.py +49 -0
- flexget-3.14.0/flexget/plugins/operate/rerun.py +29 -0
- flexget-3.14.0/flexget/plugins/operate/run_task.py +67 -0
- flexget-3.14.0/flexget/plugins/operate/sequence.py +49 -0
- flexget-3.14.0/flexget/plugins/operate/sleep.py +97 -0
- flexget-3.14.0/flexget/plugins/operate/spy_headers.py +46 -0
- flexget-3.14.0/flexget/plugins/operate/template.py +137 -0
- flexget-3.14.0/flexget/plugins/operate/verbose.py +76 -0
- flexget-3.14.0/flexget/plugins/operate/verbose_details.py +54 -0
- flexget-3.14.0/flexget/plugins/operate/verify_ssl_certificates.py +38 -0
- flexget-3.14.0/flexget/plugins/operate/version_checker.py +114 -0
- flexget-3.14.0/flexget/plugins/output/__init__.py +1 -0
- flexget-3.14.0/flexget/plugins/output/download.py +558 -0
- flexget-3.14.0/flexget/plugins/output/download_auth.py +49 -0
- flexget-3.14.0/flexget/plugins/output/dump.py +148 -0
- flexget-3.14.0/flexget/plugins/output/dump_config.py +53 -0
- flexget-3.14.0/flexget/plugins/output/exec.py +226 -0
- flexget-3.14.0/flexget/plugins/output/file_operations.py +407 -0
- flexget-3.14.0/flexget/plugins/output/html.py +46 -0
- flexget-3.14.0/flexget/plugins/output/memusage.py +75 -0
- flexget-3.14.0/flexget/plugins/output/mock_output.py +32 -0
- flexget-3.14.0/flexget/plugins/output/rss.py +308 -0
- flexget-3.14.0/flexget/plugins/output/rtorrent_magnet.py +68 -0
- flexget-3.14.0/flexget/plugins/output/sabnzbd.py +110 -0
- flexget-3.14.0/flexget/plugins/output/sns.py +122 -0
- flexget-3.14.0/flexget/plugins/output/subtitles.py +147 -0
- flexget-3.14.0/flexget/plugins/output/subtitles_periscope.py +108 -0
- flexget-3.14.0/flexget/plugins/output/subtitles_subliminal.py +275 -0
- flexget-3.14.0/flexget/plugins/output/symlink.py +146 -0
- flexget-3.14.0/flexget/plugins/output/utorrent.py +179 -0
- flexget-3.14.0/flexget/plugins/services/__init__.py +1 -0
- flexget-3.14.0/flexget/plugins/services/kodi_library.py +79 -0
- flexget-3.14.0/flexget/plugins/services/myepisodes.py +327 -0
- flexget-3.14.0/flexget/plugins/services/pogcal_acquired.py +119 -0
- flexget-3.14.0/flexget/resources/flexget.png +0 -0
- flexget-3.14.0/flexget/task.py +787 -0
- flexget-3.14.0/flexget/task_queue.py +106 -0
- flexget-3.14.0/flexget/templates/entry/default.template +8 -0
- flexget-3.14.0/flexget/templates/task/default.template +17 -0
- flexget-3.14.0/flexget/templates/task/html.template +353 -0
- flexget-3.14.0/flexget/templates/task/rss.template +28 -0
- flexget-3.14.0/flexget/terminal.py +240 -0
- flexget-3.14.0/flexget/tests/LICENSE-resume.torrent +1 -0
- flexget-3.14.0/flexget/tests/LICENSE.torrent +1 -0
- flexget-3.14.0/flexget/tests/__init__.py +0 -0
- flexget-3.14.0/flexget/tests/api_tests/__init__.py +0 -0
- flexget-3.14.0/flexget/tests/api_tests/raw_config.yml +6 -0
- flexget-3.14.0/flexget/tests/api_tests/test_api_validator.py +25 -0
- flexget-3.14.0/flexget/tests/api_tests/test_authentication_api.py +26 -0
- flexget-3.14.0/flexget/tests/api_tests/test_cached_api.py +27 -0
- flexget-3.14.0/flexget/tests/api_tests/test_database_api.py +41 -0
- flexget-3.14.0/flexget/tests/api_tests/test_entry_list_api.py +402 -0
- flexget-3.14.0/flexget/tests/api_tests/test_etag.py +61 -0
- flexget-3.14.0/flexget/tests/api_tests/test_execute_api.py +224 -0
- flexget-3.14.0/flexget/tests/api_tests/test_failed_api.py +251 -0
- flexget-3.14.0/flexget/tests/api_tests/test_format_checker_api.py +234 -0
- flexget-3.14.0/flexget/tests/api_tests/test_history_api.py +230 -0
- flexget-3.14.0/flexget/tests/api_tests/test_imdb_lookup_api.py +43 -0
- flexget-3.14.0/flexget/tests/api_tests/test_movie_list_api.py +456 -0
- flexget-3.14.0/flexget/tests/api_tests/test_pending_list_api.py +503 -0
- flexget-3.14.0/flexget/tests/api_tests/test_plugins_api.py +72 -0
- flexget-3.14.0/flexget/tests/api_tests/test_rejected_api.py +303 -0
- flexget-3.14.0/flexget/tests/api_tests/test_schedule_api.py +333 -0
- flexget-3.14.0/flexget/tests/api_tests/test_seen_api.py +346 -0
- flexget-3.14.0/flexget/tests/api_tests/test_series_api.py +1954 -0
- flexget-3.14.0/flexget/tests/api_tests/test_server_api.py +131 -0
- flexget-3.14.0/flexget/tests/api_tests/test_status_api.py +329 -0
- flexget-3.14.0/flexget/tests/api_tests/test_tasks_api.py +267 -0
- flexget-3.14.0/flexget/tests/api_tests/test_tmdb_lookup.py +63 -0
- flexget-3.14.0/flexget/tests/api_tests/test_trakt_lookup_api.py +309 -0
- flexget-3.14.0/flexget/tests/api_tests/test_tvdb_lookup_api.py +290 -0
- flexget-3.14.0/flexget/tests/api_tests/test_tvmaze_lookup_api.py +137 -0
- flexget-3.14.0/flexget/tests/api_tests/test_user_api.py +50 -0
- flexget-3.14.0/flexget/tests/api_tests/test_variables_api.py +40 -0
- flexget-3.14.0/flexget/tests/archives/invalid.zip +1 -0
- flexget-3.14.0/flexget/tests/archives/test_rar.rar +0 -0
- flexget-3.14.0/flexget/tests/archives/test_zip.zip +0 -0
- flexget-3.14.0/flexget/tests/config_utf8.yml +4 -0
- flexget-3.14.0/flexget/tests/conftest.py +472 -0
- flexget-3.14.0/flexget/tests/cookies.txt +5 -0
- flexget-3.14.0/flexget/tests/couchpotato_movie_list_test_response.json +3845 -0
- flexget-3.14.0/flexget/tests/couchpotato_quality_profile_test_response.json +427 -0
- flexget-3.14.0/flexget/tests/exec.py +25 -0
- flexget-3.14.0/flexget/tests/external_plugins/external_plugin.py +15 -0
- flexget-3.14.0/flexget/tests/filesystem_test_dir/Test1/dir1/dir4/dir6/dir7/dir8/file11.txt +0 -0
- flexget-3.14.0/flexget/tests/filesystem_test_dir/Test1/dir1/dir4/file4.avi +0 -0
- flexget-3.14.0/flexget/tests/filesystem_test_dir/Test1/dir1/file3.xlsx +0 -0
- flexget-3.14.0/flexget/tests/filesystem_test_dir/Test1/dir2/file5.mkv +0 -0
- flexget-3.14.0/flexget/tests/filesystem_test_dir/Test1/file1.mkv +0 -0
- flexget-3.14.0/flexget/tests/filesystem_test_dir/Test1/file2.txt +0 -0
- flexget-3.14.0/flexget/tests/filesystem_test_dir/Test2/file10.mkv +0 -0
- flexget-3.14.0/flexget/tests/filesystem_test_dir/Test3//305/241 dir//305/222 file.txt +0 -0
- flexget-3.14.0/flexget/tests/movie.mkv +1 -0
- flexget-3.14.0/flexget/tests/multi.torrent +0 -0
- flexget-3.14.0/flexget/tests/nfo_lookup_test_dir/test_1/A Bela e a Fera.mkv +0 -0
- flexget-3.14.0/flexget/tests/nfo_lookup_test_dir/test_1/A Bela e a Fera.nfo +3 -0
- flexget-3.14.0/flexget/tests/nfo_lookup_test_dir/test_10/A Bela e a Fera.mkv +0 -0
- flexget-3.14.0/flexget/tests/nfo_lookup_test_dir/test_10/A Bela e a Fera.nfo +29 -0
- flexget-3.14.0/flexget/tests/nfo_lookup_test_dir/test_11/A Bela e a Fera.mkv +0 -0
- flexget-3.14.0/flexget/tests/nfo_lookup_test_dir/test_11/A Bela e a Fera.nfo +76 -0
- flexget-3.14.0/flexget/tests/nfo_lookup_test_dir/test_12/A Bela e a Fera.mkv +0 -0
- flexget-3.14.0/flexget/tests/nfo_lookup_test_dir/test_12/A Bela e a Fera.nfo +5 -0
- flexget-3.14.0/flexget/tests/nfo_lookup_test_dir/test_13/A Bela e a Fera.mkv +0 -0
- flexget-3.14.0/flexget/tests/nfo_lookup_test_dir/test_13/A Bela e a Fera.nfo +5 -0
- flexget-3.14.0/flexget/tests/nfo_lookup_test_dir/test_2/Bela e Fera.mkv +0 -0
- flexget-3.14.0/flexget/tests/nfo_lookup_test_dir/test_2/Bela e Fera.nfo +4 -0
- flexget-3.14.0/flexget/tests/nfo_lookup_test_dir/test_3/A Bela e a Fera.mkv +0 -0
- flexget-3.14.0/flexget/tests/nfo_lookup_test_dir/test_3/A Bela e a Fera.nfo +5 -0
- flexget-3.14.0/flexget/tests/nfo_lookup_test_dir/test_4/A Bela e a Fera.mkv +0 -0
- flexget-3.14.0/flexget/tests/nfo_lookup_test_dir/test_4/A Bela e a Fera.nfo +5 -0
- flexget-3.14.0/flexget/tests/nfo_lookup_test_dir/test_5/A Bela e a Fera.mkv +0 -0
- flexget-3.14.0/flexget/tests/nfo_lookup_test_dir/test_5/A Bela e a Fera.nfo +5 -0
- flexget-3.14.0/flexget/tests/nfo_lookup_test_dir/test_6/A Bela e a Fera.mkv +0 -0
- flexget-3.14.0/flexget/tests/nfo_lookup_test_dir/test_9/A Bela e a Fera.mkv +0 -0
- flexget-3.14.0/flexget/tests/nfo_lookup_test_dir/test_9/A Bela e a Fera.nfo +3 -0
- flexget-3.14.0/flexget/tests/notifiers/conftest.py +28 -0
- flexget-3.14.0/flexget/tests/notifiers/test_notify_abort.py +34 -0
- flexget-3.14.0/flexget/tests/notifiers/test_notify_entry.py +26 -0
- flexget-3.14.0/flexget/tests/notifiers/test_notify_task.py +49 -0
- flexget-3.14.0/flexget/tests/notifiers/test_pushover.py +27 -0
- flexget-3.14.0/flexget/tests/private.torrent +0 -0
- flexget-3.14.0/flexget/tests/rss.xml +94 -0
- flexget-3.14.0/flexget/tests/rss_escape.xml +51 -0
- flexget-3.14.0/flexget/tests/series.mkv +1 -0
- flexget-3.14.0/flexget/tests/subtitle_list_test_dir/Marvels.Jessica.Jones.S01E02-FlexGet.mkv +0 -0
- flexget-3.14.0/flexget/tests/subtitle_list_test_dir/The.Big.Bang.Theory.S09E09-FlexGet.en.srt +1 -0
- flexget-3.14.0/flexget/tests/subtitle_list_test_dir/The.Big.Bang.Theory.S09E09-FlexGet.mkv +0 -0
- flexget-3.14.0/flexget/tests/subtitle_list_test_dir/The.Walking.Dead.S06E08-FlexGet.mp4 +0 -0
- flexget-3.14.0/flexget/tests/test.torrent +0 -0
- flexget-3.14.0/flexget/tests/test_abort.py +17 -0
- flexget-3.14.0/flexget/tests/test_abort_if_exists.py +31 -0
- flexget-3.14.0/flexget/tests/test_archives.py +40 -0
- flexget-3.14.0/flexget/tests/test_argparse.py +61 -0
- flexget-3.14.0/flexget/tests/test_asciify.py +22 -0
- flexget-3.14.0/flexget/tests/test_assume_quality.py +142 -0
- flexget-3.14.0/flexget/tests/test_backlog.py +35 -0
- flexget-3.14.0/flexget/tests/test_best_quality.py +43 -0
- flexget-3.14.0/flexget/tests/test_cached_input.py +58 -0
- flexget-3.14.0/flexget/tests/test_condition.py +136 -0
- flexget-3.14.0/flexget/tests/test_config.py +26 -0
- flexget-3.14.0/flexget/tests/test_config_schema.py +251 -0
- flexget-3.14.0/flexget/tests/test_configure_series_betaseries_list.py +107 -0
- flexget-3.14.0/flexget/tests/test_content_filter.py +258 -0
- flexget-3.14.0/flexget/tests/test_content_size.py +115 -0
- flexget-3.14.0/flexget/tests/test_cookies.py +19 -0
- flexget-3.14.0/flexget/tests/test_couchpotato_list.py +114 -0
- flexget-3.14.0/flexget/tests/test_crossmatch.py +19 -0
- flexget-3.14.0/flexget/tests/test_decompress.py +146 -0
- flexget-3.14.0/flexget/tests/test_delay.py +29 -0
- flexget-3.14.0/flexget/tests/test_digest.py +95 -0
- flexget-3.14.0/flexget/tests/test_discover.py +282 -0
- flexget-3.14.0/flexget/tests/test_download.py +174 -0
- flexget-3.14.0/flexget/tests/test_duplicates.py +40 -0
- flexget-3.14.0/flexget/tests/test_entry_list.py +88 -0
- flexget-3.14.0/flexget/tests/test_exec.py +79 -0
- flexget-3.14.0/flexget/tests/test_exists_movie.py +217 -0
- flexget-3.14.0/flexget/tests/test_exists_series.py +183 -0
- flexget-3.14.0/flexget/tests/test_feed_control.py +76 -0
- flexget-3.14.0/flexget/tests/test_filesystem.py +230 -0
- flexget-3.14.0/flexget/tests/test_from_task.py +33 -0
- flexget-3.14.0/flexget/tests/test_headers.py +20 -0
- flexget-3.14.0/flexget/tests/test_html5lib.py +24 -0
- flexget-3.14.0/flexget/tests/test_imdb.py +357 -0
- flexget-3.14.0/flexget/tests/test_imdb_list_interface.py +67 -0
- flexget-3.14.0/flexget/tests/test_imdb_parser.py +90 -0
- flexget-3.14.0/flexget/tests/test_include.py +102 -0
- flexget-3.14.0/flexget/tests/test_input_sites.py +36 -0
- flexget-3.14.0/flexget/tests/test_inputs.py +35 -0
- flexget-3.14.0/flexget/tests/test_jinja_filters.py +126 -0
- flexget-3.14.0/flexget/tests/test_lazy_fields.py +42 -0
- flexget-3.14.0/flexget/tests/test_limit.py +40 -0
- flexget-3.14.0/flexget/tests/test_limit_new.py +20 -0
- flexget-3.14.0/flexget/tests/test_list_interface.py +325 -0
- flexget-3.14.0/flexget/tests/test_manipulate.py +82 -0
- flexget-3.14.0/flexget/tests/test_metainfo.py +283 -0
- flexget-3.14.0/flexget/tests/test_migrate.py +25 -0
- flexget-3.14.0/flexget/tests/test_misc.py +365 -0
- flexget-3.14.0/flexget/tests/test_move.py +22 -0
- flexget-3.14.0/flexget/tests/test_movie_list.py +320 -0
- flexget-3.14.0/flexget/tests/test_movieparser.py +72 -0
- flexget-3.14.0/flexget/tests/test_myepisodes.py +25 -0
- flexget-3.14.0/flexget/tests/test_next_series_episodes.py +637 -0
- flexget-3.14.0/flexget/tests/test_next_series_seasons.py +440 -0
- flexget-3.14.0/flexget/tests/test_nfo_lookup.py +353 -0
- flexget-3.14.0/flexget/tests/test_npo_watchlist.py +119 -0
- flexget-3.14.0/flexget/tests/test_only_new.py +38 -0
- flexget-3.14.0/flexget/tests/test_parameterize.py +25 -0
- flexget-3.14.0/flexget/tests/test_parsingapi.py +35 -0
- flexget-3.14.0/flexget/tests/test_path_by_space.py +148 -0
- flexget-3.14.0/flexget/tests/test_pathscrub.py +56 -0
- flexget-3.14.0/flexget/tests/test_pending_approval.py +35 -0
- flexget-3.14.0/flexget/tests/test_pending_list.py +102 -0
- flexget-3.14.0/flexget/tests/test_plex_watchlist.py +68 -0
- flexget-3.14.0/flexget/tests/test_plugin_interfaces.py +30 -0
- flexget-3.14.0/flexget/tests/test_pluginapi.py +87 -0
- flexget-3.14.0/flexget/tests/test_proper_movies.py +54 -0
- flexget-3.14.0/flexget/tests/test_qualities.py +273 -0
- flexget-3.14.0/flexget/tests/test_radarr_list.py +167 -0
- flexget-3.14.0/flexget/tests/test_regex_extract.py +69 -0
- flexget-3.14.0/flexget/tests/test_regexp.py +197 -0
- flexget-3.14.0/flexget/tests/test_regexp_list.py +46 -0
- flexget-3.14.0/flexget/tests/test_remember_rejected.py +35 -0
- flexget-3.14.0/flexget/tests/test_reorder_quality.py +47 -0
- flexget-3.14.0/flexget/tests/test_rottentomatoes.py +45 -0
- flexget-3.14.0/flexget/tests/test_rss.py +256 -0
- flexget-3.14.0/flexget/tests/test_rtorrent.py +486 -0
- flexget-3.14.0/flexget/tests/test_seen.py +200 -0
- flexget-3.14.0/flexget/tests/test_serialization.py +59 -0
- flexget-3.14.0/flexget/tests/test_series.py +2385 -0
- flexget-3.14.0/flexget/tests/test_series_premiere.py +137 -0
- flexget-3.14.0/flexget/tests/test_seriesparser.py +762 -0
- flexget-3.14.0/flexget/tests/test_sftp_download.py +150 -0
- flexget-3.14.0/flexget/tests/test_sftp_list.py +311 -0
- flexget-3.14.0/flexget/tests/test_sftp_server.key +27 -0
- flexget-3.14.0/flexget/tests/test_sftp_server.py +466 -0
- flexget-3.14.0/flexget/tests/test_sftp_upload.py +156 -0
- flexget-3.14.0/flexget/tests/test_sftp_user_key +39 -0
- flexget-3.14.0/flexget/tests/test_simple_persistence.py +28 -0
- flexget-3.14.0/flexget/tests/test_sns.py +66 -0
- flexget-3.14.0/flexget/tests/test_sonarr_list.py +159 -0
- flexget-3.14.0/flexget/tests/test_sort_by.py +167 -0
- flexget-3.14.0/flexget/tests/test_subtitle_list.py +440 -0
- flexget-3.14.0/flexget/tests/test_symlink.py +149 -0
- flexget-3.14.0/flexget/tests/test_task.py +27 -0
- flexget-3.14.0/flexget/tests/test_template.py +125 -0
- flexget-3.14.0/flexget/tests/test_thetvdb.py +471 -0
- flexget-3.14.0/flexget/tests/test_thetvdb_list.py +33 -0
- flexget-3.14.0/flexget/tests/test_timeframe.py +125 -0
- flexget-3.14.0/flexget/tests/test_tmdb.py +56 -0
- flexget-3.14.0/flexget/tests/test_torrent.py +347 -0
- flexget-3.14.0/flexget/tests/test_torrent_match.py +158 -0
- flexget-3.14.0/flexget/tests/test_trakt.py +628 -0
- flexget-3.14.0/flexget/tests/test_trakt_list_interface.py +233 -0
- flexget-3.14.0/flexget/tests/test_tvmaze.py +528 -0
- flexget-3.14.0/flexget/tests/test_unique.py +57 -0
- flexget-3.14.0/flexget/tests/test_upgrade.py +230 -0
- flexget-3.14.0/flexget/tests/test_urlfix.py +25 -0
- flexget-3.14.0/flexget/tests/test_urlrewriting.py +119 -0
- flexget-3.14.0/flexget/tests/test_utils.py +133 -0
- flexget-3.14.0/flexget/tests/test_variables.py +89 -0
- flexget-3.14.0/flexget/tests/test_wordpress.py +59 -0
- flexget-3.14.0/flexget/tests/test_yaml_list.py +179 -0
- flexget-3.14.0/flexget/tests/torrent_match_test_dir/multi_file_with_diff/video.mkv +1 -0
- flexget-3.14.0/flexget/tests/torrent_match_test_dir/multi_file_with_diff/video_1mb.mkv +0 -0
- flexget-3.14.0/flexget/tests/torrent_match_test_dir/torrent1/torrent1.mkv +1 -0
- flexget-3.14.0/flexget/tests/torrent_match_test_dir/torrent1.mkv +1 -0
- flexget-3.14.0/flexget/tests/torrent_match_test_dir/torrent1_wrong_size/torrent1.mkv +1 -0
- flexget-3.14.0/flexget/tests/torrent_match_test_dir/torrent2/sample/sample.mkv +1 -0
- flexget-3.14.0/flexget/tests/torrent_match_test_dir/torrent2/torrent2.mkv +1 -0
- flexget-3.14.0/flexget/tests/torrent_match_test_torrents/multi_file_with_diff.torrent +0 -0
- flexget-3.14.0/flexget/tests/torrent_match_test_torrents/torrent1.mkv.torrent +1 -0
- flexget-3.14.0/flexget/tests/torrent_match_test_torrents/torrent1_empty_name.torrent +1 -0
- flexget-3.14.0/flexget/tests/torrent_match_test_torrents/torrent2.torrent +1 -0
- flexget-3.14.0/flexget/tests/tvmaze_test_dir/shows/Marvel's Jessica Jones/Marvels.Jessica.Jones.S01E02.PROPER.720p.WEBRiP.x264-FlexGet.mkv +0 -0
- flexget-3.14.0/flexget/tests/tvmaze_test_dir/shows/Marvel's Jessica Jones/Marvels.Jessica.Jones.S01E03.720p.WEBRiP.x264-FlexGet.mkv +0 -0
- flexget-3.14.0/flexget/tests/tvmaze_test_dir/shows/The Flash (2014)/The.Flash.S02E04.1080p.WEB-DL.DD5.1.H.264-FlexGet.mkv +0 -0
- flexget-3.14.0/flexget/tests/tvmaze_test_dir/shows/The big bang theory/The.Big.Bang.Theory.S09E09.720p.HDTV.X264-FlexGet.mkv +0 -0
- flexget-3.14.0/flexget/tests/tvmaze_test_dir/shows/The walking dead/The.Walking.Dead.S06E08.Start.to.Finish-FlexGet.mp4 +0 -0
- flexget-3.14.0/flexget/tests/variables.yml +2 -0
- flexget-3.14.0/flexget/tray_icon.py +114 -0
- flexget-3.14.0/flexget/ui/__init__.py +0 -0
- flexget-3.14.0/flexget/ui/v1/.eslintignore +1 -0
- flexget-3.14.0/flexget/ui/v1/.eslintrc +74 -0
- flexget-3.14.0/flexget/ui/v1/README.rst +6 -0
- flexget-3.14.0/flexget/ui/v1/__init__.py +95 -0
- flexget-3.14.0/flexget/ui/v1/bower.json +65 -0
- flexget-3.14.0/flexget/ui/v1/gulp/build.js +93 -0
- flexget-3.14.0/flexget/ui/v1/gulp/inject.js +40 -0
- flexget-3.14.0/flexget/ui/v1/gulp/lint.js +27 -0
- flexget-3.14.0/flexget/ui/v1/gulp/proxy.js +32 -0
- flexget-3.14.0/flexget/ui/v1/gulp/scripts.js +13 -0
- flexget-3.14.0/flexget/ui/v1/gulp/server.js +43 -0
- flexget-3.14.0/flexget/ui/v1/gulp/styles.js +51 -0
- flexget-3.14.0/flexget/ui/v1/gulp/test.js +67 -0
- flexget-3.14.0/flexget/ui/v1/gulp/watch.js +39 -0
- flexget-3.14.0/flexget/ui/v1/gulpfile.js +19 -0
- flexget-3.14.0/flexget/ui/v1/karma.conf.js +85 -0
- flexget-3.14.0/flexget/ui/v1/load.failure.html +14 -0
- flexget-3.14.0/flexget/ui/v1/package.json +68 -0
- flexget-3.14.0/flexget/ui/v1/specs.html +291 -0
- flexget-3.14.0/flexget/ui/v1/src/app.html +117 -0
- flexget-3.14.0/flexget/ui/v1/src/app.loading.js +12 -0
- flexget-3.14.0/flexget/ui/v1/src/app.module.js +36 -0
- flexget-3.14.0/flexget/ui/v1/src/app.scss +42 -0
- flexget-3.14.0/flexget/ui/v1/src/app.utils.js +13 -0
- flexget-3.14.0/flexget/ui/v1/src/assets/icons/ic_movie_black_24px.svg +4 -0
- flexget-3.14.0/flexget/ui/v1/src/assets/images/header.png +0 -0
- flexget-3.14.0/flexget/ui/v1/src/blocks/error/_error-dialog.scss +9 -0
- flexget-3.14.0/flexget/ui/v1/src/blocks/error/error-dialog.component.js +25 -0
- flexget-3.14.0/flexget/ui/v1/src/blocks/error/error-dialog.component.spec.js +57 -0
- flexget-3.14.0/flexget/ui/v1/src/blocks/error/error-dialog.tmpl.html +21 -0
- flexget-3.14.0/flexget/ui/v1/src/blocks/error/error.module.js +10 -0
- flexget-3.14.0/flexget/ui/v1/src/blocks/error/error.service.js +47 -0
- flexget-3.14.0/flexget/ui/v1/src/blocks/error/error.service.spec.js +25 -0
- flexget-3.14.0/flexget/ui/v1/src/blocks/exception/exception.module.js +9 -0
- flexget-3.14.0/flexget/ui/v1/src/blocks/exception/exception.service.js +38 -0
- flexget-3.14.0/flexget/ui/v1/src/blocks/exception/exception.service.spec.js +52 -0
- flexget-3.14.0/flexget/ui/v1/src/blocks/pagination/_pagination.scss +37 -0
- flexget-3.14.0/flexget/ui/v1/src/blocks/pagination/pagination.component.js +54 -0
- flexget-3.14.0/flexget/ui/v1/src/blocks/pagination/pagination.filter.js +20 -0
- flexget-3.14.0/flexget/ui/v1/src/blocks/pagination/pagination.module.js +9 -0
- flexget-3.14.0/flexget/ui/v1/src/blocks/pagination/pagination.tmpl.html +14 -0
- flexget-3.14.0/flexget/ui/v1/src/blocks/router/router-helper.module.js +9 -0
- flexget-3.14.0/flexget/ui/v1/src/blocks/router/router-helper.provider.js +91 -0
- flexget-3.14.0/flexget/ui/v1/src/blocks/router/router-helper.provider.spec.js +15 -0
- flexget-3.14.0/flexget/ui/v1/src/blocks/url-interceptor/url-interceptor.config.js +12 -0
- flexget-3.14.0/flexget/ui/v1/src/blocks/url-interceptor/url-interceptor.module.js +7 -0
- flexget-3.14.0/flexget/ui/v1/src/blocks/url-interceptor/url-interceptor.service.js +28 -0
- flexget-3.14.0/flexget/ui/v1/src/blocks/url-interceptor/url-interceptor.service.spec.js +47 -0
- flexget-3.14.0/flexget/ui/v1/src/components/404/404.component.js +22 -0
- flexget-3.14.0/flexget/ui/v1/src/components/404/404.component.spec.js +33 -0
- flexget-3.14.0/flexget/ui/v1/src/components/404/404.module.js +9 -0
- flexget-3.14.0/flexget/ui/v1/src/components/404/404.route.js +25 -0
- flexget-3.14.0/flexget/ui/v1/src/components/404/404.route.spec.js +38 -0
- flexget-3.14.0/flexget/ui/v1/src/components/404/404.tmpl.html +12 -0
- flexget-3.14.0/flexget/ui/v1/src/components/auth/_login.scss +8 -0
- flexget-3.14.0/flexget/ui/v1/src/components/auth/auth.config.js +54 -0
- flexget-3.14.0/flexget/ui/v1/src/components/auth/auth.config.spec.js +60 -0
- flexget-3.14.0/flexget/ui/v1/src/components/auth/auth.module.js +11 -0
- flexget-3.14.0/flexget/ui/v1/src/components/auth/auth.service.js +98 -0
- flexget-3.14.0/flexget/ui/v1/src/components/auth/auth.service.spec.js +115 -0
- flexget-3.14.0/flexget/ui/v1/src/components/auth/login.component.js +32 -0
- flexget-3.14.0/flexget/ui/v1/src/components/auth/login.component.spec.js +67 -0
- flexget-3.14.0/flexget/ui/v1/src/components/auth/login.route.js +41 -0
- flexget-3.14.0/flexget/ui/v1/src/components/auth/login.route.spec.js +31 -0
- flexget-3.14.0/flexget/ui/v1/src/components/auth/login.tmpl.html +24 -0
- flexget-3.14.0/flexget/ui/v1/src/components/components.module.js +16 -0
- flexget-3.14.0/flexget/ui/v1/src/components/core/core.config.js +26 -0
- flexget-3.14.0/flexget/ui/v1/src/components/core/core.module.js +12 -0
- flexget-3.14.0/flexget/ui/v1/src/components/core/core.provider.js +29 -0
- flexget-3.14.0/flexget/ui/v1/src/components/core/core.route.js +24 -0
- flexget-3.14.0/flexget/ui/v1/src/components/core/core.route.spec.js +15 -0
- flexget-3.14.0/flexget/ui/v1/src/components/database/_database.scss +5 -0
- flexget-3.14.0/flexget/ui/v1/src/components/database/database.component.js +79 -0
- flexget-3.14.0/flexget/ui/v1/src/components/database/database.config.js +22 -0
- flexget-3.14.0/flexget/ui/v1/src/components/database/database.module.js +10 -0
- flexget-3.14.0/flexget/ui/v1/src/components/database/database.service.js +62 -0
- flexget-3.14.0/flexget/ui/v1/src/components/database/database.tmpl.html +48 -0
- flexget-3.14.0/flexget/ui/v1/src/components/home/home.component.js +15 -0
- flexget-3.14.0/flexget/ui/v1/src/components/home/home.component.spec.js +19 -0
- flexget-3.14.0/flexget/ui/v1/src/components/home/home.module.js +9 -0
- flexget-3.14.0/flexget/ui/v1/src/components/home/home.route.js +29 -0
- flexget-3.14.0/flexget/ui/v1/src/components/home/home.route.spec.js +31 -0
- flexget-3.14.0/flexget/ui/v1/src/components/home/home.tmpl.html +50 -0
- flexget-3.14.0/flexget/ui/v1/src/components/sidenav/_sidenav.scss +71 -0
- flexget-3.14.0/flexget/ui/v1/src/components/sidenav/sidenav.component.js +49 -0
- flexget-3.14.0/flexget/ui/v1/src/components/sidenav/sidenav.component.spec.js +50 -0
- flexget-3.14.0/flexget/ui/v1/src/components/sidenav/sidenav.module.js +12 -0
- flexget-3.14.0/flexget/ui/v1/src/components/sidenav/sidenav.semver.js +89 -0
- flexget-3.14.0/flexget/ui/v1/src/components/sidenav/sidenav.service.js +45 -0
- flexget-3.14.0/flexget/ui/v1/src/components/sidenav/sidenav.service.spec.js +29 -0
- flexget-3.14.0/flexget/ui/v1/src/components/sidenav/sidenav.tmpl.html +25 -0
- flexget-3.14.0/flexget/ui/v1/src/components/toolbar/toolbar.component.js +24 -0
- flexget-3.14.0/flexget/ui/v1/src/components/toolbar/toolbar.component.spec.js +44 -0
- flexget-3.14.0/flexget/ui/v1/src/components/toolbar/toolbar.config.js +21 -0
- flexget-3.14.0/flexget/ui/v1/src/components/toolbar/toolbar.module.js +10 -0
- flexget-3.14.0/flexget/ui/v1/src/components/toolbar/toolbar.provider.js +83 -0
- flexget-3.14.0/flexget/ui/v1/src/components/toolbar/toolbar.tmpl.html +29 -0
- flexget-3.14.0/flexget/ui/v1/src/components/user/user.module.js +17 -0
- flexget-3.14.0/flexget/ui/v1/src/construction.tmpl.html +24 -0
- flexget-3.14.0/flexget/ui/v1/src/directives/directives.module.js +8 -0
- flexget-3.14.0/flexget/ui/v1/src/directives/palette-background/palette-background.directive.js +31 -0
- flexget-3.14.0/flexget/ui/v1/src/favicon.ico +0 -0
- flexget-3.14.0/flexget/ui/v1/src/layout.tmpl.html +12 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/config/config.component.js +168 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/config/config.component.spec.js +46 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/config/config.module.js +19 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/config/config.route.js +45 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/config/config.route.spec.js +37 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/config/config.service.js +51 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/config/config.tmpl.html +59 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/execute/components/execute-input/execute-input.component.js +75 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/execute/components/execute-input/execute-input.component.spec.js +115 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/execute/components/execute-input/execute-input.tmpl.html +44 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/execute/components/execute-stream/execute-stream.component.js +110 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/execute/components/execute-stream/execute-stream.component.spec.js +76 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/execute/components/execute-stream/execute-stream.tmpl.html +48 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/execute/execute.component.js +71 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/execute/execute.component.spec.js +108 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/execute/execute.filter.js +29 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/execute/execute.filter.spec.js +45 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/execute/execute.module.js +14 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/execute/execute.route.js +29 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/execute/execute.route.spec.js +37 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/execute/execute.service.js +85 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/execute/execute.service.spec.js +57 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/execute/execute.tmpl.html +6 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/execute/execute.tmpl.scss +21 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/history/history.component.js +66 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/history/history.component.spec.js +37 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/history/history.module.js +15 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/history/history.route.js +29 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/history/history.route.spec.js +37 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/history/history.service.js +26 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/history/history.service.spec.js +36 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/history/history.tmpl.html +36 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/log/log.component.js +118 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/log/log.component.spec.js +100 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/log/log.module.js +17 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/log/log.route.js +47 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/log/log.route.spec.js +37 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/log/log.service.js +43 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/log/log.tmpl.html +52 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/log/log.tmpl.scss +51 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/movies/components/add-movie/add-movie-input.directive.js +25 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/movies/components/add-movie/add-movie-item.component.js +32 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/movies/components/add-movie/add-movie-item.tmpl.html +14 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/movies/components/add-movie/add-movie.controller.js +73 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/movies/components/add-movie/add-movie.service.js +27 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/movies/components/add-movie/add-movie.tmpl.html +21 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/movies/components/movie-entry/movie-entry.component.js +48 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/movies/components/movie-entry/movie-entry.component.spec.js +41 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/movies/components/movie-entry/movie-entry.scss +66 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/movies/components/movie-entry/movie-entry.tmpl.html +42 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/movies/components/movie-list/movie-list.component.js +93 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/movies/components/movie-list/movie-list.component.spec.js +111 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/movies/components/movie-list/movie-list.tmpl.html +15 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/movies/components/new-list/new-list.component.js +32 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/movies/components/new-list/new-list.component.spec.js +78 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/movies/components/new-list/new-list.tmpl.html +28 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/movies/movies.component.js +113 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/movies/movies.component.spec.js +119 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/movies/movies.module.js +16 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/movies/movies.route.js +29 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/movies/movies.route.spec.js +37 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/movies/movies.service.js +82 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/movies/movies.service.spec.js +129 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/movies/movies.tmpl.html +47 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/movies/movies.tmpl.scss +85 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/pending/pending.component.js +52 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/pending/pending.module.js +12 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/pending/pending.route.js +29 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/pending/pending.scss +5 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/pending/pending.service.js +39 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/pending/pending.tmpl.html +19 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/plugins.module.js +12 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/schedule/schedule.component.js +55 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/schedule/schedule.component.spec.js +37 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/schedule/schedule.module.js +13 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/schedule/schedule.route.js +29 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/schedule/schedule.route.spec.js +37 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/schedule/schedule.service.js +31 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/schedule/schedule.service.spec.js +36 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/schedule/schedule.tmpl.html +14 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/seen/components/seen-entry/seen-entry.component.js +15 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/seen/components/seen-entry/seen-entry.component.spec.js +19 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/seen/components/seen-entry/seen-entry.tmpl.html +21 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/seen/components/seen-field/seen-field.component.js +18 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/seen/components/seen-field/seen-field.tmpl.html +0 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/seen/seen.component.js +55 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/seen/seen.component.spec.js +37 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/seen/seen.module.js +13 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/seen/seen.route.js +29 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/seen/seen.route.spec.js +37 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/seen/seen.service.js +32 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/seen/seen.service.spec.js +34 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/seen/seen.tmpl.html +6 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/series/components/episode-release/episode-release.component.js +59 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/series/components/episode-release/episode-release.component.spec.js +107 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/series/components/episode-release/episode-release.scss +4 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/series/components/episode-release/episode-release.tmpl.html +14 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/series/components/episode-releases/episode-releases.component.js +41 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/series/components/episode-releases/episode-releases.component.spec.js +58 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/series/components/episode-releases/episode-releases.tmpl.html +19 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/series/components/series-begin-dialog/series-begin-dialog.component.js +41 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/series/components/series-begin-dialog/series-begin-dialog.tmpl.html +27 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/series/components/series-entry/series-entry.component.js +87 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/series/components/series-entry/series-entry.component.spec.js +41 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/series/components/series-entry/series-entry.scss +29 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/series/components/series-entry/series-entry.tmpl.html +50 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/series/components/series-episode/series-episode.component.js +73 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/series/components/series-episode/series-episode.component.spec.js +118 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/series/components/series-episode/series-episode.scss +5 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/series/components/series-episode/series-episode.tmpl.html +18 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/series/components/series-episodes/series-episodes.component.js +70 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/series/components/series-episodes/series-episodes.component.spec.js +88 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/series/components/series-episodes/series-episodes.scss +89 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/series/components/series-episodes/series-episodes.tmpl.html +12 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/series/series.component.js +162 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/series/series.component.spec.js +169 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/series/series.module.js +15 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/series/series.route.js +29 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/series/series.route.spec.js +37 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/series/series.service.js +129 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/series/series.service.spec.js +255 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/series/series.tmpl.html +37 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/server/loading-dialog.component.js +44 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/server/loading-dialog.tmpl.html +22 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/server/server.config.js +32 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/server/server.module.js +11 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/server/server.service.js +96 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/status/status.component.js +69 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/status/status.module.js +13 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/status/status.route.js +29 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/status/status.service.js +26 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/status/status.tmpl.html +20 -0
- flexget-3.14.0/flexget/ui/v1/src/plugins/status/status.tmpl.scss +13 -0
- flexget-3.14.0/flexget/ui/v1/src/scss/_header.scss +56 -0
- flexget-3.14.0/flexget/ui/v1/src/scss/_loading-bar.scss +16 -0
- flexget-3.14.0/flexget/ui/v1/src/scss/_variables.scss +12 -0
- flexget-3.14.0/flexget/ui/v1/src/scss/flexget.scss +79 -0
- flexget-3.14.0/flexget/ui/v1/src/services/schema.service.js +34 -0
- flexget-3.14.0/flexget/ui/v1/tests-mock-data/config.js +12 -0
- flexget-3.14.0/flexget/ui/v1/tests-mock-data/execute.js +84 -0
- flexget-3.14.0/flexget/ui/v1/tests-mock-data/history.js +41 -0
- flexget-3.14.0/flexget/ui/v1/tests-mock-data/movie_list.js +259 -0
- flexget-3.14.0/flexget/ui/v1/tests-mock-data/registerPlugin.js +3 -0
- flexget-3.14.0/flexget/ui/v1/tests-mock-data/schedules.js +30 -0
- flexget-3.14.0/flexget/ui/v1/tests-mock-data/seen.js +147 -0
- flexget-3.14.0/flexget/ui/v1/tests-mock-data/series.js +380 -0
- flexget-3.14.0/flexget/ui/v1/tests-mock-data/states.js +37 -0
- flexget-3.14.0/flexget/ui/v2/README.rst +6 -0
- flexget-3.14.0/flexget/ui/v2/__init__.py +48 -0
- flexget-3.14.0/flexget/ui/v2/index.html +13 -0
- flexget-3.14.0/flexget/utils/__init__.py +0 -0
- flexget-3.14.0/flexget/utils/bittorrent.py +372 -0
- flexget-3.14.0/flexget/utils/cache.py +84 -0
- flexget-3.14.0/flexget/utils/cached_input.py +239 -0
- flexget-3.14.0/flexget/utils/database.py +198 -0
- flexget-3.14.0/flexget/utils/json.py +142 -0
- flexget-3.14.0/flexget/utils/lazy_dict.py +139 -0
- flexget-3.14.0/flexget/utils/log.py +98 -0
- flexget-3.14.0/flexget/utils/parsers/__init__.py +7 -0
- flexget-3.14.0/flexget/utils/parsers/generic.py +58 -0
- flexget-3.14.0/flexget/utils/parsers/movie.py +131 -0
- flexget-3.14.0/flexget/utils/parsers/parser.py +64 -0
- flexget-3.14.0/flexget/utils/parsers/series.py +670 -0
- flexget-3.14.0/flexget/utils/pathscrub.py +60 -0
- flexget-3.14.0/flexget/utils/qualities.py +504 -0
- flexget-3.14.0/flexget/utils/requests.py +321 -0
- flexget-3.14.0/flexget/utils/serialization.py +253 -0
- flexget-3.14.0/flexget/utils/simple_persistence.py +234 -0
- flexget-3.14.0/flexget/utils/soup.py +14 -0
- flexget-3.14.0/flexget/utils/sqlalchemy_utils.py +196 -0
- flexget-3.14.0/flexget/utils/template.py +453 -0
- flexget-3.14.0/flexget/utils/tools.py +552 -0
- flexget-3.14.0/flexget/webserver.py +266 -0
- flexget-3.14.0/flexget_vanilla.py +11 -0
- flexget-3.14.0/pyproject.toml +159 -0
- flexget-3.14.0/update-changelog.py +167 -0
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
*~
|
|
2
|
+
*.pyc
|
|
3
|
+
*.swo
|
|
4
|
+
*.swp
|
|
5
|
+
.settings/
|
|
6
|
+
.project
|
|
7
|
+
.pydevproject
|
|
8
|
+
.vscode/
|
|
9
|
+
/.Python
|
|
10
|
+
FlexGet.egg-info/
|
|
11
|
+
bin/
|
|
12
|
+
Scripts/
|
|
13
|
+
include/
|
|
14
|
+
lib/
|
|
15
|
+
local
|
|
16
|
+
.idea/
|
|
17
|
+
*.iml
|
|
18
|
+
flexget.log
|
|
19
|
+
flexget.log.*
|
|
20
|
+
crash_report.*.log
|
|
21
|
+
received/
|
|
22
|
+
share/
|
|
23
|
+
dist/
|
|
24
|
+
build/
|
|
25
|
+
*.sqlite
|
|
26
|
+
paver-minilib.zip
|
|
27
|
+
man/
|
|
28
|
+
distribute-*.tar.gz
|
|
29
|
+
setuptools-*.tar.gz
|
|
30
|
+
pip-*.tar.gz
|
|
31
|
+
.DS_Store
|
|
32
|
+
/lib64
|
|
33
|
+
*.noseids
|
|
34
|
+
.coverage
|
|
35
|
+
tests/cover/
|
|
36
|
+
.tmp
|
|
37
|
+
coverage/
|
|
38
|
+
cherrypy
|
|
39
|
+
pip-selfcheck.json
|
|
40
|
+
.config-lock
|
|
41
|
+
.cache/
|
|
42
|
+
/*.yml
|
|
43
|
+
cached_resources/
|
|
44
|
+
pyvenv.cfg
|
|
45
|
+
.pytest_cache
|
|
46
|
+
pip-wheel-metadata
|
|
47
|
+
flexget/ui/v1/app
|
|
48
|
+
.dmypy.json
|
|
49
|
+
.mypy_cache/
|
|
50
|
+
.tool-versions
|
|
51
|
+
.devcontainer/
|
|
52
|
+
.venv
|
flexget-3.14.0/LICENSE
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
|
|
2
|
+
The MIT License
|
|
3
|
+
|
|
4
|
+
Copyright (C) 2006, Riku 'Shrike' Lindblad
|
|
5
|
+
Copyright (C) 2007, Marko Koivusalo
|
|
6
|
+
|
|
7
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
8
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
9
|
+
in the Software without restriction, including without limitation the rights
|
|
10
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
11
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
12
|
+
furnished to do so, subject to the following conditions:
|
|
13
|
+
|
|
14
|
+
The above copyright notice and this permission notice shall be included in
|
|
15
|
+
all copies or substantial portions of the Software.
|
|
16
|
+
|
|
17
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
18
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
19
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
20
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
21
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
22
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
23
|
+
THE SOFTWARE.
|
flexget-3.14.0/PKG-INFO
ADDED
|
@@ -0,0 +1,314 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: flexget
|
|
3
|
+
Version: 3.14.0
|
|
4
|
+
Summary: FlexGet is a program aimed to automate downloading or processing content (torrents, podcasts, etc.) from different sources like RSS-feeds, html-pages, various sites and more.
|
|
5
|
+
Project-URL: Homepage, https://flexget.com
|
|
6
|
+
Project-URL: Issue Tracker, https://github.com/Flexget/Flexget/issues
|
|
7
|
+
Project-URL: Repository, https://github.com/Flexget/Flexget
|
|
8
|
+
Project-URL: Forum, https://github.com/Flexget/Flexget/discussions
|
|
9
|
+
Author-email: Marko Koivusalo <marko.koivusalo@gmail.com>, Chase Sterling <chase.sterling@gmail.com>
|
|
10
|
+
License:
|
|
11
|
+
The MIT License
|
|
12
|
+
|
|
13
|
+
Copyright (C) 2006, Riku 'Shrike' Lindblad
|
|
14
|
+
Copyright (C) 2007, Marko Koivusalo
|
|
15
|
+
|
|
16
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
17
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
18
|
+
in the Software without restriction, including without limitation the rights
|
|
19
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
20
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
21
|
+
furnished to do so, subject to the following conditions:
|
|
22
|
+
|
|
23
|
+
The above copyright notice and this permission notice shall be included in
|
|
24
|
+
all copies or substantial portions of the Software.
|
|
25
|
+
|
|
26
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
27
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
28
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
29
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
30
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
31
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
32
|
+
THE SOFTWARE.
|
|
33
|
+
License-File: LICENSE
|
|
34
|
+
Requires-Python: >=3.9
|
|
35
|
+
Requires-Dist: apscheduler~=3.11
|
|
36
|
+
Requires-Dist: beautifulsoup4~=4.12
|
|
37
|
+
Requires-Dist: cherrypy~=18.10
|
|
38
|
+
Requires-Dist: colorama~=0.4.6
|
|
39
|
+
Requires-Dist: feedparser~=6.0
|
|
40
|
+
Requires-Dist: flask-compress~=1.17
|
|
41
|
+
Requires-Dist: flask-cors~=5.0
|
|
42
|
+
Requires-Dist: flask-login~=0.6.3
|
|
43
|
+
Requires-Dist: flask-restx~=1.3
|
|
44
|
+
Requires-Dist: flask~=3.1
|
|
45
|
+
Requires-Dist: guessit~=3.8
|
|
46
|
+
Requires-Dist: html5lib~=1.1
|
|
47
|
+
Requires-Dist: importlib-metadata~=8.5; python_version < '3.10'
|
|
48
|
+
Requires-Dist: jinja2~=3.1
|
|
49
|
+
Requires-Dist: jsonschema~=4.23
|
|
50
|
+
Requires-Dist: loguru~=0.7.3
|
|
51
|
+
Requires-Dist: packaging~=24.2
|
|
52
|
+
Requires-Dist: pendulum~=3.0
|
|
53
|
+
Requires-Dist: psutil~=6.1
|
|
54
|
+
Requires-Dist: pynzb~=0.1.0
|
|
55
|
+
Requires-Dist: pyparsing~=3.2
|
|
56
|
+
Requires-Dist: pyrss2gen~=1.1
|
|
57
|
+
Requires-Dist: python-dateutil~=2.9
|
|
58
|
+
Requires-Dist: pyyaml~=6.0
|
|
59
|
+
Requires-Dist: rebulk~=3.2
|
|
60
|
+
Requires-Dist: requests~=2.32
|
|
61
|
+
Requires-Dist: rich~=13.9
|
|
62
|
+
Requires-Dist: rpyc~=6.0
|
|
63
|
+
Requires-Dist: sqlalchemy~=2.0
|
|
64
|
+
Requires-Dist: urllib3~=1.26
|
|
65
|
+
Requires-Dist: werkzeug~=3.1
|
|
66
|
+
Requires-Dist: zxcvbn~=4.4
|
|
67
|
+
Provides-Extra: all
|
|
68
|
+
Requires-Dist: anyio==4.8.0; extra == 'all'
|
|
69
|
+
Requires-Dist: certifi==2024.12.14; extra == 'all'
|
|
70
|
+
Requires-Dist: charset-normalizer==3.4.1; extra == 'all'
|
|
71
|
+
Requires-Dist: deluge-client==1.10.2; extra == 'all'
|
|
72
|
+
Requires-Dist: exceptiongroup==1.2.2; (python_full_version < '3.11') and extra == 'all'
|
|
73
|
+
Requires-Dist: h11==0.14.0; extra == 'all'
|
|
74
|
+
Requires-Dist: h2==4.1.0; extra == 'all'
|
|
75
|
+
Requires-Dist: hpack==4.1.0; extra == 'all'
|
|
76
|
+
Requires-Dist: httpcore==1.0.7; extra == 'all'
|
|
77
|
+
Requires-Dist: httpx==0.28.1; extra == 'all'
|
|
78
|
+
Requires-Dist: hyperframe==6.1.0; extra == 'all'
|
|
79
|
+
Requires-Dist: idna==3.10; extra == 'all'
|
|
80
|
+
Requires-Dist: packaging==24.2; extra == 'all'
|
|
81
|
+
Requires-Dist: python-telegram-bot==21.10; extra == 'all'
|
|
82
|
+
Requires-Dist: qbittorrent-api==2024.12.71; extra == 'all'
|
|
83
|
+
Requires-Dist: requests==2.32.3; extra == 'all'
|
|
84
|
+
Requires-Dist: sniffio==1.3.1; extra == 'all'
|
|
85
|
+
Requires-Dist: socksio==1.0.0; extra == 'all'
|
|
86
|
+
Requires-Dist: transmission-rpc==7.0.11; extra == 'all'
|
|
87
|
+
Requires-Dist: typing-extensions==4.12.2; extra == 'all'
|
|
88
|
+
Requires-Dist: urllib3==1.26.20; extra == 'all'
|
|
89
|
+
Provides-Extra: deluge
|
|
90
|
+
Requires-Dist: deluge-client==1.10.2; extra == 'deluge'
|
|
91
|
+
Provides-Extra: locked
|
|
92
|
+
Requires-Dist: aniso8601==10.0.0; extra == 'locked'
|
|
93
|
+
Requires-Dist: apscheduler==3.11.0; extra == 'locked'
|
|
94
|
+
Requires-Dist: attrs==24.3.0; extra == 'locked'
|
|
95
|
+
Requires-Dist: autocommand==2.2.2; extra == 'locked'
|
|
96
|
+
Requires-Dist: babelfish==0.6.0; (python_full_version < '3.10') and extra == 'locked'
|
|
97
|
+
Requires-Dist: babelfish==0.6.1; (python_full_version >= '3.10') and extra == 'locked'
|
|
98
|
+
Requires-Dist: backports-tarfile==1.2.0; (python_full_version < '3.12') and extra == 'locked'
|
|
99
|
+
Requires-Dist: beautifulsoup4==4.12.3; extra == 'locked'
|
|
100
|
+
Requires-Dist: blinker==1.9.0; extra == 'locked'
|
|
101
|
+
Requires-Dist: brotli==1.1.0; (platform_python_implementation != 'PyPy') and extra == 'locked'
|
|
102
|
+
Requires-Dist: brotlicffi==1.1.0.0; (platform_python_implementation == 'PyPy') and extra == 'locked'
|
|
103
|
+
Requires-Dist: certifi==2024.12.14; extra == 'locked'
|
|
104
|
+
Requires-Dist: cffi==1.17.1; (platform_python_implementation == 'PyPy') and extra == 'locked'
|
|
105
|
+
Requires-Dist: cfgv==3.4.0; extra == 'locked'
|
|
106
|
+
Requires-Dist: charset-normalizer==3.4.1; extra == 'locked'
|
|
107
|
+
Requires-Dist: cheroot==10.0.1; extra == 'locked'
|
|
108
|
+
Requires-Dist: cherrypy==18.10.0; extra == 'locked'
|
|
109
|
+
Requires-Dist: click==8.1.8; extra == 'locked'
|
|
110
|
+
Requires-Dist: codacy-coverage==1.3.11; extra == 'locked'
|
|
111
|
+
Requires-Dist: colorama==0.4.6; extra == 'locked'
|
|
112
|
+
Requires-Dist: coverage==7.6.10; extra == 'locked'
|
|
113
|
+
Requires-Dist: distlib==0.3.9; extra == 'locked'
|
|
114
|
+
Requires-Dist: exceptiongroup==1.2.2; (python_full_version < '3.11') and extra == 'locked'
|
|
115
|
+
Requires-Dist: execnet==2.1.1; extra == 'locked'
|
|
116
|
+
Requires-Dist: feedparser==6.0.11; extra == 'locked'
|
|
117
|
+
Requires-Dist: filelock==3.17.0; extra == 'locked'
|
|
118
|
+
Requires-Dist: flask-compress==1.17; extra == 'locked'
|
|
119
|
+
Requires-Dist: flask-cors==5.0.0; extra == 'locked'
|
|
120
|
+
Requires-Dist: flask-login==0.6.3; extra == 'locked'
|
|
121
|
+
Requires-Dist: flask-restx==1.3.0; extra == 'locked'
|
|
122
|
+
Requires-Dist: flask==3.1.0; extra == 'locked'
|
|
123
|
+
Requires-Dist: greenlet==3.1.1; ((python_full_version < '3.14' and platform_machine == 'AMD64') or (python_full_version < '3.14' and platform_machine == 'WIN32') or (python_full_version < '3.14' and platform_machine == 'aarch64') or (python_full_version < '3.14' and platform_machine == 'amd64') or (python_full_version < '3.14' and platform_machine == 'ppc64le') or (python_full_version < '3.14' and platform_machine == 'win32') or (python_full_version < '3.14' and platform_machine == 'x86_64')) and extra == 'locked'
|
|
124
|
+
Requires-Dist: guessit==3.8.0; extra == 'locked'
|
|
125
|
+
Requires-Dist: html5lib==1.1; extra == 'locked'
|
|
126
|
+
Requires-Dist: identify==2.6.6; extra == 'locked'
|
|
127
|
+
Requires-Dist: idna==3.10; extra == 'locked'
|
|
128
|
+
Requires-Dist: importlib-metadata==8.6.1; (python_full_version < '3.10') and extra == 'locked'
|
|
129
|
+
Requires-Dist: importlib-resources==6.5.2; extra == 'locked'
|
|
130
|
+
Requires-Dist: iniconfig==2.0.0; extra == 'locked'
|
|
131
|
+
Requires-Dist: itsdangerous==2.2.0; extra == 'locked'
|
|
132
|
+
Requires-Dist: jaraco-collections==5.1.0; extra == 'locked'
|
|
133
|
+
Requires-Dist: jaraco-context==6.0.1; extra == 'locked'
|
|
134
|
+
Requires-Dist: jaraco-functools==4.1.0; extra == 'locked'
|
|
135
|
+
Requires-Dist: jaraco-text==4.0.0; extra == 'locked'
|
|
136
|
+
Requires-Dist: jinja2==3.1.5; extra == 'locked'
|
|
137
|
+
Requires-Dist: jsonschema-specifications==2024.10.1; extra == 'locked'
|
|
138
|
+
Requires-Dist: jsonschema==4.23.0; extra == 'locked'
|
|
139
|
+
Requires-Dist: loguru==0.7.3; extra == 'locked'
|
|
140
|
+
Requires-Dist: markdown-it-py==3.0.0; extra == 'locked'
|
|
141
|
+
Requires-Dist: markupsafe==3.0.2; extra == 'locked'
|
|
142
|
+
Requires-Dist: mdurl==0.1.2; extra == 'locked'
|
|
143
|
+
Requires-Dist: more-itertools==10.6.0; extra == 'locked'
|
|
144
|
+
Requires-Dist: multidict==6.1.0; extra == 'locked'
|
|
145
|
+
Requires-Dist: nodeenv==1.9.1; extra == 'locked'
|
|
146
|
+
Requires-Dist: packaging==24.2; extra == 'locked'
|
|
147
|
+
Requires-Dist: pendulum==3.0.0; extra == 'locked'
|
|
148
|
+
Requires-Dist: platformdirs==4.3.6; extra == 'locked'
|
|
149
|
+
Requires-Dist: pluggy==1.5.0; extra == 'locked'
|
|
150
|
+
Requires-Dist: plumbum==1.9.0; extra == 'locked'
|
|
151
|
+
Requires-Dist: portend==3.2.0; extra == 'locked'
|
|
152
|
+
Requires-Dist: pre-commit==4.1.0; extra == 'locked'
|
|
153
|
+
Requires-Dist: propcache==0.2.1; extra == 'locked'
|
|
154
|
+
Requires-Dist: psutil==6.1.1; extra == 'locked'
|
|
155
|
+
Requires-Dist: pycparser==2.22; (platform_python_implementation == 'PyPy') and extra == 'locked'
|
|
156
|
+
Requires-Dist: pygments==2.19.1; extra == 'locked'
|
|
157
|
+
Requires-Dist: pynzb==0.1.0; extra == 'locked'
|
|
158
|
+
Requires-Dist: pyparsing==3.2.1; extra == 'locked'
|
|
159
|
+
Requires-Dist: pyrss2gen==1.1; extra == 'locked'
|
|
160
|
+
Requires-Dist: pytest-cov==6.0.0; extra == 'locked'
|
|
161
|
+
Requires-Dist: pytest-runner==6.0.1; extra == 'locked'
|
|
162
|
+
Requires-Dist: pytest-xdist==3.6.1; extra == 'locked'
|
|
163
|
+
Requires-Dist: pytest==8.3.4; extra == 'locked'
|
|
164
|
+
Requires-Dist: python-dateutil==2.9.0.post0; extra == 'locked'
|
|
165
|
+
Requires-Dist: pytz==2024.2; extra == 'locked'
|
|
166
|
+
Requires-Dist: pywin32==308; ((python_full_version < '3.10' and implementation_name == 'cpython' and sys_platform == 'win32') or (platform_python_implementation != 'PyPy' and sys_platform == 'win32')) and extra == 'locked'
|
|
167
|
+
Requires-Dist: pyyaml==6.0.2; extra == 'locked'
|
|
168
|
+
Requires-Dist: rebulk==3.2.0; extra == 'locked'
|
|
169
|
+
Requires-Dist: referencing==0.36.1; extra == 'locked'
|
|
170
|
+
Requires-Dist: requests==2.32.3; extra == 'locked'
|
|
171
|
+
Requires-Dist: rich==13.9.4; extra == 'locked'
|
|
172
|
+
Requires-Dist: rpds-py==0.22.3; extra == 'locked'
|
|
173
|
+
Requires-Dist: rpyc==6.0.1; extra == 'locked'
|
|
174
|
+
Requires-Dist: ruff==0.9.3; extra == 'locked'
|
|
175
|
+
Requires-Dist: setuptools==75.8.0; extra == 'locked'
|
|
176
|
+
Requires-Dist: sgmllib3k==1.0.0; extra == 'locked'
|
|
177
|
+
Requires-Dist: six==1.17.0; extra == 'locked'
|
|
178
|
+
Requires-Dist: soupsieve==2.6; extra == 'locked'
|
|
179
|
+
Requires-Dist: sqlalchemy==2.0.37; extra == 'locked'
|
|
180
|
+
Requires-Dist: tempora==5.8.0; extra == 'locked'
|
|
181
|
+
Requires-Dist: time-machine==2.16.0; (implementation_name != 'pypy') and extra == 'locked'
|
|
182
|
+
Requires-Dist: tomli==2.2.1; (python_full_version <= '3.11') and extra == 'locked'
|
|
183
|
+
Requires-Dist: typing-extensions==4.12.2; extra == 'locked'
|
|
184
|
+
Requires-Dist: tzdata==2025.1; extra == 'locked'
|
|
185
|
+
Requires-Dist: tzlocal==5.2; extra == 'locked'
|
|
186
|
+
Requires-Dist: urllib3==1.26.20; extra == 'locked'
|
|
187
|
+
Requires-Dist: vcrpy==7.0.0; extra == 'locked'
|
|
188
|
+
Requires-Dist: virtualenv==20.29.1; extra == 'locked'
|
|
189
|
+
Requires-Dist: webencodings==0.5.1; extra == 'locked'
|
|
190
|
+
Requires-Dist: werkzeug==3.1.3; extra == 'locked'
|
|
191
|
+
Requires-Dist: win32-setctime==1.2.0; (sys_platform == 'win32') and extra == 'locked'
|
|
192
|
+
Requires-Dist: wrapt==1.17.2; extra == 'locked'
|
|
193
|
+
Requires-Dist: yarl==1.18.3; extra == 'locked'
|
|
194
|
+
Requires-Dist: zc-lockfile==3.0.post1; extra == 'locked'
|
|
195
|
+
Requires-Dist: zipp==3.21.0; (python_full_version < '3.10') and extra == 'locked'
|
|
196
|
+
Requires-Dist: zstandard==0.23.0; extra == 'locked'
|
|
197
|
+
Requires-Dist: zxcvbn==4.4.28; extra == 'locked'
|
|
198
|
+
Provides-Extra: qbittorrent
|
|
199
|
+
Requires-Dist: certifi==2024.12.14; extra == 'qbittorrent'
|
|
200
|
+
Requires-Dist: charset-normalizer==3.4.1; extra == 'qbittorrent'
|
|
201
|
+
Requires-Dist: idna==3.10; extra == 'qbittorrent'
|
|
202
|
+
Requires-Dist: packaging==24.2; extra == 'qbittorrent'
|
|
203
|
+
Requires-Dist: qbittorrent-api==2024.12.71; extra == 'qbittorrent'
|
|
204
|
+
Requires-Dist: requests==2.32.3; extra == 'qbittorrent'
|
|
205
|
+
Requires-Dist: urllib3==1.26.20; extra == 'qbittorrent'
|
|
206
|
+
Provides-Extra: telegram
|
|
207
|
+
Requires-Dist: anyio==4.8.0; extra == 'telegram'
|
|
208
|
+
Requires-Dist: certifi==2024.12.14; extra == 'telegram'
|
|
209
|
+
Requires-Dist: exceptiongroup==1.2.2; (python_full_version < '3.11') and extra == 'telegram'
|
|
210
|
+
Requires-Dist: h11==0.14.0; extra == 'telegram'
|
|
211
|
+
Requires-Dist: h2==4.1.0; extra == 'telegram'
|
|
212
|
+
Requires-Dist: hpack==4.1.0; extra == 'telegram'
|
|
213
|
+
Requires-Dist: httpcore==1.0.7; extra == 'telegram'
|
|
214
|
+
Requires-Dist: httpx==0.28.1; extra == 'telegram'
|
|
215
|
+
Requires-Dist: hyperframe==6.1.0; extra == 'telegram'
|
|
216
|
+
Requires-Dist: idna==3.10; extra == 'telegram'
|
|
217
|
+
Requires-Dist: python-telegram-bot==21.10; extra == 'telegram'
|
|
218
|
+
Requires-Dist: sniffio==1.3.1; extra == 'telegram'
|
|
219
|
+
Requires-Dist: socksio==1.0.0; extra == 'telegram'
|
|
220
|
+
Requires-Dist: typing-extensions==4.12.2; (python_full_version < '3.13') and extra == 'telegram'
|
|
221
|
+
Provides-Extra: transmission
|
|
222
|
+
Requires-Dist: certifi==2024.12.14; extra == 'transmission'
|
|
223
|
+
Requires-Dist: charset-normalizer==3.4.1; extra == 'transmission'
|
|
224
|
+
Requires-Dist: idna==3.10; extra == 'transmission'
|
|
225
|
+
Requires-Dist: requests==2.32.3; extra == 'transmission'
|
|
226
|
+
Requires-Dist: transmission-rpc==7.0.11; extra == 'transmission'
|
|
227
|
+
Requires-Dist: typing-extensions==4.12.2; extra == 'transmission'
|
|
228
|
+
Requires-Dist: urllib3==1.26.20; extra == 'transmission'
|
|
229
|
+
Description-Content-Type: text/x-rst
|
|
230
|
+
|
|
231
|
+
FlexGet
|
|
232
|
+
=======
|
|
233
|
+
.. image:: https://github.com/Flexget/Flexget/actions/workflows/test.yml/badge.svg?branch=develop
|
|
234
|
+
:target: https://github.com/Flexget/Flexget/actions/workflows/test.yml?query=branch%3Adevelop
|
|
235
|
+
|
|
236
|
+
.. image:: https://img.shields.io/pypi/v/Flexget.svg
|
|
237
|
+
:target: https://pypi.python.org/pypi/Flexget
|
|
238
|
+
|
|
239
|
+
..
|
|
240
|
+
Commenting these out for now, as they seem to be broken.
|
|
241
|
+
.. image:: https://api.codacy.com/project/badge/Grade/86bb847efe984c12948bdeccabcbccad
|
|
242
|
+
:target: https://www.codacy.com/app/Flexget/Flexget?utm_source=github.com&utm_medium=referral&utm_content=Flexget/Flexget&utm_campaign=Badge_Grade
|
|
243
|
+
|
|
244
|
+
.. image:: https://api.codacy.com/project/badge/Coverage/86bb847efe984c12948bdeccabcbccad
|
|
245
|
+
:target: https://www.codacy.com/app/Flexget/Flexget?utm_source=github.com&utm_medium=referral&utm_content=Flexget/Flexget&utm_campaign=Badge_Coverage
|
|
246
|
+
|
|
247
|
+
|
|
248
|
+
.. image:: https://img.shields.io/discord/536690097056120833?label=discord
|
|
249
|
+
:target: https://discord.gg/W6CQrJx
|
|
250
|
+
|
|
251
|
+
.. image:: http://isitmaintained.com/badge/resolution/Flexget/Flexget.svg
|
|
252
|
+
:target: http://isitmaintained.com/project/Flexget/Flexget
|
|
253
|
+
|
|
254
|
+
`FlexGet`_ is a multipurpose automation tool for content like torrents, nzbs,
|
|
255
|
+
podcasts, comics, series, movies, etc. It can use different kinds of sources
|
|
256
|
+
like RSS-feeds, html pages, csv files, search engines and there are even
|
|
257
|
+
plugins for sites that do not provide any kind of useful feeds.
|
|
258
|
+
|
|
259
|
+
Example
|
|
260
|
+
=======
|
|
261
|
+
Flexget uses a `YAML`_ based configuration file.
|
|
262
|
+
The following example will look in the RSS feed in the link, will match any item that match the series names and download it::
|
|
263
|
+
|
|
264
|
+
tasks:
|
|
265
|
+
tv:
|
|
266
|
+
rss: http://example.com/torrents.xml
|
|
267
|
+
series:
|
|
268
|
+
- some series
|
|
269
|
+
- another series
|
|
270
|
+
download: /tvshows
|
|
271
|
+
|
|
272
|
+
There are numerous plugins that allow utilizing FlexGet in interesting ways
|
|
273
|
+
and more are being added continuously.
|
|
274
|
+
|
|
275
|
+
FlexGet is extremely useful in conjunction with applications which have watch
|
|
276
|
+
directory support or provide interface for external utilities like FlexGet.
|
|
277
|
+
To get a sense of the many things that can be done with FlexGet you can take a look in our `cookbook`_.
|
|
278
|
+
|
|
279
|
+
.. _FlexGet: https://flexget.com
|
|
280
|
+
|
|
281
|
+
.. _YAML: http://www.yaml.org/
|
|
282
|
+
|
|
283
|
+
.. _cookbook: https://flexget.com/Cookbook
|
|
284
|
+
|
|
285
|
+
|
|
286
|
+
**ChangeLog:** https://flexget.com/ChangeLog
|
|
287
|
+
|
|
288
|
+
**Help:** https://github.com/Flexget/Flexget/discussions
|
|
289
|
+
|
|
290
|
+
**Chat:** https://flexget.com/Chat
|
|
291
|
+
|
|
292
|
+
**Bugs:** https://github.com/Flexget/Flexget/issues
|
|
293
|
+
|
|
294
|
+
Install
|
|
295
|
+
-------
|
|
296
|
+
|
|
297
|
+
FlexGet is installable via pip with the command::
|
|
298
|
+
|
|
299
|
+
pip install flexget
|
|
300
|
+
|
|
301
|
+
For more detailed instructions see the `installation guide`_.
|
|
302
|
+
|
|
303
|
+
.. _installation guide: https://flexget.com/Install
|
|
304
|
+
|
|
305
|
+
How to use GIT checkout
|
|
306
|
+
-----------------------
|
|
307
|
+
|
|
308
|
+
Refer to `development guide`_.
|
|
309
|
+
|
|
310
|
+
.. _development guide: https://flexget.readthedocs.io/en/latest/develop/index.html#how-do-i-get-started
|
|
311
|
+
|
|
312
|
+
If you don't want to use virtualenv there's ``flexget_vanilla.py`` file which
|
|
313
|
+
can be used to run FlexGet without virtualenv, note that you will need to
|
|
314
|
+
install all required dependencies yourself.
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
FlexGet
|
|
2
|
+
=======
|
|
3
|
+
.. image:: https://github.com/Flexget/Flexget/actions/workflows/test.yml/badge.svg?branch=develop
|
|
4
|
+
:target: https://github.com/Flexget/Flexget/actions/workflows/test.yml?query=branch%3Adevelop
|
|
5
|
+
|
|
6
|
+
.. image:: https://img.shields.io/pypi/v/Flexget.svg
|
|
7
|
+
:target: https://pypi.python.org/pypi/Flexget
|
|
8
|
+
|
|
9
|
+
..
|
|
10
|
+
Commenting these out for now, as they seem to be broken.
|
|
11
|
+
.. image:: https://api.codacy.com/project/badge/Grade/86bb847efe984c12948bdeccabcbccad
|
|
12
|
+
:target: https://www.codacy.com/app/Flexget/Flexget?utm_source=github.com&utm_medium=referral&utm_content=Flexget/Flexget&utm_campaign=Badge_Grade
|
|
13
|
+
|
|
14
|
+
.. image:: https://api.codacy.com/project/badge/Coverage/86bb847efe984c12948bdeccabcbccad
|
|
15
|
+
:target: https://www.codacy.com/app/Flexget/Flexget?utm_source=github.com&utm_medium=referral&utm_content=Flexget/Flexget&utm_campaign=Badge_Coverage
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
.. image:: https://img.shields.io/discord/536690097056120833?label=discord
|
|
19
|
+
:target: https://discord.gg/W6CQrJx
|
|
20
|
+
|
|
21
|
+
.. image:: http://isitmaintained.com/badge/resolution/Flexget/Flexget.svg
|
|
22
|
+
:target: http://isitmaintained.com/project/Flexget/Flexget
|
|
23
|
+
|
|
24
|
+
`FlexGet`_ is a multipurpose automation tool for content like torrents, nzbs,
|
|
25
|
+
podcasts, comics, series, movies, etc. It can use different kinds of sources
|
|
26
|
+
like RSS-feeds, html pages, csv files, search engines and there are even
|
|
27
|
+
plugins for sites that do not provide any kind of useful feeds.
|
|
28
|
+
|
|
29
|
+
Example
|
|
30
|
+
=======
|
|
31
|
+
Flexget uses a `YAML`_ based configuration file.
|
|
32
|
+
The following example will look in the RSS feed in the link, will match any item that match the series names and download it::
|
|
33
|
+
|
|
34
|
+
tasks:
|
|
35
|
+
tv:
|
|
36
|
+
rss: http://example.com/torrents.xml
|
|
37
|
+
series:
|
|
38
|
+
- some series
|
|
39
|
+
- another series
|
|
40
|
+
download: /tvshows
|
|
41
|
+
|
|
42
|
+
There are numerous plugins that allow utilizing FlexGet in interesting ways
|
|
43
|
+
and more are being added continuously.
|
|
44
|
+
|
|
45
|
+
FlexGet is extremely useful in conjunction with applications which have watch
|
|
46
|
+
directory support or provide interface for external utilities like FlexGet.
|
|
47
|
+
To get a sense of the many things that can be done with FlexGet you can take a look in our `cookbook`_.
|
|
48
|
+
|
|
49
|
+
.. _FlexGet: https://flexget.com
|
|
50
|
+
|
|
51
|
+
.. _YAML: http://www.yaml.org/
|
|
52
|
+
|
|
53
|
+
.. _cookbook: https://flexget.com/Cookbook
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
**ChangeLog:** https://flexget.com/ChangeLog
|
|
57
|
+
|
|
58
|
+
**Help:** https://github.com/Flexget/Flexget/discussions
|
|
59
|
+
|
|
60
|
+
**Chat:** https://flexget.com/Chat
|
|
61
|
+
|
|
62
|
+
**Bugs:** https://github.com/Flexget/Flexget/issues
|
|
63
|
+
|
|
64
|
+
Install
|
|
65
|
+
-------
|
|
66
|
+
|
|
67
|
+
FlexGet is installable via pip with the command::
|
|
68
|
+
|
|
69
|
+
pip install flexget
|
|
70
|
+
|
|
71
|
+
For more detailed instructions see the `installation guide`_.
|
|
72
|
+
|
|
73
|
+
.. _installation guide: https://flexget.com/Install
|
|
74
|
+
|
|
75
|
+
How to use GIT checkout
|
|
76
|
+
-----------------------
|
|
77
|
+
|
|
78
|
+
Refer to `development guide`_.
|
|
79
|
+
|
|
80
|
+
.. _development guide: https://flexget.readthedocs.io/en/latest/develop/index.html#how-do-i-get-started
|
|
81
|
+
|
|
82
|
+
If you don't want to use virtualenv there's ``flexget_vanilla.py`` file which
|
|
83
|
+
can be used to run FlexGet without virtualenv, note that you will need to
|
|
84
|
+
install all required dependencies yourself.
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import os
|
|
2
|
+
import subprocess
|
|
3
|
+
import sys
|
|
4
|
+
from collections.abc import MutableMapping
|
|
5
|
+
from pathlib import Path
|
|
6
|
+
from typing import Any, Optional
|
|
7
|
+
|
|
8
|
+
from hatchling.metadata.plugin.interface import MetadataHookInterface
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
def update_metadata_with_locked(
|
|
12
|
+
metadata: MutableMapping[str, Any], root: Path, groups: Optional[list[str]] = None
|
|
13
|
+
) -> None: # pragma: no cover
|
|
14
|
+
"""Inplace update the metadata(pyproject.toml) with the locked dependencies.
|
|
15
|
+
|
|
16
|
+
Args:
|
|
17
|
+
metadata (dict[str, Any]): The metadata dictionary
|
|
18
|
+
root (Path): The path to the project root
|
|
19
|
+
groups (list[str], optional): The groups to lock.
|
|
20
|
+
|
|
21
|
+
"""
|
|
22
|
+
groups = groups or []
|
|
23
|
+
print(f"Adding extras with locked dependencies: {', '.join(groups)}")
|
|
24
|
+
for group in [*groups, "locked"]:
|
|
25
|
+
args = [] if group == "locked" else [f"--only-group={group}"]
|
|
26
|
+
try:
|
|
27
|
+
export = subprocess.check_output(
|
|
28
|
+
[
|
|
29
|
+
"uv",
|
|
30
|
+
"--color=never",
|
|
31
|
+
"export",
|
|
32
|
+
"--frozen",
|
|
33
|
+
"--no-hashes",
|
|
34
|
+
"--no-emit-project",
|
|
35
|
+
*args,
|
|
36
|
+
],
|
|
37
|
+
cwd=root,
|
|
38
|
+
timeout=5,
|
|
39
|
+
encoding="utf-8",
|
|
40
|
+
stderr=subprocess.PIPE,
|
|
41
|
+
)
|
|
42
|
+
except (subprocess.TimeoutExpired, subprocess.CalledProcessError) as exc:
|
|
43
|
+
print(f"Failed to export locked dependencies for `{group}`: {exc.stderr}")
|
|
44
|
+
sys.exit(1)
|
|
45
|
+
requirements = [line for line in export.splitlines() if not line.startswith("#")]
|
|
46
|
+
if not requirements:
|
|
47
|
+
# TODO: We can remove this if uv starts checking the existence of groups itself.
|
|
48
|
+
# https://github.com/astral-sh/uv/issues/10882
|
|
49
|
+
print(
|
|
50
|
+
f"There does not appear to be any requirements for group `{group}`, does it exist?"
|
|
51
|
+
)
|
|
52
|
+
sys.exit(1)
|
|
53
|
+
metadata.setdefault("optional-dependencies", {})[group] = requirements
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
class BuildLockedMetadataHook(MetadataHookInterface):
|
|
57
|
+
PLUGIN_NAME = "build-locked-extras"
|
|
58
|
+
|
|
59
|
+
def update(self, metadata: dict) -> None:
|
|
60
|
+
if os.environ.get("BUILD_LOCKED_EXTRAS") not in ["1", "true"]:
|
|
61
|
+
return
|
|
62
|
+
update_metadata_with_locked(metadata, Path(self.root), self.config.get("locked-groups"))
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
# /// script
|
|
2
|
+
# requires-python = ">=3.9"
|
|
3
|
+
# dependencies = [
|
|
4
|
+
# "requests",
|
|
5
|
+
# ]
|
|
6
|
+
# ///
|
|
7
|
+
import io
|
|
8
|
+
import os
|
|
9
|
+
import shutil
|
|
10
|
+
import zipfile
|
|
11
|
+
from pathlib import Path
|
|
12
|
+
from typing import Any, Optional
|
|
13
|
+
|
|
14
|
+
# If hatchling is available (like in the build environment) this file provides
|
|
15
|
+
# a hook for bundling the webui into our wheel release.
|
|
16
|
+
try:
|
|
17
|
+
from hatchling.builders.hooks.plugin.interface import BuildHookInterface
|
|
18
|
+
except ImportError:
|
|
19
|
+
pass
|
|
20
|
+
else:
|
|
21
|
+
|
|
22
|
+
class CustomBuildHook(BuildHookInterface):
|
|
23
|
+
PLUGIN_NAME = "bundle-webui"
|
|
24
|
+
|
|
25
|
+
def dependencies(self) -> list[str]:
|
|
26
|
+
if os.environ.get("BUNDLE_WEBUI") not in ["1", "true"]:
|
|
27
|
+
return []
|
|
28
|
+
return ["requests"]
|
|
29
|
+
|
|
30
|
+
def clean(self, versions: list[str]) -> None:
|
|
31
|
+
p = Path(__file__).resolve().parent
|
|
32
|
+
v1_path = p / "flexget" / "ui" / "v1" / "app"
|
|
33
|
+
v2_path = p / "flexget" / "ui" / "v2" / "dist"
|
|
34
|
+
if v1_path.exists():
|
|
35
|
+
shutil.rmtree(v1_path)
|
|
36
|
+
if v2_path.exists():
|
|
37
|
+
shutil.rmtree(v2_path)
|
|
38
|
+
|
|
39
|
+
def initialize(self, version: str, build_data: dict[str, Any]) -> None:
|
|
40
|
+
if os.environ.get("BUNDLE_WEBUI") not in ["1", "true"]:
|
|
41
|
+
return
|
|
42
|
+
bundle_webui()
|
|
43
|
+
build_data["force_include"]["flexget/ui/v1/app"] = "/flexget/ui/v1/app"
|
|
44
|
+
build_data["force_include"]["flexget/ui/v2/dist"] = "/flexget/ui/v2/dist"
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
def bundle_webui(ui_version: Optional[str] = None):
|
|
48
|
+
"""Bundle webui for release packaging"""
|
|
49
|
+
# We delay this import so that the hatchling build hook can register itself without requests installed.
|
|
50
|
+
# once it is registered it can install the dep automatically during the build process.
|
|
51
|
+
import requests
|
|
52
|
+
|
|
53
|
+
ui_path = Path(__file__).resolve().parent / "flexget" / "ui"
|
|
54
|
+
|
|
55
|
+
def download_extract(url, dest_path):
|
|
56
|
+
print(dest_path)
|
|
57
|
+
r = requests.get(url)
|
|
58
|
+
z = zipfile.ZipFile(io.BytesIO(r.content))
|
|
59
|
+
z.extractall(dest_path)
|
|
60
|
+
|
|
61
|
+
if not ui_version or ui_version == 'v1':
|
|
62
|
+
# WebUI V1
|
|
63
|
+
print('Bundling WebUI v1...')
|
|
64
|
+
try:
|
|
65
|
+
# Remove existing
|
|
66
|
+
app_path = ui_path / "v1" / "app"
|
|
67
|
+
if app_path.exists():
|
|
68
|
+
shutil.rmtree(app_path)
|
|
69
|
+
# Just stashed the old webui zip on a random github release for easy hosting.
|
|
70
|
+
# It doesn't get updated anymore,
|
|
71
|
+
# we should probably stop bundling it with releases soon.
|
|
72
|
+
download_extract(
|
|
73
|
+
'https://github.com/Flexget/Flexget/releases/download/v3.0.6/webui_v1.zip',
|
|
74
|
+
ui_path / "v1",
|
|
75
|
+
)
|
|
76
|
+
except OSError as e:
|
|
77
|
+
raise RuntimeError(f'Unable to download and extract WebUI v1 due to {e!s}')
|
|
78
|
+
|
|
79
|
+
if not ui_version or ui_version == 'v2':
|
|
80
|
+
# WebUI V2
|
|
81
|
+
try:
|
|
82
|
+
print('Bundling WebUI v2...')
|
|
83
|
+
# Remove existing
|
|
84
|
+
app_path = ui_path / "v2" / "dist"
|
|
85
|
+
if app_path.exists():
|
|
86
|
+
shutil.rmtree(app_path)
|
|
87
|
+
|
|
88
|
+
release = requests.get(
|
|
89
|
+
'https://api.github.com/repos/Flexget/webui/releases/latest'
|
|
90
|
+
).json()
|
|
91
|
+
|
|
92
|
+
v2_package = None
|
|
93
|
+
for asset in release['assets']:
|
|
94
|
+
if asset['name'] == 'dist.zip':
|
|
95
|
+
v2_package = asset['browser_download_url']
|
|
96
|
+
break
|
|
97
|
+
|
|
98
|
+
if not v2_package:
|
|
99
|
+
raise RuntimeError('Unable to find dist.zip in assets')
|
|
100
|
+
download_extract(v2_package, ui_path / "v2")
|
|
101
|
+
except (OSError, ValueError) as e:
|
|
102
|
+
raise RuntimeError(f'Unable to download and extract WebUI v2 due to {e!s}')
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
if __name__ == '__main__':
|
|
106
|
+
bundle_webui()
|