subliminal 2.1.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.
Files changed (304) hide show
  1. subliminal-2.2.1/.dockerignore +68 -0
  2. subliminal-2.2.1/.pre-commit-config.yaml +33 -0
  3. subliminal-2.2.1/.readthedocs.yaml +19 -0
  4. subliminal-2.2.1/CONTRIBUTING.md +19 -0
  5. subliminal-2.2.1/Dockerfile +33 -0
  6. {subliminal-2.1.0 → subliminal-2.2.1}/HISTORY.rst +46 -0
  7. subliminal-2.2.1/MANIFEST.in +13 -0
  8. subliminal-2.2.1/PKG-INFO +526 -0
  9. {subliminal-2.1.0 → subliminal-2.2.1}/README.rst +1 -1
  10. subliminal-2.2.1/docs/Makefile +192 -0
  11. subliminal-2.2.1/docs/api/cache.rst +21 -0
  12. subliminal-2.2.1/docs/api/cli.rst +5 -0
  13. subliminal-2.2.1/docs/api/core.rst +8 -0
  14. subliminal-2.2.1/docs/api/exceptions.rst +4 -0
  15. subliminal-2.2.1/docs/api/extensions.rst +4 -0
  16. subliminal-2.2.1/docs/api/providers.rst +46 -0
  17. subliminal-2.2.1/docs/api/refiners.rst +30 -0
  18. subliminal-2.2.1/docs/api/score.rst +4 -0
  19. subliminal-2.2.1/docs/api/subtitle.rst +8 -0
  20. subliminal-2.2.1/docs/api/utils.rst +4 -0
  21. subliminal-2.2.1/docs/api/video.rst +8 -0
  22. subliminal-2.2.1/docs/cassettes/test_usage.yaml +566 -0
  23. subliminal-2.2.1/docs/conf.py +315 -0
  24. subliminal-2.2.1/docs/config.toml +27 -0
  25. subliminal-2.2.1/docs/conftest.py +32 -0
  26. subliminal-2.2.1/docs/index.rst +52 -0
  27. subliminal-2.2.1/docs/make.bat +263 -0
  28. subliminal-2.2.1/docs/user/cli.rst +18 -0
  29. subliminal-2.2.1/docs/user/how_it_works.rst +51 -0
  30. subliminal-2.2.1/docs/user/provider_guide.rst +96 -0
  31. subliminal-2.2.1/docs/user/usage.rst +164 -0
  32. subliminal-2.2.1/pyproject.toml +263 -0
  33. subliminal-2.2.1/setup.cfg +4 -0
  34. subliminal-2.2.1/subliminal/__init__.py +62 -0
  35. subliminal-2.2.1/subliminal/cache.py +32 -0
  36. subliminal-2.2.1/subliminal/cli.py +602 -0
  37. subliminal-2.2.1/subliminal/converters/__init__.py +7 -0
  38. subliminal-2.2.1/subliminal/converters/addic7ed.py +60 -0
  39. subliminal-2.2.1/subliminal/converters/opensubtitlescom.py +50 -0
  40. subliminal-2.2.1/subliminal/converters/shooter.py +37 -0
  41. subliminal-2.2.1/subliminal/converters/thesubdb.py +50 -0
  42. subliminal-2.2.1/subliminal/converters/tvsubtitles.py +43 -0
  43. {subliminal-2.1.0 → subliminal-2.2.1}/subliminal/core.py +226 -108
  44. {subliminal-2.1.0 → subliminal-2.2.1}/subliminal/exceptions.py +15 -1
  45. subliminal-2.2.1/subliminal/extensions.py +155 -0
  46. {subliminal-2.1.0 → subliminal-2.2.1}/subliminal/matches.py +82 -42
  47. {subliminal-2.1.0 → subliminal-2.2.1}/subliminal/providers/__init__.py +106 -36
  48. subliminal-2.2.1/subliminal/providers/addic7ed.py +633 -0
  49. subliminal-2.2.1/subliminal/providers/gestdown.py +423 -0
  50. subliminal-2.2.1/subliminal/providers/napiprojekt.py +176 -0
  51. subliminal-2.2.1/subliminal/providers/opensubtitles.py +434 -0
  52. subliminal-2.2.1/subliminal/providers/opensubtitlescom.py +849 -0
  53. subliminal-2.2.1/subliminal/providers/podnapisi.py +252 -0
  54. subliminal-2.2.1/subliminal/providers/tvsubtitles.py +332 -0
  55. {subliminal-2.1.0 → subliminal-2.2.1}/subliminal/refiners/__init__.py +1 -1
  56. subliminal-2.2.1/subliminal/refiners/hash.py +156 -0
  57. subliminal-2.2.1/subliminal/refiners/metadata.py +113 -0
  58. subliminal-2.2.1/subliminal/refiners/omdb.py +321 -0
  59. subliminal-2.2.1/subliminal/refiners/tmdb.py +339 -0
  60. subliminal-2.2.1/subliminal/refiners/tvdb.py +482 -0
  61. subliminal-2.2.1/subliminal/score.py +404 -0
  62. subliminal-2.2.1/subliminal/subtitle.py +478 -0
  63. subliminal-2.2.1/subliminal/utils.py +183 -0
  64. subliminal-2.2.1/subliminal/video.py +480 -0
  65. subliminal-2.2.1/subliminal.egg-info/PKG-INFO +526 -0
  66. subliminal-2.2.1/subliminal.egg-info/SOURCES.txt +268 -0
  67. {subliminal-2.1.0 → subliminal-2.2.1}/subliminal.egg-info/entry_points.txt +6 -6
  68. subliminal-2.2.1/subliminal.egg-info/requires.txt +40 -0
  69. subliminal-2.2.1/tests/cassettes/addic7ed/test_download_subtitle.yaml +8470 -0
  70. subliminal-2.2.1/tests/cassettes/addic7ed/test_get_show_id.yaml +5066 -0
  71. subliminal-2.2.1/tests/cassettes/addic7ed/test_get_show_id_country.yaml +5066 -0
  72. subliminal-2.2.1/tests/cassettes/addic7ed/test_get_show_id_quote_dots_mixed_case.yaml +5065 -0
  73. subliminal-2.2.1/tests/cassettes/addic7ed/test_get_show_id_with_comma.yaml +5066 -0
  74. subliminal-2.2.1/tests/cassettes/addic7ed/test_get_show_id_year.yaml +5066 -0
  75. subliminal-2.2.1/tests/cassettes/addic7ed/test_get_show_ids.yaml +5066 -0
  76. subliminal-2.2.1/tests/cassettes/addic7ed/test_list_subtitles.yaml +8013 -0
  77. subliminal-2.2.1/tests/cassettes/addic7ed/test_list_subtitles_episode_alternative_series.yaml +10986 -0
  78. subliminal-2.2.1/tests/cassettes/addic7ed/test_list_subtitles_show_with_asterisk.yaml +10934 -0
  79. subliminal-2.2.1/tests/cassettes/addic7ed/test_login.yaml +60 -0
  80. subliminal-2.2.1/tests/cassettes/addic7ed/test_logout.yaml +61 -0
  81. subliminal-2.2.1/tests/cassettes/addic7ed/test_query.yaml +8013 -0
  82. subliminal-2.2.1/tests/cassettes/addic7ed/test_query_no_year.yaml +5190 -0
  83. subliminal-2.2.1/tests/cassettes/addic7ed/test_query_parsing.yaml +7635 -0
  84. subliminal-2.2.1/tests/cassettes/addic7ed/test_query_parsing_colon.yaml +5912 -0
  85. subliminal-2.2.1/tests/cassettes/addic7ed/test_query_parsing_dash.yaml +6037 -0
  86. subliminal-2.2.1/tests/cassettes/addic7ed/test_query_parsing_quote_dots_mixed_case.yaml +2157 -0
  87. subliminal-2.2.1/tests/cassettes/addic7ed/test_query_wrong_series.yaml +82 -0
  88. subliminal-2.2.1/tests/cassettes/addic7ed/test_query_year.yaml +5856 -0
  89. subliminal-2.2.1/tests/cassettes/addic7ed/test_search_show_id.yaml +637 -0
  90. subliminal-2.2.1/tests/cassettes/addic7ed/test_search_show_id_error.yaml +120 -0
  91. subliminal-2.2.1/tests/cassettes/addic7ed/test_search_show_id_incomplete.yaml +640 -0
  92. subliminal-2.2.1/tests/cassettes/addic7ed/test_search_show_id_no_year.yaml +584 -0
  93. subliminal-2.2.1/tests/cassettes/addic7ed/test_search_show_id_quote.yaml +611 -0
  94. subliminal-2.2.1/tests/cassettes/addic7ed/test_search_show_id_year.yaml +311 -0
  95. subliminal-2.2.1/tests/cassettes/addic7ed/test_search_show_ids_quote_dots_mixed_case.yaml +634 -0
  96. subliminal-2.2.1/tests/cassettes/addic7ed/test_search_show_ids_with_comma.yaml +287 -0
  97. subliminal-2.2.1/tests/cassettes/addic7ed/test_search_show_ids_with_country.yaml +826 -0
  98. subliminal-2.2.1/tests/cassettes/core/test_download_bad_subtitle.yaml +790 -0
  99. subliminal-2.2.1/tests/cassettes/core/test_download_best_subtitles.yaml +953 -0
  100. subliminal-2.2.1/tests/cassettes/core/test_download_best_subtitles_min_score.yaml +116 -0
  101. subliminal-2.2.1/tests/cassettes/core/test_download_best_subtitles_only_one.yaml +557 -0
  102. subliminal-2.2.1/tests/cassettes/gestdown/test_download_subtitle.yaml +564 -0
  103. subliminal-2.2.1/tests/cassettes/gestdown/test_download_with_bom.yaml +578 -0
  104. subliminal-2.2.1/tests/cassettes/gestdown/test_get_title_and_show_id_alternative_name.yaml +105 -0
  105. subliminal-2.2.1/tests/cassettes/gestdown/test_get_title_and_show_id_no_year.yaml +54 -0
  106. subliminal-2.2.1/tests/cassettes/gestdown/test_get_title_and_show_id_only_title.yaml +56 -0
  107. subliminal-2.2.1/tests/cassettes/gestdown/test_get_title_and_show_id_with_tvdb_id.yaml +55 -0
  108. subliminal-2.2.1/tests/cassettes/gestdown/test_list_subtitles.yaml +165 -0
  109. subliminal-2.2.1/tests/cassettes/gestdown/test_list_subtitles_episode_alternative_series.yaml +176 -0
  110. subliminal-2.2.1/tests/cassettes/gestdown/test_query.yaml +110 -0
  111. subliminal-2.2.1/tests/cassettes/gestdown/test_query_all_series.yaml +134 -0
  112. subliminal-2.2.1/tests/cassettes/gestdown/test_query_no_language.yaml +57 -0
  113. subliminal-2.2.1/tests/cassettes/gestdown/test_query_parsing.yaml +108 -0
  114. subliminal-2.2.1/tests/cassettes/gestdown/test_query_parsing_colon.yaml +108 -0
  115. subliminal-2.2.1/tests/cassettes/gestdown/test_query_parsing_dash.yaml +108 -0
  116. subliminal-2.2.1/tests/cassettes/gestdown/test_query_parsing_quote_dots_mixed_case.yaml +109 -0
  117. subliminal-2.2.1/tests/cassettes/gestdown/test_query_wrong_series.yaml +48 -0
  118. subliminal-2.2.1/tests/cassettes/gestdown/test_search_show_id.yaml +55 -0
  119. subliminal-2.2.1/tests/cassettes/gestdown/test_search_show_id_error.yaml +52 -0
  120. subliminal-2.2.1/tests/cassettes/gestdown/test_search_show_id_incomplete.yaml +55 -0
  121. subliminal-2.2.1/tests/cassettes/gestdown/test_search_show_id_no_year.yaml +55 -0
  122. subliminal-2.2.1/tests/cassettes/gestdown/test_search_show_id_quote.yaml +55 -0
  123. subliminal-2.2.1/tests/cassettes/gestdown/test_search_show_series_tvdb_id.yaml +57 -0
  124. subliminal-2.2.1/tests/cassettes/gestdown/test_show_with_asterisk.yaml +162 -0
  125. subliminal-2.2.1/tests/cassettes/napiprojekt/test_download_subtitles.yaml +865 -0
  126. subliminal-2.2.1/tests/cassettes/napiprojekt/test_list_subtitles.yaml +439 -0
  127. subliminal-2.2.1/tests/cassettes/napiprojekt/test_query_microdvd.yaml +865 -0
  128. subliminal-2.2.1/tests/cassettes/napiprojekt/test_query_srt.yaml +818 -0
  129. subliminal-2.2.1/tests/cassettes/napiprojekt/test_query_srt_reencode.yaml +1034 -0
  130. subliminal-2.2.1/tests/cassettes/napiprojekt/test_query_wrong_hash.yaml +43 -0
  131. subliminal-2.2.1/tests/cassettes/omdb/test_get_id.yaml +61 -0
  132. subliminal-2.2.1/tests/cassettes/omdb/test_get_title.yaml +61 -0
  133. subliminal-2.2.1/tests/cassettes/omdb/test_get_wrong_id.yaml +52 -0
  134. subliminal-2.2.1/tests/cassettes/omdb/test_get_wrong_title.yaml +52 -0
  135. subliminal-2.2.1/tests/cassettes/omdb/test_refine_episode.yaml +53 -0
  136. subliminal-2.2.1/tests/cassettes/omdb/test_refine_episode_original_series.yaml +295 -0
  137. subliminal-2.2.1/tests/cassettes/omdb/test_refine_episode_with_country.yaml +56 -0
  138. subliminal-2.2.1/tests/cassettes/omdb/test_refine_episode_with_country_hoc_us.yaml +54 -0
  139. subliminal-2.2.1/tests/cassettes/omdb/test_refine_episode_year.yaml +58 -0
  140. subliminal-2.2.1/tests/cassettes/omdb/test_refine_movie.yaml +178 -0
  141. subliminal-2.2.1/tests/cassettes/omdb/test_refine_movie_guess_alternative_title.yaml +52 -0
  142. subliminal-2.2.1/tests/cassettes/omdb/test_search.yaml +61 -0
  143. subliminal-2.2.1/tests/cassettes/omdb/test_search_page.yaml +61 -0
  144. subliminal-2.2.1/tests/cassettes/omdb/test_search_type.yaml +61 -0
  145. subliminal-2.2.1/tests/cassettes/omdb/test_search_wrong_title.yaml +52 -0
  146. subliminal-2.2.1/tests/cassettes/omdb/test_search_year.yaml +61 -0
  147. subliminal-2.2.1/tests/cassettes/opensubtitles/test_download_subtitle.yaml +1370 -0
  148. subliminal-2.2.1/tests/cassettes/opensubtitles/test_list_subtitles_episode.yaml +473 -0
  149. subliminal-2.2.1/tests/cassettes/opensubtitles/test_list_subtitles_movie.yaml +689 -0
  150. subliminal-2.2.1/tests/cassettes/opensubtitles/test_list_subtitles_movie_no_hash.yaml +458 -0
  151. subliminal-2.2.1/tests/cassettes/opensubtitles/test_login_bad_password.yaml +115 -0
  152. subliminal-2.2.1/tests/cassettes/opensubtitles/test_login_vip_bad_password.yaml +115 -0
  153. subliminal-2.2.1/tests/cassettes/opensubtitles/test_login_vip_login.yaml +115 -0
  154. subliminal-2.2.1/tests/cassettes/opensubtitles/test_no_operation.yaml +388 -0
  155. subliminal-2.2.1/tests/cassettes/opensubtitles/test_query_hash_size.yaml +474 -0
  156. subliminal-2.2.1/tests/cassettes/opensubtitles/test_query_imdb_id.yaml +452 -0
  157. subliminal-2.2.1/tests/cassettes/opensubtitles/test_query_not_enough_information.yaml +293 -0
  158. subliminal-2.2.1/tests/cassettes/opensubtitles/test_query_query_episode.yaml +446 -0
  159. subliminal-2.2.1/tests/cassettes/opensubtitles/test_query_query_movie.yaml +471 -0
  160. subliminal-2.2.1/tests/cassettes/opensubtitles/test_query_query_season_episode.yaml +450 -0
  161. subliminal-2.2.1/tests/cassettes/opensubtitles/test_query_tag_movie.yaml +414 -0
  162. subliminal-2.2.1/tests/cassettes/opensubtitles/test_query_wrong_hash_wrong_size.yaml +422 -0
  163. subliminal-2.2.1/tests/cassettes/opensubtitles/test_tag_match.yaml +532 -0
  164. subliminal-2.2.1/tests/cassettes/opensubtitlescom/test_download_subtitle.yaml +2140 -0
  165. subliminal-2.2.1/tests/cassettes/opensubtitlescom/test_list_subtitles_episode.yaml +350 -0
  166. subliminal-2.2.1/tests/cassettes/opensubtitlescom/test_list_subtitles_movie.yaml +781 -0
  167. subliminal-2.2.1/tests/cassettes/opensubtitlescom/test_list_subtitles_movie_no_hash.yaml +162 -0
  168. subliminal-2.2.1/tests/cassettes/opensubtitlescom/test_login.yaml +103 -0
  169. subliminal-2.2.1/tests/cassettes/opensubtitlescom/test_login_bad_password.yaml +98 -0
  170. subliminal-2.2.1/tests/cassettes/opensubtitlescom/test_logout.yaml +103 -0
  171. subliminal-2.2.1/tests/cassettes/opensubtitlescom/test_query_hash_size.yaml +205 -0
  172. subliminal-2.2.1/tests/cassettes/opensubtitlescom/test_query_imdb_id.yaml +183 -0
  173. subliminal-2.2.1/tests/cassettes/opensubtitlescom/test_query_query_episode.yaml +382 -0
  174. subliminal-2.2.1/tests/cassettes/opensubtitlescom/test_query_query_movie.yaml +173 -0
  175. subliminal-2.2.1/tests/cassettes/opensubtitlescom/test_query_query_season_episode.yaml +334 -0
  176. subliminal-2.2.1/tests/cassettes/opensubtitlescom/test_query_tag_movie.yaml +164 -0
  177. subliminal-2.2.1/tests/cassettes/opensubtitlescom/test_query_wrong_hash_wrong_size.yaml +116 -0
  178. subliminal-2.2.1/tests/cassettes/opensubtitlescom/test_tag_match.yaml +529 -0
  179. subliminal-2.2.1/tests/cassettes/opensubtitlescom/test_user_infos.yaml +202 -0
  180. subliminal-2.2.1/tests/cassettes/podnapisi/test_download_subtitle.yaml +1039 -0
  181. subliminal-2.2.1/tests/cassettes/podnapisi/test_download_subtitles_with_title_unicode.yaml +1020 -0
  182. subliminal-2.2.1/tests/cassettes/podnapisi/test_list_subtitles_episode.yaml +515 -0
  183. subliminal-2.2.1/tests/cassettes/podnapisi/test_list_subtitles_episode_alternative_series.yaml +367 -0
  184. subliminal-2.2.1/tests/cassettes/podnapisi/test_list_subtitles_movie.yaml +438 -0
  185. subliminal-2.2.1/tests/cassettes/podnapisi/test_query_episode.yaml +174 -0
  186. subliminal-2.2.1/tests/cassettes/podnapisi/test_query_movie.yaml +362 -0
  187. subliminal-2.2.1/tests/cassettes/tmdb/test_get_movie_id.yaml +155 -0
  188. subliminal-2.2.1/tests/cassettes/tmdb/test_get_movie_id_failed.yaml +65 -0
  189. subliminal-2.2.1/tests/cassettes/tmdb/test_get_series_id.yaml +72 -0
  190. subliminal-2.2.1/tests/cassettes/tmdb/test_get_series_wrong_id.yaml +65 -0
  191. subliminal-2.2.1/tests/cassettes/tmdb/test_refine_episode.yaml +305 -0
  192. subliminal-2.2.1/tests/cassettes/tmdb/test_refine_episode_original_series.yaml +305 -0
  193. subliminal-2.2.1/tests/cassettes/tmdb/test_refine_episode_with_country.yaml +302 -0
  194. subliminal-2.2.1/tests/cassettes/tmdb/test_refine_episode_with_country_hoc_us.yaml +244 -0
  195. subliminal-2.2.1/tests/cassettes/tmdb/test_refine_episode_year.yaml +210 -0
  196. subliminal-2.2.1/tests/cassettes/tmdb/test_refine_movie.yaml +222 -0
  197. subliminal-2.2.1/tests/cassettes/tmdb/test_refine_movie_guess_alternative_title.yaml +130 -0
  198. subliminal-2.2.1/tests/cassettes/tmdb/test_search_movie.yaml +155 -0
  199. subliminal-2.2.1/tests/cassettes/tmdb/test_search_movie_page.yaml +148 -0
  200. subliminal-2.2.1/tests/cassettes/tmdb/test_search_movie_wrong_title.yaml +65 -0
  201. subliminal-2.2.1/tests/cassettes/tmdb/test_search_movie_year.yaml +71 -0
  202. subliminal-2.2.1/tests/cassettes/tmdb/test_search_series.yaml +72 -0
  203. subliminal-2.2.1/tests/cassettes/tmdb/test_search_series_wrong_name.yaml +65 -0
  204. subliminal-2.2.1/tests/cassettes/tvdb/test_get_series.yaml +109 -0
  205. subliminal-2.2.1/tests/cassettes/tvdb/test_get_series_actors.yaml +126 -0
  206. subliminal-2.2.1/tests/cassettes/tvdb/test_get_series_actors_wrong_id.yaml +100 -0
  207. subliminal-2.2.1/tests/cassettes/tvdb/test_get_series_wrong_id.yaml +100 -0
  208. subliminal-2.2.1/tests/cassettes/tvdb/test_login.yaml +50 -0
  209. subliminal-2.2.1/tests/cassettes/tvdb/test_login_error.yaml +52 -0
  210. subliminal-2.2.1/tests/cassettes/tvdb/test_query_series_episodes.yaml +111 -0
  211. subliminal-2.2.1/tests/cassettes/tvdb/test_query_series_episodes_wrong_season.yaml +100 -0
  212. subliminal-2.2.1/tests/cassettes/tvdb/test_refine.yaml +287 -0
  213. subliminal-2.2.1/tests/cassettes/tvdb/test_refine_ambiguous.yaml +476 -0
  214. subliminal-2.2.1/tests/cassettes/tvdb/test_refine_ambiguous_2.yaml +857 -0
  215. subliminal-2.2.1/tests/cassettes/tvdb/test_refine_episode_alternative_series.yaml +232 -0
  216. subliminal-2.2.1/tests/cassettes/tvdb/test_refine_episode_no_year.yaml +537 -0
  217. subliminal-2.2.1/tests/cassettes/tvdb/test_refine_episode_partial.yaml +496 -0
  218. subliminal-2.2.1/tests/cassettes/tvdb/test_refine_episode_with_comma.yaml +254 -0
  219. subliminal-2.2.1/tests/cassettes/tvdb/test_refine_episode_with_country.yaml +325 -0
  220. subliminal-2.2.1/tests/cassettes/tvdb/test_refine_episode_with_country_hoc_us.yaml +257 -0
  221. subliminal-2.2.1/tests/cassettes/tvdb/test_refine_episode_year.yaml +535 -0
  222. subliminal-2.2.1/tests/cassettes/tvdb/test_refresh_token.yaml +100 -0
  223. subliminal-2.2.1/tests/cassettes/tvdb/test_search_series.yaml +104 -0
  224. subliminal-2.2.1/tests/cassettes/tvdb/test_search_series_wrong_name.yaml +100 -0
  225. subliminal-2.2.1/tests/cassettes/tvdb/test_token_needs_refresh.yaml +50 -0
  226. subliminal-2.2.1/tests/cassettes/tvsubtitles/test_download_subtitle.yaml +1650 -0
  227. subliminal-2.2.1/tests/cassettes/tvsubtitles/test_download_subtitle_with_quote.yaml +1669 -0
  228. subliminal-2.2.1/tests/cassettes/tvsubtitles/test_get_episode_ids.yaml +901 -0
  229. subliminal-2.2.1/tests/cassettes/tvsubtitles/test_get_episode_ids_wrong_season.yaml +225 -0
  230. subliminal-2.2.1/tests/cassettes/tvsubtitles/test_list_subtitles.yaml +1323 -0
  231. subliminal-2.2.1/tests/cassettes/tvsubtitles/test_list_subtitles_episode_alternative_series.yaml +914 -0
  232. subliminal-2.2.1/tests/cassettes/tvsubtitles/test_query.yaml +1323 -0
  233. subliminal-2.2.1/tests/cassettes/tvsubtitles/test_query_no_year.yaml +743 -0
  234. subliminal-2.2.1/tests/cassettes/tvsubtitles/test_query_with_quote.yaml +1198 -0
  235. subliminal-2.2.1/tests/cassettes/tvsubtitles/test_query_wrong_episode.yaml +898 -0
  236. subliminal-2.2.1/tests/cassettes/tvsubtitles/test_query_wrong_series.yaml +219 -0
  237. subliminal-2.2.1/tests/cassettes/tvsubtitles/test_search_show_id.yaml +233 -0
  238. subliminal-2.2.1/tests/cassettes/tvsubtitles/test_search_show_id_ambiguous.yaml +418 -0
  239. subliminal-2.2.1/tests/cassettes/tvsubtitles/test_search_show_id_error.yaml +235 -0
  240. subliminal-2.2.1/tests/cassettes/tvsubtitles/test_search_show_id_incomplete.yaml +234 -0
  241. subliminal-2.2.1/tests/cassettes/tvsubtitles/test_search_show_id_no_year.yaml +222 -0
  242. subliminal-2.2.1/tests/cassettes/tvsubtitles/test_search_show_id_uk.yaml +234 -0
  243. subliminal-2.2.1/tests/cassettes/tvsubtitles/test_search_show_id_us.yaml +305 -0
  244. subliminal-2.2.1/tests/cassettes/tvsubtitles/test_search_show_id_year_in_title.yaml +222 -0
  245. subliminal-2.2.1/tests/conftest.py +492 -0
  246. subliminal-2.2.1/tests/providers/test_addic7ed.py +630 -0
  247. subliminal-2.2.1/tests/providers/test_gestdown.py +432 -0
  248. subliminal-2.2.1/tests/providers/test_napiprojekt.py +116 -0
  249. subliminal-2.2.1/tests/providers/test_opensubtitles.py +475 -0
  250. subliminal-2.2.1/tests/providers/test_opensubtitlescom.py +456 -0
  251. subliminal-2.2.1/tests/providers/test_podnapisi.py +283 -0
  252. subliminal-2.2.1/tests/providers/test_tvsubtitles.py +339 -0
  253. subliminal-2.2.1/tests/refiners/test_hash.py +19 -0
  254. subliminal-2.2.1/tests/refiners/test_omdb.py +197 -0
  255. subliminal-2.2.1/tests/refiners/test_tmdb.py +216 -0
  256. subliminal-2.2.1/tests/refiners/test_tvdb.py +373 -0
  257. subliminal-2.2.1/tests/test_cache.py +46 -0
  258. subliminal-2.2.1/tests/test_core.py +704 -0
  259. subliminal-2.2.1/tests/test_extensions.py +80 -0
  260. subliminal-2.2.1/tests/test_matches.py +143 -0
  261. subliminal-2.2.1/tests/test_provider.py +51 -0
  262. subliminal-2.2.1/tests/test_score.py +142 -0
  263. subliminal-2.2.1/tests/test_subtitle.py +163 -0
  264. subliminal-2.2.1/tests/test_utils.py +5 -0
  265. subliminal-2.2.1/tests/test_video.py +179 -0
  266. subliminal-2.2.1/tox.ini +7 -0
  267. subliminal-2.1.0/MANIFEST.in +0 -1
  268. subliminal-2.1.0/PKG-INFO +0 -445
  269. subliminal-2.1.0/requirements.txt +0 -1
  270. subliminal-2.1.0/setup.cfg +0 -15
  271. subliminal-2.1.0/setup.py +0 -104
  272. subliminal-2.1.0/subliminal/__init__.py +0 -21
  273. subliminal-2.1.0/subliminal/cache.py +0 -37
  274. subliminal-2.1.0/subliminal/cli.py +0 -498
  275. subliminal-2.1.0/subliminal/converters/addic7ed.py +0 -32
  276. subliminal-2.1.0/subliminal/converters/legendastv.py +0 -27
  277. subliminal-2.1.0/subliminal/converters/shooter.py +0 -23
  278. subliminal-2.1.0/subliminal/converters/thesubdb.py +0 -26
  279. subliminal-2.1.0/subliminal/converters/tvsubtitles.py +0 -25
  280. subliminal-2.1.0/subliminal/extensions.py +0 -114
  281. subliminal-2.1.0/subliminal/providers/addic7ed.py +0 -313
  282. subliminal-2.1.0/subliminal/providers/argenteam.py +0 -135
  283. subliminal-2.1.0/subliminal/providers/legendastv.py +0 -514
  284. subliminal-2.1.0/subliminal/providers/napiprojekt.py +0 -111
  285. subliminal-2.1.0/subliminal/providers/opensubtitles.py +0 -294
  286. subliminal-2.1.0/subliminal/providers/podnapisi.py +0 -178
  287. subliminal-2.1.0/subliminal/providers/shooter.py +0 -86
  288. subliminal-2.1.0/subliminal/providers/thesubdb.py +0 -92
  289. subliminal-2.1.0/subliminal/providers/tvsubtitles.py +0 -216
  290. subliminal-2.1.0/subliminal/refiners/hash.py +0 -44
  291. subliminal-2.1.0/subliminal/refiners/metadata.py +0 -99
  292. subliminal-2.1.0/subliminal/refiners/omdb.py +0 -193
  293. subliminal-2.1.0/subliminal/refiners/tvdb.py +0 -372
  294. subliminal-2.1.0/subliminal/score.py +0 -258
  295. subliminal-2.1.0/subliminal/subtitle.py +0 -214
  296. subliminal-2.1.0/subliminal/utils.py +0 -208
  297. subliminal-2.1.0/subliminal/video.py +0 -266
  298. subliminal-2.1.0/subliminal.egg-info/PKG-INFO +0 -445
  299. subliminal-2.1.0/subliminal.egg-info/SOURCES.txt +0 -45
  300. subliminal-2.1.0/subliminal.egg-info/requires.txt +0 -31
  301. {subliminal-2.1.0 → subliminal-2.2.1}/LICENSE +0 -0
  302. /subliminal-2.1.0/subliminal/converters/__init__.py → /subliminal-2.2.1/subliminal/py.typed +0 -0
  303. {subliminal-2.1.0 → subliminal-2.2.1}/subliminal.egg-info/dependency_links.txt +0 -0
  304. {subliminal-2.1.0 → subliminal-2.2.1}/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,52 @@
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
+
12
+ 2.2.0
13
+ ^^^^^
14
+ **release date:** 2024-06-24
15
+
16
+ * Drop python2 support, the supported versions are `>=3.8,<=3.12`.
17
+ * Load CLI options from a configuration file with the ``--config/-c`` option (`#1084 <https://github.com/Diaoul/subliminal/pull/1084>`_).
18
+ * 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>`_).
19
+ * Add opensubtitlescom provider
20
+ * Add gestdown provider
21
+ * Add tmdb refiner (requires a personal API key)
22
+ * Fix tvsubtitles provider
23
+ * Fix opensubtitles provider
24
+ * Fix napiprojekt provider
25
+ * Fix podnapisi provider to use JSON API
26
+ * Fix addic7ed provider
27
+ * Remove thesubdb provider
28
+ * Remove argenteam provider
29
+ * Remove shooter provider
30
+ * Remove legendastv provider
31
+ * Use `pyproject.toml` to specify the package configurations.* Add pre-commit hook (`#1115 <https://github.com/Diaoul/subliminal/pull/1115>`_).
32
+ * Use ruff to lint and format
33
+ * Use mypy to check types
34
+ * Add type annotations
35
+ * Drop dependencies: pysrt, appdirs, six, pytz
36
+ * Add dependencies:
37
+ - click-option-group>=0.5.6
38
+ - platformdirs>=4.2
39
+ - pysubs2>=1.7
40
+ - srt>=3.5
41
+ - tomli>=2
42
+ * Bump dependency versions:
43
+ - babelfish>=0.6.1
44
+ - chardet>=5.0
45
+ - click>=8.0
46
+ - dogpile.cache>=1.0
47
+ - enzyme>=0.5.0
48
+ - stevedore>=3.0
49
+
4
50
  2.1.0
5
51
  ^^^^^
6
52
  **release date:** 2020-05-02
@@ -0,0 +1,13 @@
1
+ include LICENSE
2
+ include HISTORY.rst
3
+ include CONTRIBUTING.md
4
+ include Dockerfile
5
+ include .dockerignore
6
+ include .pre-commit-config.yaml
7
+ include .readthedocs.yaml
8
+ include tox.ini
9
+
10
+ graft docs
11
+ graft tests
12
+
13
+ prune */__pycache__