subliminal 2.2.0__tar.gz → 2.2.1__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 → subliminal-2.2.1}/HISTORY.rst +8 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/PKG-INFO +10 -2
- subliminal-2.2.1/docs/api/cli.rst +5 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/docs/api/core.rst +1 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/docs/api/exceptions.rst +1 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/docs/api/extensions.rst +1 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/docs/api/providers.rst +8 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/docs/api/refiners.rst +5 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/docs/api/score.rst +1 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/docs/api/subtitle.rst +1 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/docs/api/utils.rst +1 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/docs/api/video.rst +1 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/docs/conf.py +1 -2
- {subliminal-2.2.0 → subliminal-2.2.1}/docs/config.toml +3 -2
- {subliminal-2.2.0 → subliminal-2.2.1}/docs/index.rst +1 -1
- {subliminal-2.2.0 → subliminal-2.2.1}/docs/user/usage.rst +5 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/pyproject.toml +1 -1
- {subliminal-2.2.0 → subliminal-2.2.1}/subliminal/__init__.py +1 -1
- {subliminal-2.2.0 → subliminal-2.2.1}/subliminal/cli.py +9 -4
- {subliminal-2.2.0 → subliminal-2.2.1}/subliminal/extensions.py +3 -3
- {subliminal-2.2.0 → subliminal-2.2.1}/subliminal/providers/__init__.py +19 -25
- {subliminal-2.2.0 → subliminal-2.2.1}/subliminal/providers/gestdown.py +6 -5
- {subliminal-2.2.0 → subliminal-2.2.1}/subliminal/utils.py +1 -1
- {subliminal-2.2.0 → subliminal-2.2.1}/subliminal/video.py +3 -2
- {subliminal-2.2.0 → subliminal-2.2.1}/subliminal.egg-info/PKG-INFO +10 -2
- {subliminal-2.2.0 → subliminal-2.2.1}/subliminal.egg-info/requires.txt +1 -1
- subliminal-2.2.0/docs/api/cli.rst +0 -3
- {subliminal-2.2.0 → subliminal-2.2.1}/.dockerignore +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/.pre-commit-config.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/.readthedocs.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/CONTRIBUTING.md +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/Dockerfile +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/LICENSE +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/MANIFEST.in +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/README.rst +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/docs/Makefile +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/docs/api/cache.rst +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/docs/cassettes/test_usage.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/docs/conftest.py +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/docs/make.bat +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/docs/user/cli.rst +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/docs/user/how_it_works.rst +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/docs/user/provider_guide.rst +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/setup.cfg +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/subliminal/cache.py +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/subliminal/converters/__init__.py +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/subliminal/converters/addic7ed.py +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/subliminal/converters/opensubtitlescom.py +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/subliminal/converters/shooter.py +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/subliminal/converters/thesubdb.py +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/subliminal/converters/tvsubtitles.py +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/subliminal/core.py +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/subliminal/exceptions.py +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/subliminal/matches.py +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/subliminal/providers/addic7ed.py +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/subliminal/providers/napiprojekt.py +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/subliminal/providers/opensubtitles.py +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/subliminal/providers/opensubtitlescom.py +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/subliminal/providers/podnapisi.py +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/subliminal/providers/tvsubtitles.py +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/subliminal/py.typed +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/subliminal/refiners/__init__.py +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/subliminal/refiners/hash.py +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/subliminal/refiners/metadata.py +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/subliminal/refiners/omdb.py +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/subliminal/refiners/tmdb.py +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/subliminal/refiners/tvdb.py +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/subliminal/score.py +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/subliminal/subtitle.py +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/subliminal.egg-info/SOURCES.txt +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/subliminal.egg-info/dependency_links.txt +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/subliminal.egg-info/entry_points.txt +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/subliminal.egg-info/top_level.txt +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/addic7ed/test_download_subtitle.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/addic7ed/test_get_show_id.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/addic7ed/test_get_show_id_country.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/addic7ed/test_get_show_id_quote_dots_mixed_case.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/addic7ed/test_get_show_id_with_comma.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/addic7ed/test_get_show_id_year.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/addic7ed/test_get_show_ids.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/addic7ed/test_list_subtitles.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/addic7ed/test_list_subtitles_episode_alternative_series.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/addic7ed/test_list_subtitles_show_with_asterisk.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/addic7ed/test_login.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/addic7ed/test_logout.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/addic7ed/test_query.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/addic7ed/test_query_no_year.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/addic7ed/test_query_parsing.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/addic7ed/test_query_parsing_colon.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/addic7ed/test_query_parsing_dash.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/addic7ed/test_query_parsing_quote_dots_mixed_case.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/addic7ed/test_query_wrong_series.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/addic7ed/test_query_year.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/addic7ed/test_search_show_id.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/addic7ed/test_search_show_id_error.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/addic7ed/test_search_show_id_incomplete.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/addic7ed/test_search_show_id_no_year.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/addic7ed/test_search_show_id_quote.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/addic7ed/test_search_show_id_year.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/addic7ed/test_search_show_ids_quote_dots_mixed_case.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/addic7ed/test_search_show_ids_with_comma.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/addic7ed/test_search_show_ids_with_country.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/core/test_download_bad_subtitle.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/core/test_download_best_subtitles.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/core/test_download_best_subtitles_min_score.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/core/test_download_best_subtitles_only_one.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/gestdown/test_download_subtitle.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/gestdown/test_download_with_bom.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/gestdown/test_get_title_and_show_id_alternative_name.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/gestdown/test_get_title_and_show_id_no_year.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/gestdown/test_get_title_and_show_id_only_title.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/gestdown/test_get_title_and_show_id_with_tvdb_id.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/gestdown/test_list_subtitles.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/gestdown/test_list_subtitles_episode_alternative_series.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/gestdown/test_query.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/gestdown/test_query_all_series.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/gestdown/test_query_no_language.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/gestdown/test_query_parsing.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/gestdown/test_query_parsing_colon.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/gestdown/test_query_parsing_dash.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/gestdown/test_query_parsing_quote_dots_mixed_case.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/gestdown/test_query_wrong_series.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/gestdown/test_search_show_id.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/gestdown/test_search_show_id_error.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/gestdown/test_search_show_id_incomplete.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/gestdown/test_search_show_id_no_year.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/gestdown/test_search_show_id_quote.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/gestdown/test_search_show_series_tvdb_id.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/gestdown/test_show_with_asterisk.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/napiprojekt/test_download_subtitles.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/napiprojekt/test_list_subtitles.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/napiprojekt/test_query_microdvd.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/napiprojekt/test_query_srt.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/napiprojekt/test_query_srt_reencode.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/napiprojekt/test_query_wrong_hash.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/omdb/test_get_id.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/omdb/test_get_title.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/omdb/test_get_wrong_id.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/omdb/test_get_wrong_title.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/omdb/test_refine_episode.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/omdb/test_refine_episode_original_series.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/omdb/test_refine_episode_with_country.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/omdb/test_refine_episode_with_country_hoc_us.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/omdb/test_refine_episode_year.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/omdb/test_refine_movie.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/omdb/test_refine_movie_guess_alternative_title.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/omdb/test_search.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/omdb/test_search_page.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/omdb/test_search_type.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/omdb/test_search_wrong_title.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/omdb/test_search_year.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/opensubtitles/test_download_subtitle.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/opensubtitles/test_list_subtitles_episode.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/opensubtitles/test_list_subtitles_movie.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/opensubtitles/test_list_subtitles_movie_no_hash.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/opensubtitles/test_login_bad_password.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/opensubtitles/test_login_vip_bad_password.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/opensubtitles/test_login_vip_login.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/opensubtitles/test_no_operation.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/opensubtitles/test_query_hash_size.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/opensubtitles/test_query_imdb_id.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/opensubtitles/test_query_not_enough_information.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/opensubtitles/test_query_query_episode.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/opensubtitles/test_query_query_movie.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/opensubtitles/test_query_query_season_episode.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/opensubtitles/test_query_tag_movie.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/opensubtitles/test_query_wrong_hash_wrong_size.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/opensubtitles/test_tag_match.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/opensubtitlescom/test_download_subtitle.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/opensubtitlescom/test_list_subtitles_episode.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/opensubtitlescom/test_list_subtitles_movie.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/opensubtitlescom/test_list_subtitles_movie_no_hash.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/opensubtitlescom/test_login.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/opensubtitlescom/test_login_bad_password.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/opensubtitlescom/test_logout.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/opensubtitlescom/test_query_hash_size.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/opensubtitlescom/test_query_imdb_id.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/opensubtitlescom/test_query_query_episode.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/opensubtitlescom/test_query_query_movie.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/opensubtitlescom/test_query_query_season_episode.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/opensubtitlescom/test_query_tag_movie.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/opensubtitlescom/test_query_wrong_hash_wrong_size.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/opensubtitlescom/test_tag_match.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/opensubtitlescom/test_user_infos.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/podnapisi/test_download_subtitle.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/podnapisi/test_download_subtitles_with_title_unicode.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/podnapisi/test_list_subtitles_episode.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/podnapisi/test_list_subtitles_episode_alternative_series.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/podnapisi/test_list_subtitles_movie.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/podnapisi/test_query_episode.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/podnapisi/test_query_movie.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tmdb/test_get_movie_id.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tmdb/test_get_movie_id_failed.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tmdb/test_get_series_id.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tmdb/test_get_series_wrong_id.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tmdb/test_refine_episode.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tmdb/test_refine_episode_original_series.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tmdb/test_refine_episode_with_country.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tmdb/test_refine_episode_with_country_hoc_us.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tmdb/test_refine_episode_year.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tmdb/test_refine_movie.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tmdb/test_refine_movie_guess_alternative_title.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tmdb/test_search_movie.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tmdb/test_search_movie_page.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tmdb/test_search_movie_wrong_title.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tmdb/test_search_movie_year.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tmdb/test_search_series.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tmdb/test_search_series_wrong_name.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvdb/test_get_series.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvdb/test_get_series_actors.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvdb/test_get_series_actors_wrong_id.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvdb/test_get_series_wrong_id.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvdb/test_login.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvdb/test_login_error.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvdb/test_query_series_episodes.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvdb/test_query_series_episodes_wrong_season.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvdb/test_refine.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvdb/test_refine_ambiguous.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvdb/test_refine_ambiguous_2.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvdb/test_refine_episode_alternative_series.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvdb/test_refine_episode_no_year.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvdb/test_refine_episode_partial.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvdb/test_refine_episode_with_comma.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvdb/test_refine_episode_with_country.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvdb/test_refine_episode_with_country_hoc_us.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvdb/test_refine_episode_year.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvdb/test_refresh_token.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvdb/test_search_series.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvdb/test_search_series_wrong_name.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvdb/test_token_needs_refresh.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvsubtitles/test_download_subtitle.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvsubtitles/test_download_subtitle_with_quote.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvsubtitles/test_get_episode_ids.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvsubtitles/test_get_episode_ids_wrong_season.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvsubtitles/test_list_subtitles.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvsubtitles/test_list_subtitles_episode_alternative_series.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvsubtitles/test_query.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvsubtitles/test_query_no_year.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvsubtitles/test_query_with_quote.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvsubtitles/test_query_wrong_episode.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvsubtitles/test_query_wrong_series.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvsubtitles/test_search_show_id.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvsubtitles/test_search_show_id_ambiguous.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvsubtitles/test_search_show_id_error.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvsubtitles/test_search_show_id_incomplete.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvsubtitles/test_search_show_id_no_year.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvsubtitles/test_search_show_id_uk.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvsubtitles/test_search_show_id_us.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvsubtitles/test_search_show_id_year_in_title.yaml +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/conftest.py +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/providers/test_addic7ed.py +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/providers/test_gestdown.py +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/providers/test_napiprojekt.py +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/providers/test_opensubtitles.py +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/providers/test_opensubtitlescom.py +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/providers/test_podnapisi.py +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/providers/test_tvsubtitles.py +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/refiners/test_hash.py +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/refiners/test_omdb.py +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/refiners/test_tmdb.py +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/refiners/test_tvdb.py +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/test_cache.py +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/test_core.py +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/test_extensions.py +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/test_matches.py +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/test_provider.py +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/test_score.py +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/test_subtitle.py +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/test_utils.py +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tests/test_video.py +0 -0
- {subliminal-2.2.0 → subliminal-2.2.1}/tox.ini +0 -0
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
Changelog
|
|
2
2
|
---------
|
|
3
3
|
|
|
4
|
+
2.2.1
|
|
5
|
+
^^^^^
|
|
6
|
+
**release date:** 2024-06-27
|
|
7
|
+
|
|
8
|
+
* Add example subliminal.toml to documentation and fix documentation.
|
|
9
|
+
* [CLI] show the message about the config file only with the ``--debug`` option.
|
|
10
|
+
* Relax the ``platformdirs`` dependency requirement to ``>= 3``
|
|
11
|
+
|
|
4
12
|
2.2.0
|
|
5
13
|
^^^^^
|
|
6
14
|
**release date:** 2024-06-24
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: subliminal
|
|
3
|
-
Version: 2.2.
|
|
3
|
+
Version: 2.2.1
|
|
4
4
|
Summary: Subtitles, faster than your thoughts
|
|
5
5
|
Author-email: Antoine Bertin <diaoulael@gmail.com>
|
|
6
6
|
Maintainer-email: Antoine Bertin <diaoulael@gmail.com>, getzze <getzze@gmail.com>, Patrycja Rosa <pypi@ptrcnull.me>
|
|
@@ -33,7 +33,7 @@ Requires-Dist: click-option-group>=0.5.6
|
|
|
33
33
|
Requires-Dist: dogpile.cache>=1.0
|
|
34
34
|
Requires-Dist: enzyme>=0.5.0
|
|
35
35
|
Requires-Dist: guessit>=3.0.0
|
|
36
|
-
Requires-Dist: platformdirs>=
|
|
36
|
+
Requires-Dist: platformdirs>=3
|
|
37
37
|
Requires-Dist: pysubs2>=1.7
|
|
38
38
|
Requires-Dist: rarfile>=2.7
|
|
39
39
|
Requires-Dist: requests>=2.0
|
|
@@ -154,6 +154,14 @@ See the dedicated `project page <https://github.com/Diaoul/nautilus-subliminal>`
|
|
|
154
154
|
Changelog
|
|
155
155
|
---------
|
|
156
156
|
|
|
157
|
+
2.2.1
|
|
158
|
+
^^^^^
|
|
159
|
+
**release date:** 2024-06-27
|
|
160
|
+
|
|
161
|
+
* Add example subliminal.toml to documentation and fix documentation.
|
|
162
|
+
* [CLI] show the message about the config file only with the ``--debug`` option.
|
|
163
|
+
* Relax the ``platformdirs`` dependency requirement to ``>= 3``
|
|
164
|
+
|
|
157
165
|
2.2.0
|
|
158
166
|
^^^^^
|
|
159
167
|
**release date:** 2024-06-24
|
|
@@ -1,38 +1,46 @@
|
|
|
1
1
|
Providers
|
|
2
2
|
=========
|
|
3
3
|
.. automodule:: subliminal.providers
|
|
4
|
+
:members:
|
|
4
5
|
|
|
5
6
|
Addic7ed
|
|
6
7
|
--------
|
|
7
8
|
.. automodule:: subliminal.providers.addic7ed
|
|
9
|
+
:members:
|
|
8
10
|
:private-members:
|
|
9
11
|
|
|
10
12
|
Gestdown
|
|
11
13
|
--------
|
|
12
14
|
.. automodule:: subliminal.providers.gestdown
|
|
15
|
+
:members:
|
|
13
16
|
:private-members:
|
|
14
17
|
|
|
15
18
|
NapiProjekt
|
|
16
19
|
-----------
|
|
17
20
|
.. automodule:: subliminal.providers.napiprojekt
|
|
21
|
+
:members:
|
|
18
22
|
:private-members:
|
|
19
23
|
|
|
20
24
|
OpenSubtitles
|
|
21
25
|
-------------
|
|
22
26
|
.. automodule:: subliminal.providers.opensubtitles
|
|
27
|
+
:members:
|
|
23
28
|
:private-members:
|
|
24
29
|
|
|
25
30
|
OpenSubtitles.com
|
|
26
31
|
-----------------
|
|
27
32
|
.. automodule:: subliminal.providers.opensubtitlescom
|
|
33
|
+
:members:
|
|
28
34
|
:private-members:
|
|
29
35
|
|
|
30
36
|
Podnapisi
|
|
31
37
|
---------
|
|
32
38
|
.. automodule:: subliminal.providers.podnapisi
|
|
39
|
+
:members:
|
|
33
40
|
:private-members:
|
|
34
41
|
|
|
35
42
|
TVsubtitles
|
|
36
43
|
-----------
|
|
37
44
|
.. automodule:: subliminal.providers.tvsubtitles
|
|
45
|
+
:members:
|
|
38
46
|
:private-members:
|
|
@@ -73,7 +73,7 @@ release = subliminal.__version__
|
|
|
73
73
|
#
|
|
74
74
|
# This is also used if you do content translation via gettext catalogs.
|
|
75
75
|
# Usually you set "language" from the command line for these cases.
|
|
76
|
-
language = None
|
|
76
|
+
# language = None
|
|
77
77
|
|
|
78
78
|
# There are two options for replacing |today|: either, you set today to some
|
|
79
79
|
# non-false value, then it is used:
|
|
@@ -304,7 +304,6 @@ intersphinx_mapping = {
|
|
|
304
304
|
'guessit': ('https://guessit.readthedocs.org/en/latest', None),
|
|
305
305
|
'babelfish': ('https://babelfish.readthedocs.org/en/latest', None),
|
|
306
306
|
'dogpilecache': ('https://dogpilecache.sqlalchemy.org/en/latest', None),
|
|
307
|
-
'dogpilecore': ('https://dogpilecore.readthedocs.org/en/latest', None),
|
|
308
307
|
'stevedore': ('https://docs.openstack.org/stevedore/latest', None),
|
|
309
308
|
'click': ('https://click.palletsprojects.com/en/latest/', None),
|
|
310
309
|
}
|
|
@@ -2,13 +2,14 @@
|
|
|
2
2
|
cache_dir = "~/.cache/subliminal"
|
|
3
3
|
|
|
4
4
|
[provider.opensubtitlescom]
|
|
5
|
-
username = "
|
|
5
|
+
username = "subliminal"
|
|
6
6
|
password = "subliminal"
|
|
7
7
|
apikey = "mij33pjc3kOlup1qOKxnWWxvle2kFbMH"
|
|
8
8
|
|
|
9
9
|
[provider.addic7ed]
|
|
10
10
|
username = "subliminal"
|
|
11
11
|
password = "subliminal"
|
|
12
|
+
timeout = 20
|
|
12
13
|
|
|
13
14
|
[refiner.omdb]
|
|
14
15
|
apikey = "44d5b275"
|
|
@@ -18,7 +19,7 @@ apikey = "xxxxxxxxx"
|
|
|
18
19
|
|
|
19
20
|
[download]
|
|
20
21
|
provider = ["addic7ed", "opensubtitlescom", "opensubtitles"]
|
|
21
|
-
refiner = ["metadata", "hash", "omdb", "
|
|
22
|
+
refiner = ["metadata", "hash", "omdb", "tmdb"]
|
|
22
23
|
language = ["fr", "en", "pt-br"]
|
|
23
24
|
encoding = "utf-8"
|
|
24
25
|
min_score = 50
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
Welcome to subliminal!
|
|
7
7
|
======================
|
|
8
|
-
Subliminal is a
|
|
8
|
+
Subliminal is a python3 library to search and download subtitles.
|
|
9
9
|
It comes with an easy to use yet powerful :abbr:`CLI (command-line interface)` suitable for direct use or cron jobs.
|
|
10
10
|
|
|
11
11
|
|
|
@@ -24,6 +24,11 @@ provided, it looks for a ``subliminal.toml`` file in the default configuration f
|
|
|
24
24
|
- MacOS: ``/Users/<user>/Library/Application Support/subliminal/subliminal.toml``
|
|
25
25
|
- Windows: ``C:\\Users\\<user>\\AppData\\Local\\Acme\\subliminal\\subliminal.toml``
|
|
26
26
|
|
|
27
|
+
Example of a ``subliminal.toml`` file:
|
|
28
|
+
|
|
29
|
+
.. literalinclude:: ../config.toml
|
|
30
|
+
:language: toml
|
|
31
|
+
|
|
27
32
|
See :ref:`cli` for more details on the available commands and options.
|
|
28
33
|
|
|
29
34
|
|
|
@@ -118,6 +118,7 @@ class AgeParamType(click.ParamType):
|
|
|
118
118
|
def configure(ctx: click.Context, param: click.Parameter | None, filename: str | os.PathLike) -> None:
|
|
119
119
|
"""Read a configuration file."""
|
|
120
120
|
filename = pathlib.Path(filename).expanduser()
|
|
121
|
+
msg = ''
|
|
121
122
|
toml_dict = {}
|
|
122
123
|
if filename.is_file():
|
|
123
124
|
try:
|
|
@@ -125,13 +126,10 @@ def configure(ctx: click.Context, param: click.Parameter | None, filename: str |
|
|
|
125
126
|
toml_dict = tomli.load(f)
|
|
126
127
|
except tomli.TOMLDecodeError:
|
|
127
128
|
msg = f'Cannot read the configuration file at {filename}'
|
|
128
|
-
click.echo(msg)
|
|
129
129
|
else:
|
|
130
130
|
msg = f'Using configuration file at {filename}'
|
|
131
|
-
click.echo(msg)
|
|
132
131
|
else:
|
|
133
132
|
msg = 'Not using any configuration file.'
|
|
134
|
-
click.echo(msg)
|
|
135
133
|
|
|
136
134
|
options = {}
|
|
137
135
|
|
|
@@ -148,7 +146,11 @@ def configure(ctx: click.Context, param: click.Parameter | None, filename: str |
|
|
|
148
146
|
providers_dict = toml_dict.setdefault('provider', {})
|
|
149
147
|
refiners_dict = toml_dict.setdefault('refiner', {})
|
|
150
148
|
|
|
151
|
-
ctx.obj = {
|
|
149
|
+
ctx.obj = {
|
|
150
|
+
'__config__': {'dict': toml_dict, 'debug_message': msg},
|
|
151
|
+
'provider_configs': providers_dict,
|
|
152
|
+
'refiner_configs': refiners_dict,
|
|
153
|
+
}
|
|
152
154
|
ctx.default_map = options
|
|
153
155
|
|
|
154
156
|
|
|
@@ -254,6 +256,9 @@ def subliminal(
|
|
|
254
256
|
handler.setFormatter(logging.Formatter(logging.BASIC_FORMAT))
|
|
255
257
|
logging.getLogger('subliminal').addHandler(handler)
|
|
256
258
|
logging.getLogger('subliminal').setLevel(logging.DEBUG)
|
|
259
|
+
# log about the config file
|
|
260
|
+
msg = ctx.obj['__config__']['debug_message']
|
|
261
|
+
logger.info(msg)
|
|
257
262
|
|
|
258
263
|
ctx.obj['debug'] = debug
|
|
259
264
|
# provider configs
|
|
@@ -13,7 +13,7 @@ if TYPE_CHECKING:
|
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
class RegistrableExtensionManager(ExtensionManager):
|
|
16
|
-
""":class
|
|
16
|
+
""":class:`stevedore.extensions.ExtensionManager` with support for registration.
|
|
17
17
|
|
|
18
18
|
It allows loading of internal extensions without setup and registering/unregistering additional extensions.
|
|
19
19
|
|
|
@@ -23,9 +23,9 @@ class RegistrableExtensionManager(ExtensionManager):
|
|
|
23
23
|
* Internal extensions
|
|
24
24
|
* Registered extensions
|
|
25
25
|
|
|
26
|
-
:param str namespace: namespace argument for :class
|
|
26
|
+
:param str namespace: namespace argument for :class:`stevedore.extensions.ExtensionManager`.
|
|
27
27
|
:param list internal_extensions: internal extensions to use with entry point syntax.
|
|
28
|
-
:param kwargs: additional parameters for the :class
|
|
28
|
+
:param kwargs: additional parameters for the :class:`stevedore.extensions.ExtensionManager` constructor.
|
|
29
29
|
|
|
30
30
|
"""
|
|
31
31
|
|
|
@@ -1,24 +1,11 @@
|
|
|
1
1
|
"""
|
|
2
2
|
Providers list and download subtitles for a :class:`~subliminal.video.Video` object.
|
|
3
3
|
|
|
4
|
-
A Provider is a ContextManager with
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
:type video: :class:`~subliminal.video.Video`
|
|
10
|
-
:param languages: languages to search for.
|
|
11
|
-
:type languages: set of :class:`~babelfish.language.Language`
|
|
12
|
-
:return: found subtitles.
|
|
13
|
-
:rtype: list of :class:`~subliminal.subtitle.Subtitle`
|
|
14
|
-
:raise: :class:`~subliminal.exceptions.ProviderError`
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
.. py:method:: download_subtitle(self, subtitle)
|
|
18
|
-
|
|
19
|
-
:param subtitle: subtitle to download.
|
|
20
|
-
:type subtitle: :class:`~subliminal.subtitle.Subtitle`
|
|
21
|
-
:raise: :class:`~subliminal.exceptions.ProviderError`
|
|
4
|
+
A Provider is a ContextManager with :meth:`~subliminal.Provider.__enter__` and
|
|
5
|
+
:meth:`~subliminal.Provider.__exit__`
|
|
6
|
+
methods and two public methods,
|
|
7
|
+
:py:meth:`~subliminal.Provider.list_subtitles(video, languages)` and
|
|
8
|
+
:py:meth:`~subliminal.Provider.download_subtitle(subtitle)`.
|
|
22
9
|
|
|
23
10
|
"""
|
|
24
11
|
|
|
@@ -51,7 +38,7 @@ logger = logging.getLogger(__name__)
|
|
|
51
38
|
|
|
52
39
|
|
|
53
40
|
class SecLevelOneTLSAdapter(adapters.HTTPAdapter):
|
|
54
|
-
"""
|
|
41
|
+
""":class:`~requests.adapters.HTTPAdapter` with security level set to 1."""
|
|
55
42
|
|
|
56
43
|
def init_poolmanager(self, connections: int, maxsize: int, block: bool = False, **pool_kwargs: Any) -> None: # noqa: FBT001, FBT002
|
|
57
44
|
"""Create and initialize the urllib3 PoolManager."""
|
|
@@ -67,7 +54,7 @@ class SecLevelOneTLSAdapter(adapters.HTTPAdapter):
|
|
|
67
54
|
|
|
68
55
|
|
|
69
56
|
class TimeoutSafeTransport(SafeTransport):
|
|
70
|
-
"""Timeout support for
|
|
57
|
+
"""Timeout support for :class:`~xmlrpc.client.SafeTransport`."""
|
|
71
58
|
|
|
72
59
|
timeout: float | None
|
|
73
60
|
|
|
@@ -76,7 +63,14 @@ class TimeoutSafeTransport(SafeTransport):
|
|
|
76
63
|
self.timeout = timeout
|
|
77
64
|
|
|
78
65
|
def make_connection(self, host: _HostType) -> HTTPSConnection:
|
|
79
|
-
"""Make connection to host.
|
|
66
|
+
"""Make connection to host.
|
|
67
|
+
|
|
68
|
+
:param host: the connection host.
|
|
69
|
+
:type host: :class:`~xmlrpc.client._HostType`
|
|
70
|
+
:return: the HTTPS connection.
|
|
71
|
+
:rtype: :class:`~http.client import HTTPSConnection`
|
|
72
|
+
|
|
73
|
+
"""
|
|
80
74
|
c = SafeTransport.make_connection(self, host)
|
|
81
75
|
c.timeout = self.timeout
|
|
82
76
|
|
|
@@ -84,10 +78,10 @@ class TimeoutSafeTransport(SafeTransport):
|
|
|
84
78
|
|
|
85
79
|
|
|
86
80
|
class ParserBeautifulSoup(BeautifulSoup):
|
|
87
|
-
"""A
|
|
81
|
+
"""A :class:`~bs4.BeautifulSoup` that picks the first parser available in `parsers`.
|
|
88
82
|
|
|
89
|
-
:param markup: markup for the
|
|
90
|
-
:param list parsers: parser names, in order of preference.
|
|
83
|
+
:param (str | bytes) markup: markup for the :class:`~bs4.BeautifulSoup`.
|
|
84
|
+
:param list[str] parsers: parser names, in order of preference.
|
|
91
85
|
|
|
92
86
|
"""
|
|
93
87
|
|
|
@@ -127,7 +121,7 @@ class Provider(Generic[S]):
|
|
|
127
121
|
|
|
128
122
|
If any configuration is possible for the provider, like credentials, it must take place during instantiation.
|
|
129
123
|
|
|
130
|
-
:
|
|
124
|
+
:raises: :class:`~subliminal.exceptions.ConfigurationError` if there is a configuration error
|
|
131
125
|
|
|
132
126
|
"""
|
|
133
127
|
|
|
@@ -237,10 +237,10 @@ class GestdownProvider(Provider):
|
|
|
237
237
|
|
|
238
238
|
:param str show_id: the show id.
|
|
239
239
|
:param int season: the season to query.
|
|
240
|
-
:param
|
|
240
|
+
:param language: the language of the subtitles.
|
|
241
|
+
:type language: :class:`~babelfish.language.Language`
|
|
241
242
|
:return: the list of found subtitles (as dicts).
|
|
242
243
|
:rtype: list[dict[str, Any]]
|
|
243
|
-
|
|
244
244
|
"""
|
|
245
245
|
if self.session is None:
|
|
246
246
|
raise NotInitializedProviderError
|
|
@@ -274,10 +274,10 @@ class GestdownProvider(Provider):
|
|
|
274
274
|
:param str show_id: the show id.
|
|
275
275
|
:param int season: the season to query.
|
|
276
276
|
:param int episode: the episode to query.
|
|
277
|
-
:param
|
|
277
|
+
:param language: the language of the subtitles.
|
|
278
|
+
:type language: :class:`~babelfish.language.Language`
|
|
278
279
|
:return: the list of found subtitles (as dicts).
|
|
279
280
|
:rtype: list[dict[str, Any]]
|
|
280
|
-
|
|
281
281
|
"""
|
|
282
282
|
if self.session is None:
|
|
283
283
|
raise NotInitializedProviderError
|
|
@@ -318,7 +318,8 @@ class GestdownProvider(Provider):
|
|
|
318
318
|
:param str series: the series title.
|
|
319
319
|
:param int season: the season number.
|
|
320
320
|
:param int episode: the episode number.
|
|
321
|
-
:param
|
|
321
|
+
:param language: the language of the subtitles.
|
|
322
|
+
:type language: :class:`~babelfish.language.Language`
|
|
322
323
|
:return: the list of found subtitles.
|
|
323
324
|
:rtype: list[GestdownSubtitle]
|
|
324
325
|
|
|
@@ -174,7 +174,7 @@ def is_iterable(obj: Any) -> TypeGuard[Iterable]:
|
|
|
174
174
|
def ensure_list(value: T | Sequence[T] | None) -> list[T]:
|
|
175
175
|
"""Ensure to return a list of values.
|
|
176
176
|
|
|
177
|
-
From rebulk.loose.ensure_list
|
|
177
|
+
From :func:`rebulk.loose.ensure_list`.
|
|
178
178
|
"""
|
|
179
179
|
if value is None:
|
|
180
180
|
return []
|
|
@@ -117,7 +117,8 @@ class Video:
|
|
|
117
117
|
:param str audio_codec: codec of the main audio stream.
|
|
118
118
|
:param dict hashes: hashes of the video file by provider names.
|
|
119
119
|
:param int size: size of the video file in bytes.
|
|
120
|
-
:param
|
|
120
|
+
:param subtitle_languages: existing subtitle languages.
|
|
121
|
+
:type subtitle_languages: set[:class:`~babelfish.language.Language`]
|
|
121
122
|
:param int year: year of the video.
|
|
122
123
|
:param country: Country of the video.
|
|
123
124
|
:type country: :class:`~babelfish.country.Country`
|
|
@@ -399,7 +400,7 @@ class Movie(Video):
|
|
|
399
400
|
:param int year: year of the movie.
|
|
400
401
|
:param country: Country of the movie.
|
|
401
402
|
:type country: :class:`~babelfish.country.Country`
|
|
402
|
-
:param list alternative_titles: alternative titles of the movie
|
|
403
|
+
:param list[str] alternative_titles: alternative titles of the movie
|
|
403
404
|
:param kwargs: additional parameters for the :class:`Video` constructor.
|
|
404
405
|
|
|
405
406
|
"""
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: subliminal
|
|
3
|
-
Version: 2.2.
|
|
3
|
+
Version: 2.2.1
|
|
4
4
|
Summary: Subtitles, faster than your thoughts
|
|
5
5
|
Author-email: Antoine Bertin <diaoulael@gmail.com>
|
|
6
6
|
Maintainer-email: Antoine Bertin <diaoulael@gmail.com>, getzze <getzze@gmail.com>, Patrycja Rosa <pypi@ptrcnull.me>
|
|
@@ -33,7 +33,7 @@ Requires-Dist: click-option-group>=0.5.6
|
|
|
33
33
|
Requires-Dist: dogpile.cache>=1.0
|
|
34
34
|
Requires-Dist: enzyme>=0.5.0
|
|
35
35
|
Requires-Dist: guessit>=3.0.0
|
|
36
|
-
Requires-Dist: platformdirs>=
|
|
36
|
+
Requires-Dist: platformdirs>=3
|
|
37
37
|
Requires-Dist: pysubs2>=1.7
|
|
38
38
|
Requires-Dist: rarfile>=2.7
|
|
39
39
|
Requires-Dist: requests>=2.0
|
|
@@ -154,6 +154,14 @@ See the dedicated `project page <https://github.com/Diaoul/nautilus-subliminal>`
|
|
|
154
154
|
Changelog
|
|
155
155
|
---------
|
|
156
156
|
|
|
157
|
+
2.2.1
|
|
158
|
+
^^^^^
|
|
159
|
+
**release date:** 2024-06-27
|
|
160
|
+
|
|
161
|
+
* Add example subliminal.toml to documentation and fix documentation.
|
|
162
|
+
* [CLI] show the message about the config file only with the ``--debug`` option.
|
|
163
|
+
* Relax the ``platformdirs`` dependency requirement to ``>= 3``
|
|
164
|
+
|
|
157
165
|
2.2.0
|
|
158
166
|
^^^^^
|
|
159
167
|
**release date:** 2024-06-24
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/addic7ed/test_get_show_id_country.yaml
RENAMED
|
File without changes
|