subliminal 2.0.5__tar.gz → 2.2.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.
- subliminal-2.2.0/.dockerignore +68 -0
- subliminal-2.2.0/.pre-commit-config.yaml +33 -0
- subliminal-2.2.0/.readthedocs.yaml +19 -0
- subliminal-2.2.0/CONTRIBUTING.md +19 -0
- subliminal-2.2.0/Dockerfile +33 -0
- {subliminal-2.0.5 → subliminal-2.2.0}/HISTORY.rst +75 -0
- subliminal-2.2.0/MANIFEST.in +13 -0
- subliminal-2.2.0/PKG-INFO +518 -0
- {subliminal-2.0.5 → subliminal-2.2.0}/README.rst +2 -0
- subliminal-2.2.0/docs/Makefile +192 -0
- subliminal-2.2.0/docs/api/cache.rst +21 -0
- subliminal-2.2.0/docs/api/cli.rst +3 -0
- subliminal-2.2.0/docs/api/core.rst +7 -0
- subliminal-2.2.0/docs/api/exceptions.rst +3 -0
- subliminal-2.2.0/docs/api/extensions.rst +3 -0
- subliminal-2.2.0/docs/api/providers.rst +38 -0
- subliminal-2.2.0/docs/api/refiners.rst +25 -0
- subliminal-2.2.0/docs/api/score.rst +3 -0
- subliminal-2.2.0/docs/api/subtitle.rst +7 -0
- subliminal-2.2.0/docs/api/utils.rst +3 -0
- subliminal-2.2.0/docs/api/video.rst +7 -0
- subliminal-2.2.0/docs/cassettes/test_usage.yaml +566 -0
- subliminal-2.2.0/docs/conf.py +316 -0
- subliminal-2.2.0/docs/config.toml +26 -0
- subliminal-2.2.0/docs/conftest.py +32 -0
- subliminal-2.2.0/docs/index.rst +52 -0
- subliminal-2.2.0/docs/make.bat +263 -0
- subliminal-2.2.0/docs/user/cli.rst +18 -0
- subliminal-2.2.0/docs/user/how_it_works.rst +51 -0
- subliminal-2.2.0/docs/user/provider_guide.rst +96 -0
- subliminal-2.2.0/docs/user/usage.rst +159 -0
- subliminal-2.2.0/pyproject.toml +263 -0
- subliminal-2.2.0/setup.cfg +4 -0
- subliminal-2.2.0/subliminal/__init__.py +62 -0
- subliminal-2.2.0/subliminal/cache.py +32 -0
- subliminal-2.2.0/subliminal/cli.py +597 -0
- subliminal-2.2.0/subliminal/converters/__init__.py +7 -0
- subliminal-2.2.0/subliminal/converters/addic7ed.py +60 -0
- subliminal-2.2.0/subliminal/converters/opensubtitlescom.py +50 -0
- subliminal-2.2.0/subliminal/converters/shooter.py +37 -0
- subliminal-2.2.0/subliminal/converters/thesubdb.py +50 -0
- subliminal-2.2.0/subliminal/converters/tvsubtitles.py +43 -0
- {subliminal-2.0.5 → subliminal-2.2.0}/subliminal/core.py +278 -153
- {subliminal-2.0.5 → subliminal-2.2.0}/subliminal/exceptions.py +17 -3
- subliminal-2.2.0/subliminal/extensions.py +155 -0
- subliminal-2.2.0/subliminal/matches.py +269 -0
- subliminal-2.2.0/subliminal/providers/__init__.py +272 -0
- subliminal-2.2.0/subliminal/providers/addic7ed.py +633 -0
- subliminal-2.2.0/subliminal/providers/gestdown.py +422 -0
- subliminal-2.2.0/subliminal/providers/napiprojekt.py +176 -0
- subliminal-2.2.0/subliminal/providers/opensubtitles.py +434 -0
- subliminal-2.2.0/subliminal/providers/opensubtitlescom.py +849 -0
- subliminal-2.2.0/subliminal/providers/podnapisi.py +252 -0
- subliminal-2.2.0/subliminal/providers/tvsubtitles.py +332 -0
- {subliminal-2.0.5 → subliminal-2.2.0}/subliminal/refiners/__init__.py +1 -1
- subliminal-2.2.0/subliminal/refiners/hash.py +156 -0
- subliminal-2.2.0/subliminal/refiners/metadata.py +113 -0
- subliminal-2.2.0/subliminal/refiners/omdb.py +321 -0
- subliminal-2.2.0/subliminal/refiners/tmdb.py +339 -0
- subliminal-2.2.0/subliminal/refiners/tvdb.py +482 -0
- subliminal-2.2.0/subliminal/score.py +404 -0
- subliminal-2.2.0/subliminal/subtitle.py +478 -0
- subliminal-2.2.0/subliminal/utils.py +183 -0
- subliminal-2.2.0/subliminal/video.py +479 -0
- subliminal-2.2.0/subliminal.egg-info/PKG-INFO +518 -0
- subliminal-2.2.0/subliminal.egg-info/SOURCES.txt +268 -0
- {subliminal-2.0.5 → subliminal-2.2.0}/subliminal.egg-info/entry_points.txt +7 -5
- subliminal-2.2.0/subliminal.egg-info/requires.txt +40 -0
- subliminal-2.2.0/tests/cassettes/addic7ed/test_download_subtitle.yaml +8470 -0
- subliminal-2.2.0/tests/cassettes/addic7ed/test_get_show_id.yaml +5066 -0
- subliminal-2.2.0/tests/cassettes/addic7ed/test_get_show_id_country.yaml +5066 -0
- subliminal-2.2.0/tests/cassettes/addic7ed/test_get_show_id_quote_dots_mixed_case.yaml +5065 -0
- subliminal-2.2.0/tests/cassettes/addic7ed/test_get_show_id_with_comma.yaml +5066 -0
- subliminal-2.2.0/tests/cassettes/addic7ed/test_get_show_id_year.yaml +5066 -0
- subliminal-2.2.0/tests/cassettes/addic7ed/test_get_show_ids.yaml +5066 -0
- subliminal-2.2.0/tests/cassettes/addic7ed/test_list_subtitles.yaml +8013 -0
- subliminal-2.2.0/tests/cassettes/addic7ed/test_list_subtitles_episode_alternative_series.yaml +10986 -0
- subliminal-2.2.0/tests/cassettes/addic7ed/test_list_subtitles_show_with_asterisk.yaml +10934 -0
- subliminal-2.2.0/tests/cassettes/addic7ed/test_login.yaml +60 -0
- subliminal-2.2.0/tests/cassettes/addic7ed/test_logout.yaml +61 -0
- subliminal-2.2.0/tests/cassettes/addic7ed/test_query.yaml +8013 -0
- subliminal-2.2.0/tests/cassettes/addic7ed/test_query_no_year.yaml +5190 -0
- subliminal-2.2.0/tests/cassettes/addic7ed/test_query_parsing.yaml +7635 -0
- subliminal-2.2.0/tests/cassettes/addic7ed/test_query_parsing_colon.yaml +5912 -0
- subliminal-2.2.0/tests/cassettes/addic7ed/test_query_parsing_dash.yaml +6037 -0
- subliminal-2.2.0/tests/cassettes/addic7ed/test_query_parsing_quote_dots_mixed_case.yaml +2157 -0
- subliminal-2.2.0/tests/cassettes/addic7ed/test_query_wrong_series.yaml +82 -0
- subliminal-2.2.0/tests/cassettes/addic7ed/test_query_year.yaml +5856 -0
- subliminal-2.2.0/tests/cassettes/addic7ed/test_search_show_id.yaml +637 -0
- subliminal-2.2.0/tests/cassettes/addic7ed/test_search_show_id_error.yaml +120 -0
- subliminal-2.2.0/tests/cassettes/addic7ed/test_search_show_id_incomplete.yaml +640 -0
- subliminal-2.2.0/tests/cassettes/addic7ed/test_search_show_id_no_year.yaml +584 -0
- subliminal-2.2.0/tests/cassettes/addic7ed/test_search_show_id_quote.yaml +611 -0
- subliminal-2.2.0/tests/cassettes/addic7ed/test_search_show_id_year.yaml +311 -0
- subliminal-2.2.0/tests/cassettes/addic7ed/test_search_show_ids_quote_dots_mixed_case.yaml +634 -0
- subliminal-2.2.0/tests/cassettes/addic7ed/test_search_show_ids_with_comma.yaml +287 -0
- subliminal-2.2.0/tests/cassettes/addic7ed/test_search_show_ids_with_country.yaml +826 -0
- subliminal-2.2.0/tests/cassettes/core/test_download_bad_subtitle.yaml +790 -0
- subliminal-2.2.0/tests/cassettes/core/test_download_best_subtitles.yaml +953 -0
- subliminal-2.2.0/tests/cassettes/core/test_download_best_subtitles_min_score.yaml +116 -0
- subliminal-2.2.0/tests/cassettes/core/test_download_best_subtitles_only_one.yaml +557 -0
- subliminal-2.2.0/tests/cassettes/gestdown/test_download_subtitle.yaml +564 -0
- subliminal-2.2.0/tests/cassettes/gestdown/test_download_with_bom.yaml +578 -0
- subliminal-2.2.0/tests/cassettes/gestdown/test_get_title_and_show_id_alternative_name.yaml +105 -0
- subliminal-2.2.0/tests/cassettes/gestdown/test_get_title_and_show_id_no_year.yaml +54 -0
- subliminal-2.2.0/tests/cassettes/gestdown/test_get_title_and_show_id_only_title.yaml +56 -0
- subliminal-2.2.0/tests/cassettes/gestdown/test_get_title_and_show_id_with_tvdb_id.yaml +55 -0
- subliminal-2.2.0/tests/cassettes/gestdown/test_list_subtitles.yaml +165 -0
- subliminal-2.2.0/tests/cassettes/gestdown/test_list_subtitles_episode_alternative_series.yaml +176 -0
- subliminal-2.2.0/tests/cassettes/gestdown/test_query.yaml +110 -0
- subliminal-2.2.0/tests/cassettes/gestdown/test_query_all_series.yaml +134 -0
- subliminal-2.2.0/tests/cassettes/gestdown/test_query_no_language.yaml +57 -0
- subliminal-2.2.0/tests/cassettes/gestdown/test_query_parsing.yaml +108 -0
- subliminal-2.2.0/tests/cassettes/gestdown/test_query_parsing_colon.yaml +108 -0
- subliminal-2.2.0/tests/cassettes/gestdown/test_query_parsing_dash.yaml +108 -0
- subliminal-2.2.0/tests/cassettes/gestdown/test_query_parsing_quote_dots_mixed_case.yaml +109 -0
- subliminal-2.2.0/tests/cassettes/gestdown/test_query_wrong_series.yaml +48 -0
- subliminal-2.2.0/tests/cassettes/gestdown/test_search_show_id.yaml +55 -0
- subliminal-2.2.0/tests/cassettes/gestdown/test_search_show_id_error.yaml +52 -0
- subliminal-2.2.0/tests/cassettes/gestdown/test_search_show_id_incomplete.yaml +55 -0
- subliminal-2.2.0/tests/cassettes/gestdown/test_search_show_id_no_year.yaml +55 -0
- subliminal-2.2.0/tests/cassettes/gestdown/test_search_show_id_quote.yaml +55 -0
- subliminal-2.2.0/tests/cassettes/gestdown/test_search_show_series_tvdb_id.yaml +57 -0
- subliminal-2.2.0/tests/cassettes/gestdown/test_show_with_asterisk.yaml +162 -0
- subliminal-2.2.0/tests/cassettes/napiprojekt/test_download_subtitles.yaml +865 -0
- subliminal-2.2.0/tests/cassettes/napiprojekt/test_list_subtitles.yaml +439 -0
- subliminal-2.2.0/tests/cassettes/napiprojekt/test_query_microdvd.yaml +865 -0
- subliminal-2.2.0/tests/cassettes/napiprojekt/test_query_srt.yaml +818 -0
- subliminal-2.2.0/tests/cassettes/napiprojekt/test_query_srt_reencode.yaml +1034 -0
- subliminal-2.2.0/tests/cassettes/napiprojekt/test_query_wrong_hash.yaml +43 -0
- subliminal-2.2.0/tests/cassettes/omdb/test_get_id.yaml +61 -0
- subliminal-2.2.0/tests/cassettes/omdb/test_get_title.yaml +61 -0
- subliminal-2.2.0/tests/cassettes/omdb/test_get_wrong_id.yaml +52 -0
- subliminal-2.2.0/tests/cassettes/omdb/test_get_wrong_title.yaml +52 -0
- subliminal-2.2.0/tests/cassettes/omdb/test_refine_episode.yaml +53 -0
- subliminal-2.2.0/tests/cassettes/omdb/test_refine_episode_original_series.yaml +295 -0
- subliminal-2.2.0/tests/cassettes/omdb/test_refine_episode_with_country.yaml +56 -0
- subliminal-2.2.0/tests/cassettes/omdb/test_refine_episode_with_country_hoc_us.yaml +54 -0
- subliminal-2.2.0/tests/cassettes/omdb/test_refine_episode_year.yaml +58 -0
- subliminal-2.2.0/tests/cassettes/omdb/test_refine_movie.yaml +178 -0
- subliminal-2.2.0/tests/cassettes/omdb/test_refine_movie_guess_alternative_title.yaml +52 -0
- subliminal-2.2.0/tests/cassettes/omdb/test_search.yaml +61 -0
- subliminal-2.2.0/tests/cassettes/omdb/test_search_page.yaml +61 -0
- subliminal-2.2.0/tests/cassettes/omdb/test_search_type.yaml +61 -0
- subliminal-2.2.0/tests/cassettes/omdb/test_search_wrong_title.yaml +52 -0
- subliminal-2.2.0/tests/cassettes/omdb/test_search_year.yaml +61 -0
- subliminal-2.2.0/tests/cassettes/opensubtitles/test_download_subtitle.yaml +1370 -0
- subliminal-2.2.0/tests/cassettes/opensubtitles/test_list_subtitles_episode.yaml +473 -0
- subliminal-2.2.0/tests/cassettes/opensubtitles/test_list_subtitles_movie.yaml +689 -0
- subliminal-2.2.0/tests/cassettes/opensubtitles/test_list_subtitles_movie_no_hash.yaml +458 -0
- subliminal-2.2.0/tests/cassettes/opensubtitles/test_login_bad_password.yaml +115 -0
- subliminal-2.2.0/tests/cassettes/opensubtitles/test_login_vip_bad_password.yaml +115 -0
- subliminal-2.2.0/tests/cassettes/opensubtitles/test_login_vip_login.yaml +115 -0
- subliminal-2.2.0/tests/cassettes/opensubtitles/test_no_operation.yaml +388 -0
- subliminal-2.2.0/tests/cassettes/opensubtitles/test_query_hash_size.yaml +474 -0
- subliminal-2.2.0/tests/cassettes/opensubtitles/test_query_imdb_id.yaml +452 -0
- subliminal-2.2.0/tests/cassettes/opensubtitles/test_query_not_enough_information.yaml +293 -0
- subliminal-2.2.0/tests/cassettes/opensubtitles/test_query_query_episode.yaml +446 -0
- subliminal-2.2.0/tests/cassettes/opensubtitles/test_query_query_movie.yaml +471 -0
- subliminal-2.2.0/tests/cassettes/opensubtitles/test_query_query_season_episode.yaml +450 -0
- subliminal-2.2.0/tests/cassettes/opensubtitles/test_query_tag_movie.yaml +414 -0
- subliminal-2.2.0/tests/cassettes/opensubtitles/test_query_wrong_hash_wrong_size.yaml +422 -0
- subliminal-2.2.0/tests/cassettes/opensubtitles/test_tag_match.yaml +532 -0
- subliminal-2.2.0/tests/cassettes/opensubtitlescom/test_download_subtitle.yaml +2140 -0
- subliminal-2.2.0/tests/cassettes/opensubtitlescom/test_list_subtitles_episode.yaml +350 -0
- subliminal-2.2.0/tests/cassettes/opensubtitlescom/test_list_subtitles_movie.yaml +781 -0
- subliminal-2.2.0/tests/cassettes/opensubtitlescom/test_list_subtitles_movie_no_hash.yaml +162 -0
- subliminal-2.2.0/tests/cassettes/opensubtitlescom/test_login.yaml +103 -0
- subliminal-2.2.0/tests/cassettes/opensubtitlescom/test_login_bad_password.yaml +98 -0
- subliminal-2.2.0/tests/cassettes/opensubtitlescom/test_logout.yaml +103 -0
- subliminal-2.2.0/tests/cassettes/opensubtitlescom/test_query_hash_size.yaml +205 -0
- subliminal-2.2.0/tests/cassettes/opensubtitlescom/test_query_imdb_id.yaml +183 -0
- subliminal-2.2.0/tests/cassettes/opensubtitlescom/test_query_query_episode.yaml +382 -0
- subliminal-2.2.0/tests/cassettes/opensubtitlescom/test_query_query_movie.yaml +173 -0
- subliminal-2.2.0/tests/cassettes/opensubtitlescom/test_query_query_season_episode.yaml +334 -0
- subliminal-2.2.0/tests/cassettes/opensubtitlescom/test_query_tag_movie.yaml +164 -0
- subliminal-2.2.0/tests/cassettes/opensubtitlescom/test_query_wrong_hash_wrong_size.yaml +116 -0
- subliminal-2.2.0/tests/cassettes/opensubtitlescom/test_tag_match.yaml +529 -0
- subliminal-2.2.0/tests/cassettes/opensubtitlescom/test_user_infos.yaml +202 -0
- subliminal-2.2.0/tests/cassettes/podnapisi/test_download_subtitle.yaml +1039 -0
- subliminal-2.2.0/tests/cassettes/podnapisi/test_download_subtitles_with_title_unicode.yaml +1020 -0
- subliminal-2.2.0/tests/cassettes/podnapisi/test_list_subtitles_episode.yaml +515 -0
- subliminal-2.2.0/tests/cassettes/podnapisi/test_list_subtitles_episode_alternative_series.yaml +367 -0
- subliminal-2.2.0/tests/cassettes/podnapisi/test_list_subtitles_movie.yaml +438 -0
- subliminal-2.2.0/tests/cassettes/podnapisi/test_query_episode.yaml +174 -0
- subliminal-2.2.0/tests/cassettes/podnapisi/test_query_movie.yaml +362 -0
- subliminal-2.2.0/tests/cassettes/tmdb/test_get_movie_id.yaml +155 -0
- subliminal-2.2.0/tests/cassettes/tmdb/test_get_movie_id_failed.yaml +65 -0
- subliminal-2.2.0/tests/cassettes/tmdb/test_get_series_id.yaml +72 -0
- subliminal-2.2.0/tests/cassettes/tmdb/test_get_series_wrong_id.yaml +65 -0
- subliminal-2.2.0/tests/cassettes/tmdb/test_refine_episode.yaml +305 -0
- subliminal-2.2.0/tests/cassettes/tmdb/test_refine_episode_original_series.yaml +305 -0
- subliminal-2.2.0/tests/cassettes/tmdb/test_refine_episode_with_country.yaml +302 -0
- subliminal-2.2.0/tests/cassettes/tmdb/test_refine_episode_with_country_hoc_us.yaml +244 -0
- subliminal-2.2.0/tests/cassettes/tmdb/test_refine_episode_year.yaml +210 -0
- subliminal-2.2.0/tests/cassettes/tmdb/test_refine_movie.yaml +222 -0
- subliminal-2.2.0/tests/cassettes/tmdb/test_refine_movie_guess_alternative_title.yaml +130 -0
- subliminal-2.2.0/tests/cassettes/tmdb/test_search_movie.yaml +155 -0
- subliminal-2.2.0/tests/cassettes/tmdb/test_search_movie_page.yaml +148 -0
- subliminal-2.2.0/tests/cassettes/tmdb/test_search_movie_wrong_title.yaml +65 -0
- subliminal-2.2.0/tests/cassettes/tmdb/test_search_movie_year.yaml +71 -0
- subliminal-2.2.0/tests/cassettes/tmdb/test_search_series.yaml +72 -0
- subliminal-2.2.0/tests/cassettes/tmdb/test_search_series_wrong_name.yaml +65 -0
- subliminal-2.2.0/tests/cassettes/tvdb/test_get_series.yaml +109 -0
- subliminal-2.2.0/tests/cassettes/tvdb/test_get_series_actors.yaml +126 -0
- subliminal-2.2.0/tests/cassettes/tvdb/test_get_series_actors_wrong_id.yaml +100 -0
- subliminal-2.2.0/tests/cassettes/tvdb/test_get_series_wrong_id.yaml +100 -0
- subliminal-2.2.0/tests/cassettes/tvdb/test_login.yaml +50 -0
- subliminal-2.2.0/tests/cassettes/tvdb/test_login_error.yaml +52 -0
- subliminal-2.2.0/tests/cassettes/tvdb/test_query_series_episodes.yaml +111 -0
- subliminal-2.2.0/tests/cassettes/tvdb/test_query_series_episodes_wrong_season.yaml +100 -0
- subliminal-2.2.0/tests/cassettes/tvdb/test_refine.yaml +287 -0
- subliminal-2.2.0/tests/cassettes/tvdb/test_refine_ambiguous.yaml +476 -0
- subliminal-2.2.0/tests/cassettes/tvdb/test_refine_ambiguous_2.yaml +857 -0
- subliminal-2.2.0/tests/cassettes/tvdb/test_refine_episode_alternative_series.yaml +232 -0
- subliminal-2.2.0/tests/cassettes/tvdb/test_refine_episode_no_year.yaml +537 -0
- subliminal-2.2.0/tests/cassettes/tvdb/test_refine_episode_partial.yaml +496 -0
- subliminal-2.2.0/tests/cassettes/tvdb/test_refine_episode_with_comma.yaml +254 -0
- subliminal-2.2.0/tests/cassettes/tvdb/test_refine_episode_with_country.yaml +325 -0
- subliminal-2.2.0/tests/cassettes/tvdb/test_refine_episode_with_country_hoc_us.yaml +257 -0
- subliminal-2.2.0/tests/cassettes/tvdb/test_refine_episode_year.yaml +535 -0
- subliminal-2.2.0/tests/cassettes/tvdb/test_refresh_token.yaml +100 -0
- subliminal-2.2.0/tests/cassettes/tvdb/test_search_series.yaml +104 -0
- subliminal-2.2.0/tests/cassettes/tvdb/test_search_series_wrong_name.yaml +100 -0
- subliminal-2.2.0/tests/cassettes/tvdb/test_token_needs_refresh.yaml +50 -0
- subliminal-2.2.0/tests/cassettes/tvsubtitles/test_download_subtitle.yaml +1650 -0
- subliminal-2.2.0/tests/cassettes/tvsubtitles/test_download_subtitle_with_quote.yaml +1669 -0
- subliminal-2.2.0/tests/cassettes/tvsubtitles/test_get_episode_ids.yaml +901 -0
- subliminal-2.2.0/tests/cassettes/tvsubtitles/test_get_episode_ids_wrong_season.yaml +225 -0
- subliminal-2.2.0/tests/cassettes/tvsubtitles/test_list_subtitles.yaml +1323 -0
- subliminal-2.2.0/tests/cassettes/tvsubtitles/test_list_subtitles_episode_alternative_series.yaml +914 -0
- subliminal-2.2.0/tests/cassettes/tvsubtitles/test_query.yaml +1323 -0
- subliminal-2.2.0/tests/cassettes/tvsubtitles/test_query_no_year.yaml +743 -0
- subliminal-2.2.0/tests/cassettes/tvsubtitles/test_query_with_quote.yaml +1198 -0
- subliminal-2.2.0/tests/cassettes/tvsubtitles/test_query_wrong_episode.yaml +898 -0
- subliminal-2.2.0/tests/cassettes/tvsubtitles/test_query_wrong_series.yaml +219 -0
- subliminal-2.2.0/tests/cassettes/tvsubtitles/test_search_show_id.yaml +233 -0
- subliminal-2.2.0/tests/cassettes/tvsubtitles/test_search_show_id_ambiguous.yaml +418 -0
- subliminal-2.2.0/tests/cassettes/tvsubtitles/test_search_show_id_error.yaml +235 -0
- subliminal-2.2.0/tests/cassettes/tvsubtitles/test_search_show_id_incomplete.yaml +234 -0
- subliminal-2.2.0/tests/cassettes/tvsubtitles/test_search_show_id_no_year.yaml +222 -0
- subliminal-2.2.0/tests/cassettes/tvsubtitles/test_search_show_id_uk.yaml +234 -0
- subliminal-2.2.0/tests/cassettes/tvsubtitles/test_search_show_id_us.yaml +305 -0
- subliminal-2.2.0/tests/cassettes/tvsubtitles/test_search_show_id_year_in_title.yaml +222 -0
- subliminal-2.2.0/tests/conftest.py +492 -0
- subliminal-2.2.0/tests/providers/test_addic7ed.py +630 -0
- subliminal-2.2.0/tests/providers/test_gestdown.py +432 -0
- subliminal-2.2.0/tests/providers/test_napiprojekt.py +116 -0
- subliminal-2.2.0/tests/providers/test_opensubtitles.py +475 -0
- subliminal-2.2.0/tests/providers/test_opensubtitlescom.py +456 -0
- subliminal-2.2.0/tests/providers/test_podnapisi.py +283 -0
- subliminal-2.2.0/tests/providers/test_tvsubtitles.py +339 -0
- subliminal-2.2.0/tests/refiners/test_hash.py +19 -0
- subliminal-2.2.0/tests/refiners/test_omdb.py +197 -0
- subliminal-2.2.0/tests/refiners/test_tmdb.py +216 -0
- subliminal-2.2.0/tests/refiners/test_tvdb.py +373 -0
- subliminal-2.2.0/tests/test_cache.py +46 -0
- subliminal-2.2.0/tests/test_core.py +704 -0
- subliminal-2.2.0/tests/test_extensions.py +80 -0
- subliminal-2.2.0/tests/test_matches.py +143 -0
- subliminal-2.2.0/tests/test_provider.py +51 -0
- subliminal-2.2.0/tests/test_score.py +142 -0
- subliminal-2.2.0/tests/test_subtitle.py +163 -0
- subliminal-2.2.0/tests/test_utils.py +5 -0
- subliminal-2.2.0/tests/test_video.py +179 -0
- subliminal-2.2.0/tox.ini +7 -0
- subliminal-2.0.5/MANIFEST.in +0 -1
- subliminal-2.0.5/PKG-INFO +0 -403
- subliminal-2.0.5/requirements.txt +0 -1
- subliminal-2.0.5/setup.cfg +0 -16
- subliminal-2.0.5/setup.py +0 -101
- subliminal-2.0.5/subliminal/__init__.py +0 -21
- subliminal-2.0.5/subliminal/cache.py +0 -16
- subliminal-2.0.5/subliminal/cli.py +0 -461
- subliminal-2.0.5/subliminal/converters/addic7ed.py +0 -32
- subliminal-2.0.5/subliminal/converters/legendastv.py +0 -27
- subliminal-2.0.5/subliminal/converters/shooter.py +0 -23
- subliminal-2.0.5/subliminal/converters/thesubdb.py +0 -26
- subliminal-2.0.5/subliminal/converters/tvsubtitles.py +0 -25
- subliminal-2.0.5/subliminal/extensions.py +0 -106
- subliminal-2.0.5/subliminal/providers/__init__.py +0 -161
- subliminal-2.0.5/subliminal/providers/addic7ed.py +0 -287
- subliminal-2.0.5/subliminal/providers/legendastv.py +0 -448
- subliminal-2.0.5/subliminal/providers/napiprojekt.py +0 -103
- subliminal-2.0.5/subliminal/providers/opensubtitles.py +0 -294
- subliminal-2.0.5/subliminal/providers/podnapisi.py +0 -179
- subliminal-2.0.5/subliminal/providers/shooter.py +0 -79
- subliminal-2.0.5/subliminal/providers/subscenter.py +0 -235
- subliminal-2.0.5/subliminal/providers/thesubdb.py +0 -84
- subliminal-2.0.5/subliminal/providers/tvsubtitles.py +0 -210
- subliminal-2.0.5/subliminal/refiners/metadata.py +0 -99
- subliminal-2.0.5/subliminal/refiners/omdb.py +0 -187
- subliminal-2.0.5/subliminal/refiners/tvdb.py +0 -350
- subliminal-2.0.5/subliminal/score.py +0 -234
- subliminal-2.0.5/subliminal/subtitle.py +0 -255
- subliminal-2.0.5/subliminal/subtitles/__init__.py +0 -88
- subliminal-2.0.5/subliminal/subtitles/subrip.py +0 -82
- subliminal-2.0.5/subliminal/utils.py +0 -152
- subliminal-2.0.5/subliminal/video.py +0 -221
- subliminal-2.0.5/subliminal.egg-info/PKG-INFO +0 -403
- subliminal-2.0.5/subliminal.egg-info/SOURCES.txt +0 -45
- subliminal-2.0.5/subliminal.egg-info/requires.txt +0 -31
- {subliminal-2.0.5 → subliminal-2.2.0}/LICENSE +0 -0
- /subliminal-2.0.5/subliminal/converters/__init__.py → /subliminal-2.2.0/subliminal/py.typed +0 -0
- {subliminal-2.0.5 → subliminal-2.2.0}/subliminal.egg-info/dependency_links.txt +0 -0
- {subliminal-2.0.5 → subliminal-2.2.0}/subliminal.egg-info/top_level.txt +0 -0
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# SCM
|
|
2
|
+
.git/
|
|
3
|
+
|
|
4
|
+
# Byte-compiled / optimized / DLL files
|
|
5
|
+
__pycache__/
|
|
6
|
+
*.py[cod]
|
|
7
|
+
*$py.class
|
|
8
|
+
|
|
9
|
+
# C extensions
|
|
10
|
+
*.so
|
|
11
|
+
|
|
12
|
+
# Distribution / packaging
|
|
13
|
+
.Python
|
|
14
|
+
env/
|
|
15
|
+
build/
|
|
16
|
+
develop-eggs/
|
|
17
|
+
dist/
|
|
18
|
+
downloads/
|
|
19
|
+
eggs/
|
|
20
|
+
.eggs/
|
|
21
|
+
lib/
|
|
22
|
+
lib64/
|
|
23
|
+
parts/
|
|
24
|
+
sdist/
|
|
25
|
+
var/
|
|
26
|
+
*.egg-info/
|
|
27
|
+
.installed.cfg
|
|
28
|
+
*.egg
|
|
29
|
+
|
|
30
|
+
# PyInstaller
|
|
31
|
+
# Usually these files are written by a python script from a template
|
|
32
|
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
|
33
|
+
*.manifest
|
|
34
|
+
*.spec
|
|
35
|
+
|
|
36
|
+
# Installer logs
|
|
37
|
+
pip-log.txt
|
|
38
|
+
pip-delete-this-directory.txt
|
|
39
|
+
|
|
40
|
+
# Unit test / coverage reports
|
|
41
|
+
htmlcov/
|
|
42
|
+
.tox/
|
|
43
|
+
.coverage
|
|
44
|
+
.coverage.*
|
|
45
|
+
.cache
|
|
46
|
+
nosetests.xml
|
|
47
|
+
coverage.xml
|
|
48
|
+
*,cover
|
|
49
|
+
|
|
50
|
+
# Translations
|
|
51
|
+
*.mo
|
|
52
|
+
*.pot
|
|
53
|
+
|
|
54
|
+
# Django stuff:
|
|
55
|
+
*.log
|
|
56
|
+
|
|
57
|
+
# Sphinx documentation
|
|
58
|
+
docs/_build/
|
|
59
|
+
|
|
60
|
+
# PyBuilder
|
|
61
|
+
target/
|
|
62
|
+
|
|
63
|
+
# Pycharm
|
|
64
|
+
.idea
|
|
65
|
+
|
|
66
|
+
# Subliminal
|
|
67
|
+
docs/
|
|
68
|
+
tests/
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
repos:
|
|
2
|
+
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
3
|
+
rev: v4.5.0
|
|
4
|
+
hooks:
|
|
5
|
+
- id: check-toml
|
|
6
|
+
- id: check-yaml
|
|
7
|
+
exclude: ^tests/cassettes/
|
|
8
|
+
- id: end-of-file-fixer
|
|
9
|
+
|
|
10
|
+
- repo: https://github.com/crate-ci/typos
|
|
11
|
+
rev: v1.22.0
|
|
12
|
+
hooks:
|
|
13
|
+
- id: typos
|
|
14
|
+
|
|
15
|
+
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
16
|
+
rev: v0.4.7
|
|
17
|
+
hooks:
|
|
18
|
+
- id: ruff
|
|
19
|
+
args: [ --fix, --unsafe-fixes ]
|
|
20
|
+
- id: ruff-format
|
|
21
|
+
|
|
22
|
+
- repo: https://github.com/abravalheri/validate-pyproject
|
|
23
|
+
rev: v0.18
|
|
24
|
+
hooks:
|
|
25
|
+
- id: validate-pyproject
|
|
26
|
+
name: validate-pyproject
|
|
27
|
+
|
|
28
|
+
- repo: https://github.com/PyCQA/doc8
|
|
29
|
+
rev: v1.1.1
|
|
30
|
+
hooks:
|
|
31
|
+
- id: doc8
|
|
32
|
+
description: This hook runs doc8 for linting docs
|
|
33
|
+
require_serial: true
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Read the Docs configuration file for Sphinx projects
|
|
2
|
+
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
|
|
3
|
+
|
|
4
|
+
version: 2
|
|
5
|
+
|
|
6
|
+
build:
|
|
7
|
+
os: ubuntu-22.04
|
|
8
|
+
tools:
|
|
9
|
+
python: "3.12"
|
|
10
|
+
|
|
11
|
+
python:
|
|
12
|
+
install:
|
|
13
|
+
- method: pip
|
|
14
|
+
path: .
|
|
15
|
+
extra_requirements:
|
|
16
|
+
- docs
|
|
17
|
+
|
|
18
|
+
sphinx:
|
|
19
|
+
configuration: docs/conf.py
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
Contributing
|
|
2
|
+
============
|
|
3
|
+
|
|
4
|
+
Issues
|
|
5
|
+
------
|
|
6
|
+
Issues are intended for bug report and feature requests. For any bug report please make sure to include the complete
|
|
7
|
+
stack trace and DEBUG level logs as well as reproduce steps.
|
|
8
|
+
|
|
9
|
+
If you use the CLI, you can create a debug log file with `subliminal --debug [...] 2> debug.log`.
|
|
10
|
+
|
|
11
|
+
Pull Requests
|
|
12
|
+
-------------
|
|
13
|
+
You can contribute code and documentation with pull requests. Any code contribution must be unit tested and the pull
|
|
14
|
+
request open against the *develop* branch.
|
|
15
|
+
|
|
16
|
+
Translations
|
|
17
|
+
------------
|
|
18
|
+
Contribution to translations can be made on [subliminal's transifex page](https://www.transifex.com/subliminal/subliminal/)
|
|
19
|
+
Subliminal is configured to work with [transifex-client](http://docs.transifex.com/client/)
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
FROM python:3.12-alpine
|
|
2
|
+
|
|
3
|
+
MAINTAINER Antoine Bertin <diaoulael@gmail.com>
|
|
4
|
+
|
|
5
|
+
# set version label
|
|
6
|
+
ARG BUILD_WITH_UNRAR=false
|
|
7
|
+
ARG UNRAR_VERSION=6.2.6
|
|
8
|
+
|
|
9
|
+
RUN \
|
|
10
|
+
if [ "$BUILD_WITH_UNRAR" = true ]; then \
|
|
11
|
+
apk add -U --update --no-cache --virtual=build-dependencies build-base curl && \
|
|
12
|
+
echo "**** install unrar from source ****" && \
|
|
13
|
+
mkdir /tmp/unrar && \
|
|
14
|
+
curl -o /tmp/unrar.tar.gz -L "https://www.rarlab.com/rar/unrarsrc-${UNRAR_VERSION}.tar.gz" && \
|
|
15
|
+
tar xf /tmp/unrar.tar.gz -C /tmp/unrar --strip-components=1 && \
|
|
16
|
+
cd /tmp/unrar && \
|
|
17
|
+
make && \
|
|
18
|
+
install -v -m755 unrar /usr/local/bin && \
|
|
19
|
+
apk del build-dependencies curl && \
|
|
20
|
+
rm -rf /tmp/unrar /tmp/unrar.tar.gz; \
|
|
21
|
+
fi
|
|
22
|
+
|
|
23
|
+
RUN mkdir -p /usr/src/app /usr/src/cache
|
|
24
|
+
|
|
25
|
+
WORKDIR /usr/src/app
|
|
26
|
+
VOLUME /usr/src/cache
|
|
27
|
+
|
|
28
|
+
COPY . /usr/src/app
|
|
29
|
+
RUN python -m pip install .
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
ENTRYPOINT ["subliminal", "--cache-dir", "/usr/src/cache"]
|
|
33
|
+
CMD ["--help"]
|
|
@@ -1,6 +1,81 @@
|
|
|
1
1
|
Changelog
|
|
2
2
|
---------
|
|
3
3
|
|
|
4
|
+
2.2.0
|
|
5
|
+
^^^^^
|
|
6
|
+
**release date:** 2024-06-24
|
|
7
|
+
|
|
8
|
+
* Drop python2 support, the supported versions are `>=3.8,<=3.12`.
|
|
9
|
+
* Load CLI options from a configuration file with the ``--config/-c`` option (`#1084 <https://github.com/Diaoul/subliminal/pull/1084>`_).
|
|
10
|
+
* Change default encoding of downloaded subtitles to 'utf-8' (not the original encoding). Use the ``--original-encoding`` cli option to recover the previous default behavior (`#1125 <https://github.com/Diaoul/subliminal/pull/1125>`_).
|
|
11
|
+
* Add opensubtitlescom provider
|
|
12
|
+
* Add gestdown provider
|
|
13
|
+
* Add tmdb refiner (requires a personal API key)
|
|
14
|
+
* Fix tvsubtitles provider
|
|
15
|
+
* Fix opensubtitles provider
|
|
16
|
+
* Fix napiprojekt provider
|
|
17
|
+
* Fix podnapisi provider to use JSON API
|
|
18
|
+
* Fix addic7ed provider
|
|
19
|
+
* Remove thesubdb provider
|
|
20
|
+
* Remove argenteam provider
|
|
21
|
+
* Remove shooter provider
|
|
22
|
+
* Remove legendastv provider
|
|
23
|
+
* Use `pyproject.toml` to specify the package configurations.* Add pre-commit hook (`#1115 <https://github.com/Diaoul/subliminal/pull/1115>`_).
|
|
24
|
+
* Use ruff to lint and format
|
|
25
|
+
* Use mypy to check types
|
|
26
|
+
* Add type annotations
|
|
27
|
+
* Drop dependencies: pysrt, appdirs, six, pytz
|
|
28
|
+
* Add dependencies:
|
|
29
|
+
- click-option-group>=0.5.6
|
|
30
|
+
- platformdirs>=4.2
|
|
31
|
+
- pysubs2>=1.7
|
|
32
|
+
- srt>=3.5
|
|
33
|
+
- tomli>=2
|
|
34
|
+
* Bump dependency versions:
|
|
35
|
+
- babelfish>=0.6.1
|
|
36
|
+
- chardet>=5.0
|
|
37
|
+
- click>=8.0
|
|
38
|
+
- dogpile.cache>=1.0
|
|
39
|
+
- enzyme>=0.5.0
|
|
40
|
+
- stevedore>=3.0
|
|
41
|
+
|
|
42
|
+
2.1.0
|
|
43
|
+
^^^^^
|
|
44
|
+
**release date:** 2020-05-02
|
|
45
|
+
|
|
46
|
+
* Improve legendastv provider matches
|
|
47
|
+
* Fix video extensions (.mk3d .ogm .ogv)
|
|
48
|
+
* Use new url to search for titles in legendastv provider
|
|
49
|
+
* Fix stevedore incompatibility
|
|
50
|
+
* Add support to webm video extension
|
|
51
|
+
* Make providers easier to be extended and customized
|
|
52
|
+
* Update podnapisi URL
|
|
53
|
+
* Add support to VIP/Donor accounts in legendastv provider
|
|
54
|
+
* Proper handling titles with year / country in legendastv provider
|
|
55
|
+
* Several minor enhancements in legendastv provider
|
|
56
|
+
* Add support for python 3.6, 3.7 and 3.8
|
|
57
|
+
* Drop support for python 3.3 and 3.4
|
|
58
|
+
* Do not discard providers bad zip/rar is downloaded
|
|
59
|
+
* SubsCenter provider removal
|
|
60
|
+
* Fix lxml parsing for Addic7ed provider
|
|
61
|
+
* Support titles with asterics in Addic7ed provider
|
|
62
|
+
* Add support to multi-episode search in Opensubtitles provider
|
|
63
|
+
* Fix multi-episode search in TVSubtitles provider
|
|
64
|
+
* Update to guessit 3
|
|
65
|
+
* Improve archive scanning
|
|
66
|
+
* Add Opensubtitles VIP provider
|
|
67
|
+
* Add country to Movie and Episode
|
|
68
|
+
* Add streaming_service to Video
|
|
69
|
+
* Add info property to Subtitle
|
|
70
|
+
* Do not search for subtitles if all required languages is already present
|
|
71
|
+
* Improve TVDB refiner to support series with comma
|
|
72
|
+
* Add alternative_titles to Video and enhance OMDB refiner to use alternative_titles
|
|
73
|
+
* Only compute video hashes when required
|
|
74
|
+
* Add apikey to OMDB refiner
|
|
75
|
+
* Fix Subtitle validation when unable to guess encoding
|
|
76
|
+
* Add support to rar in Dockerfile
|
|
77
|
+
|
|
78
|
+
|
|
4
79
|
2.0.5
|
|
5
80
|
^^^^^
|
|
6
81
|
**release date:** 2016-09-03
|