mkv-episode-matcher 0.1.5__tar.gz → 0.1.10__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.

Potentially problematic release.


This version of mkv-episode-matcher might be problematic. Click here for more details.

Files changed (137) hide show
  1. mkv_episode_matcher-0.1.10/.github/funding.yml +2 -0
  2. mkv_episode_matcher-0.1.10/.github/workflows/python-publish.yml +52 -0
  3. {mkv_episode_matcher-0.1.5 → mkv_episode_matcher-0.1.10}/.gitignore +8 -5
  4. mkv_episode_matcher-0.1.10/.readthedocs.yml +34 -0
  5. {mkv_episode_matcher-0.1.5 → mkv_episode_matcher-0.1.10}/.vscode/settings.json +10 -10
  6. {mkv_episode_matcher-0.1.5 → mkv_episode_matcher-0.1.10}/PKG-INFO +53 -37
  7. mkv_episode_matcher-0.1.10/README.rst +86 -0
  8. mkv_episode_matcher-0.1.10/dist/mkv_episode_matcher-0.1.1-py3-none-any.whl +0 -0
  9. mkv_episode_matcher-0.1.10/dist/mkv_episode_matcher-0.1.1.tar.gz +0 -0
  10. mkv_episode_matcher-0.1.10/dist/mkv_episode_matcher-0.1.2-py3-none-any.whl +0 -0
  11. mkv_episode_matcher-0.1.10/dist/mkv_episode_matcher-0.1.2.tar.gz +0 -0
  12. mkv_episode_matcher-0.1.10/dist/mkv_episode_matcher-0.1.3-py3-none-any.whl +0 -0
  13. mkv_episode_matcher-0.1.10/dist/mkv_episode_matcher-0.1.3.tar.gz +0 -0
  14. mkv_episode_matcher-0.1.10/dist/mkv_episode_matcher-0.1.4-py3-none-any.whl +0 -0
  15. mkv_episode_matcher-0.1.10/dist/mkv_episode_matcher-0.1.4.tar.gz +0 -0
  16. mkv_episode_matcher-0.1.10/dist/mkv_episode_matcher-0.1.5-py3-none-any.whl +0 -0
  17. mkv_episode_matcher-0.1.10/dist/mkv_episode_matcher-0.1.5.tar.gz +0 -0
  18. mkv_episode_matcher-0.1.10/docs/Makefile +20 -0
  19. mkv_episode_matcher-0.1.10/docs/_build/doctrees/environment.pickle +0 -0
  20. mkv_episode_matcher-0.1.10/docs/_build/doctrees/index.doctree +0 -0
  21. mkv_episode_matcher-0.1.10/docs/_build/html/.buildinfo +4 -0
  22. mkv_episode_matcher-0.1.10/docs/_build/html/.doctrees/api.doctree +0 -0
  23. mkv_episode_matcher-0.1.10/docs/_build/html/.doctrees/environment.pickle +0 -0
  24. mkv_episode_matcher-0.1.10/docs/_build/html/.doctrees/generated/mkv_episode_matcher.doctree +0 -0
  25. mkv_episode_matcher-0.1.10/docs/_build/html/.doctrees/index.doctree +0 -0
  26. mkv_episode_matcher-0.1.10/docs/_build/html/.doctrees/mkv_episode_matcher.doctree +0 -0
  27. mkv_episode_matcher-0.1.10/docs/_build/html/.doctrees/readme.doctree +0 -0
  28. mkv_episode_matcher-0.1.10/docs/_build/html/_sources/api.rst.txt +55 -0
  29. mkv_episode_matcher-0.1.10/docs/_build/html/_sources/generated/mkv_episode_matcher.rst.txt +23 -0
  30. mkv_episode_matcher-0.1.10/docs/_build/html/_sources/index.rst.txt +19 -0
  31. mkv_episode_matcher-0.1.10/docs/_build/html/_sources/mkv_episode_matcher.rst.txt +23 -0
  32. mkv_episode_matcher-0.1.10/docs/_build/html/_sources/readme.rst.txt +7 -0
  33. mkv_episode_matcher-0.1.10/docs/_build/html/_static/_sphinx_javascript_frameworks_compat.js +123 -0
  34. mkv_episode_matcher-0.1.10/docs/_build/html/_static/alabaster.css +708 -0
  35. mkv_episode_matcher-0.1.10/docs/_build/html/_static/basic.css +925 -0
  36. mkv_episode_matcher-0.1.10/docs/_build/html/_static/css/badge_only.css +1 -0
  37. mkv_episode_matcher-0.1.10/docs/_build/html/_static/css/fonts/Roboto-Slab-Bold.woff +0 -0
  38. mkv_episode_matcher-0.1.10/docs/_build/html/_static/css/fonts/Roboto-Slab-Bold.woff2 +0 -0
  39. mkv_episode_matcher-0.1.10/docs/_build/html/_static/css/fonts/Roboto-Slab-Regular.woff +0 -0
  40. mkv_episode_matcher-0.1.10/docs/_build/html/_static/css/fonts/Roboto-Slab-Regular.woff2 +0 -0
  41. mkv_episode_matcher-0.1.10/docs/_build/html/_static/css/fonts/fontawesome-webfont.eot +0 -0
  42. mkv_episode_matcher-0.1.10/docs/_build/html/_static/css/fonts/fontawesome-webfont.svg +2671 -0
  43. mkv_episode_matcher-0.1.10/docs/_build/html/_static/css/fonts/fontawesome-webfont.ttf +0 -0
  44. mkv_episode_matcher-0.1.10/docs/_build/html/_static/css/fonts/fontawesome-webfont.woff +0 -0
  45. mkv_episode_matcher-0.1.10/docs/_build/html/_static/css/fonts/fontawesome-webfont.woff2 +0 -0
  46. mkv_episode_matcher-0.1.10/docs/_build/html/_static/css/fonts/lato-bold-italic.woff +0 -0
  47. mkv_episode_matcher-0.1.10/docs/_build/html/_static/css/fonts/lato-bold-italic.woff2 +0 -0
  48. mkv_episode_matcher-0.1.10/docs/_build/html/_static/css/fonts/lato-bold.woff +0 -0
  49. mkv_episode_matcher-0.1.10/docs/_build/html/_static/css/fonts/lato-bold.woff2 +0 -0
  50. mkv_episode_matcher-0.1.10/docs/_build/html/_static/css/fonts/lato-normal-italic.woff +0 -0
  51. mkv_episode_matcher-0.1.10/docs/_build/html/_static/css/fonts/lato-normal-italic.woff2 +0 -0
  52. mkv_episode_matcher-0.1.10/docs/_build/html/_static/css/fonts/lato-normal.woff +0 -0
  53. mkv_episode_matcher-0.1.10/docs/_build/html/_static/css/fonts/lato-normal.woff2 +0 -0
  54. mkv_episode_matcher-0.1.10/docs/_build/html/_static/css/theme.css +4 -0
  55. mkv_episode_matcher-0.1.10/docs/_build/html/_static/custom.css +1 -0
  56. mkv_episode_matcher-0.1.10/docs/_build/html/_static/debug.css +69 -0
  57. mkv_episode_matcher-0.1.10/docs/_build/html/_static/doctools.js +156 -0
  58. mkv_episode_matcher-0.1.10/docs/_build/html/_static/documentation_options.js +13 -0
  59. mkv_episode_matcher-0.1.10/docs/_build/html/_static/file.png +0 -0
  60. mkv_episode_matcher-0.1.10/docs/_build/html/_static/jquery.js +2 -0
  61. mkv_episode_matcher-0.1.10/docs/_build/html/_static/js/badge_only.js +1 -0
  62. mkv_episode_matcher-0.1.10/docs/_build/html/_static/js/html5shiv-printshiv.min.js +4 -0
  63. mkv_episode_matcher-0.1.10/docs/_build/html/_static/js/html5shiv.min.js +4 -0
  64. mkv_episode_matcher-0.1.10/docs/_build/html/_static/js/theme.js +1 -0
  65. mkv_episode_matcher-0.1.10/docs/_build/html/_static/language_data.js +199 -0
  66. mkv_episode_matcher-0.1.10/docs/_build/html/_static/minus.png +0 -0
  67. mkv_episode_matcher-0.1.10/docs/_build/html/_static/plus.png +0 -0
  68. mkv_episode_matcher-0.1.10/docs/_build/html/_static/pygments.css +75 -0
  69. mkv_episode_matcher-0.1.10/docs/_build/html/_static/scripts/furo.js +3 -0
  70. mkv_episode_matcher-0.1.10/docs/_build/html/_static/scripts/furo.js.LICENSE.txt +7 -0
  71. mkv_episode_matcher-0.1.10/docs/_build/html/_static/scripts/furo.js.map +1 -0
  72. mkv_episode_matcher-0.1.10/docs/_build/html/_static/searchtools.js +619 -0
  73. mkv_episode_matcher-0.1.10/docs/_build/html/_static/skeleton.css +296 -0
  74. mkv_episode_matcher-0.1.10/docs/_build/html/_static/sphinx_highlight.js +154 -0
  75. mkv_episode_matcher-0.1.10/docs/_build/html/_static/styles/furo-extensions.css +2 -0
  76. mkv_episode_matcher-0.1.10/docs/_build/html/_static/styles/furo-extensions.css.map +1 -0
  77. mkv_episode_matcher-0.1.10/docs/_build/html/_static/styles/furo.css +2 -0
  78. mkv_episode_matcher-0.1.10/docs/_build/html/_static/styles/furo.css.map +1 -0
  79. mkv_episode_matcher-0.1.10/docs/_build/html/api.html +633 -0
  80. mkv_episode_matcher-0.1.10/docs/_build/html/generated/mkv_episode_matcher.html +113 -0
  81. mkv_episode_matcher-0.1.10/docs/_build/html/genindex.html +301 -0
  82. mkv_episode_matcher-0.1.10/docs/_build/html/index.html +138 -0
  83. mkv_episode_matcher-0.1.10/docs/_build/html/mkv_episode_matcher.html +106 -0
  84. mkv_episode_matcher-0.1.10/docs/_build/html/objects.inv +0 -0
  85. mkv_episode_matcher-0.1.10/docs/_build/html/py-modindex.html +152 -0
  86. mkv_episode_matcher-0.1.10/docs/_build/html/readme.html +197 -0
  87. mkv_episode_matcher-0.1.10/docs/_build/html/search.html +122 -0
  88. mkv_episode_matcher-0.1.10/docs/_build/html/searchindex.js +1 -0
  89. mkv_episode_matcher-0.1.10/docs/api.rst +55 -0
  90. mkv_episode_matcher-0.1.10/docs/conf.py +35 -0
  91. mkv_episode_matcher-0.1.10/docs/generated/mkv_episode_matcher.rst +23 -0
  92. mkv_episode_matcher-0.1.10/docs/index.rst +19 -0
  93. mkv_episode_matcher-0.1.10/docs/make.bat +35 -0
  94. mkv_episode_matcher-0.1.10/docs/mkv_episode_matcher.rst +23 -0
  95. mkv_episode_matcher-0.1.10/docs/readme.rst +7 -0
  96. mkv_episode_matcher-0.1.10/docs/requirements.txt +10 -0
  97. mkv_episode_matcher-0.1.10/mkv_episode_matcher/__init__.py +1 -0
  98. {mkv_episode_matcher-0.1.5 → mkv_episode_matcher-0.1.10}/mkv_episode_matcher/__main__.py +2 -2
  99. {mkv_episode_matcher-0.1.5 → mkv_episode_matcher-0.1.10}/mkv_episode_matcher/libraries/pgs2srt/.gitignore +2 -2
  100. {mkv_episode_matcher-0.1.5 → mkv_episode_matcher-0.1.10}/mkv_episode_matcher/libraries/pgs2srt/Libraries/SubZero/SubZero.py +295 -295
  101. {mkv_episode_matcher-0.1.5 → mkv_episode_matcher-0.1.10}/mkv_episode_matcher/libraries/pgs2srt/Libraries/SubZero/dictionaries/data.py +249 -249
  102. {mkv_episode_matcher-0.1.5 → mkv_episode_matcher-0.1.10}/mkv_episode_matcher/libraries/pgs2srt/Libraries/SubZero/post_processing.py +215 -215
  103. {mkv_episode_matcher-0.1.5 → mkv_episode_matcher-0.1.10}/mkv_episode_matcher/libraries/pgs2srt/README.md +26 -26
  104. {mkv_episode_matcher-0.1.5 → mkv_episode_matcher-0.1.10}/mkv_episode_matcher/libraries/pgs2srt/imagemaker.py +87 -87
  105. {mkv_episode_matcher-0.1.5 → mkv_episode_matcher-0.1.10}/mkv_episode_matcher/libraries/pgs2srt/pgs2srt.py +121 -121
  106. {mkv_episode_matcher-0.1.5 → mkv_episode_matcher-0.1.10}/mkv_episode_matcher/libraries/pgs2srt/pgsreader.py +221 -221
  107. {mkv_episode_matcher-0.1.5 → mkv_episode_matcher-0.1.10}/mkv_episode_matcher/libraries/pgs2srt/requirements.txt +4 -4
  108. {mkv_episode_matcher-0.1.5 → mkv_episode_matcher-0.1.10}/mkv_episode_matcher/mkv_to_srt.py +174 -174
  109. mkv_episode_matcher-0.1.10/mkv_episode_matcher/notebooks/get_subtitles_test.ipynb +252 -0
  110. {mkv_episode_matcher-0.1.5 → mkv_episode_matcher-0.1.10}/mkv_episode_matcher/requirements.txt +6 -7
  111. {mkv_episode_matcher-0.1.5 → mkv_episode_matcher-0.1.10}/mkv_episode_matcher/utils.py +5 -2
  112. mkv_episode_matcher-0.1.10/mkv_episode_matcher.egg-info/PKG-INFO +116 -0
  113. mkv_episode_matcher-0.1.10/mkv_episode_matcher.egg-info/SOURCES.txt +128 -0
  114. mkv_episode_matcher-0.1.10/mkv_episode_matcher.egg-info/dependency_links.txt +1 -0
  115. mkv_episode_matcher-0.1.10/mkv_episode_matcher.egg-info/entry_points.txt +2 -0
  116. mkv_episode_matcher-0.1.10/mkv_episode_matcher.egg-info/requires.txt +7 -0
  117. mkv_episode_matcher-0.1.10/mkv_episode_matcher.egg-info/top_level.txt +1 -0
  118. {mkv_episode_matcher-0.1.5 → mkv_episode_matcher-0.1.10}/pyproject.toml +80 -109
  119. mkv_episode_matcher-0.1.10/setup.cfg +15 -0
  120. mkv_episode_matcher-0.1.10/setup.py +16 -0
  121. mkv_episode_matcher-0.1.10/tests/__init__.py +0 -0
  122. mkv_episode_matcher-0.1.5/.coverage.DESKTOP-NTJ52LL.19040.XkHNEbEx +0 -0
  123. mkv_episode_matcher-0.1.5/.coverage.DESKTOP-NTJ52LL.24340.XjsBEKWx +0 -0
  124. mkv_episode_matcher-0.1.5/.github/workflows/ci.yml +0 -29
  125. mkv_episode_matcher-0.1.5/README.md +0 -72
  126. mkv_episode_matcher-0.1.5/docs/index.md +0 -17
  127. mkv_episode_matcher-0.1.5/mkdocs.yml +0 -6
  128. mkv_episode_matcher-0.1.5/mkv_episode_matcher/__init__.py +0 -1
  129. mkv_episode_matcher-0.1.5/mkv_episode_matcher/libraries/pgs2srt/.git +0 -1
  130. {mkv_episode_matcher-0.1.5 → mkv_episode_matcher-0.1.10}/.gitattributes +0 -0
  131. {mkv_episode_matcher-0.1.5 → mkv_episode_matcher-0.1.10}/.gitmodules +0 -0
  132. /mkv_episode_matcher-0.1.5/mkv_episode_matcher/libraries/pgs2srt/__init__.py → /mkv_episode_matcher-0.1.10/docs/_build/html/_static/scripts/furo-extensions.js +0 -0
  133. {mkv_episode_matcher-0.1.5 → mkv_episode_matcher-0.1.10}/mkv_episode_matcher/.gitattributes +0 -0
  134. {mkv_episode_matcher-0.1.5 → mkv_episode_matcher-0.1.10}/mkv_episode_matcher/config.py +0 -0
  135. {mkv_episode_matcher-0.1.5 → mkv_episode_matcher-0.1.10}/mkv_episode_matcher/episode_matcher.py +0 -0
  136. {mkv_episode_matcher-0.1.5/tests → mkv_episode_matcher-0.1.10/mkv_episode_matcher/libraries/pgs2srt}/__init__.py +0 -0
  137. {mkv_episode_matcher-0.1.5 → mkv_episode_matcher-0.1.10}/mkv_episode_matcher/tmdb_client.py +0 -0
@@ -0,0 +1,2 @@
1
+ github: jsakkos
2
+ buy_me_a_coffee: jsakkos
@@ -0,0 +1,52 @@
1
+ name: Publish Python 🐍 distribution 📦 to PyPI and TestPyPI
2
+
3
+ on: push
4
+
5
+ jobs:
6
+ build:
7
+ name: Build distribution 📦
8
+ runs-on: ubuntu-latest
9
+
10
+ steps:
11
+ - uses: actions/checkout@v4
12
+ - name: Set up Python
13
+ uses: actions/setup-python@v5
14
+ with:
15
+ python-version: "3.x"
16
+ - name: Install pypa/build
17
+ run: >-
18
+ python3 -m
19
+ pip install
20
+ build
21
+ --user
22
+ - name: Build a binary wheel and a source tarball
23
+ run: python3 -m build
24
+ - name: Store the distribution packages
25
+ uses: actions/upload-artifact@v3
26
+ with:
27
+ name: python-package-distributions
28
+ path: dist/
29
+
30
+ publish-to-pypi:
31
+ name: >-
32
+ Publish Python 🐍 distribution 📦 to PyPI
33
+ if: startsWith(github.ref, 'refs/tags/') # only publish to PyPI on tag pushes
34
+ needs:
35
+ - build
36
+ runs-on: ubuntu-latest
37
+ environment:
38
+ name: pypi
39
+ url: https://pypi.org/p/mkv-episode-matcher/ # Replace <package-name> with your PyPI project name
40
+ permissions:
41
+ id-token: write # IMPORTANT: mandatory for trusted publishing
42
+
43
+ steps:
44
+ - name: Download all the dists
45
+ uses: actions/download-artifact@v3
46
+ with:
47
+ name: python-package-distributions
48
+ path: dist/
49
+ - name: Publish distribution 📦 to PyPI
50
+ uses: pypa/gh-action-pypi-publish@release/v1
51
+ with:
52
+ skip-existing: true
@@ -1,5 +1,8 @@
1
- *.log
2
- *.pyc
3
- *.cpython*
4
- *.pyc
5
- /mkv_episode_matcher/__pycache__
1
+ *.log
2
+ *.pyc
3
+ *.cpython*
4
+ *.pyc
5
+ /mkv_episode_matcher/__pycache__
6
+ build/
7
+ dist/
8
+ mkv_episode_matcher.egg-info
@@ -0,0 +1,34 @@
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
+ # Required
5
+ version: 2
6
+
7
+ # Set the OS, Python version and other tools you might need
8
+ build:
9
+ os: ubuntu-22.04
10
+ tools:
11
+ python: "3.12"
12
+ # You can also specify other tool versions:
13
+ # nodejs: "20"
14
+ # rust: "1.70"
15
+ # golang: "1.20"
16
+
17
+ # Build documentation in the "docs/" directory with Sphinx
18
+ sphinx:
19
+ configuration: docs/conf.py
20
+ # You can configure Sphinx to use a different builder, for instance use the dirhtml builder for simpler URLs
21
+ # builder: "dirhtml"
22
+ # Fail on all warnings to avoid broken references
23
+ # fail_on_warning: true
24
+ # Optionally build your docs in additional formats such as PDF and ePub
25
+ # formats:
26
+ # - pdf
27
+ # - epub
28
+
29
+ # Optional but recommended, declare the Python requirements required
30
+ # to build your documentation
31
+ # See https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html
32
+ python:
33
+ install:
34
+ - requirements: docs/requirements.txt
@@ -1,11 +1,11 @@
1
- {
2
- "python.testing.unittestArgs": [
3
- "-v",
4
- "-s",
5
- "./tests",
6
- "-p",
7
- "*test*.py"
8
- ],
9
- "python.testing.pytestEnabled": false,
10
- "python.testing.unittestEnabled": true
1
+ {
2
+ "python.testing.unittestArgs": [
3
+ "-v",
4
+ "-s",
5
+ "./tests",
6
+ "-p",
7
+ "*test*.py"
8
+ ],
9
+ "python.testing.pytestEnabled": false,
10
+ "python.testing.unittestEnabled": true
11
11
  }
@@ -1,12 +1,14 @@
1
- Metadata-Version: 2.3
1
+ Metadata-Version: 2.1
2
2
  Name: mkv-episode-matcher
3
- Version: 0.1.5
3
+ Version: 0.1.10
4
4
  Summary: The MKV Episode Matcher is a tool for identifying TV series episodes from MKV files and renaming the files accordingly.
5
+ Home-page: https://github.com/Jsakkos/mkv-episode-matcher
6
+ Author: Jonathan Sakkos
7
+ Author-email: Jsakkos <jonathansakkos@protonmail.com>
8
+ License: MIT
5
9
  Project-URL: Documentation, https://github.com/Jsakkos/mkv-episode-matcher#readme
6
10
  Project-URL: Issues, https://github.com/Jsakkos/mkv-episode-matcher/issues
7
11
  Project-URL: Source, https://github.com/Jsakkos/mkv-episode-matcher
8
- Author-email: Jsakkos <jonathansakkos@protonmail.com>
9
- License-Expression: MIT
10
12
  Classifier: Development Status :: 4 - Beta
11
13
  Classifier: Programming Language :: Python
12
14
  Classifier: Programming Language :: Python :: 3.8
@@ -17,27 +19,34 @@ Classifier: Programming Language :: Python :: 3.12
17
19
  Classifier: Programming Language :: Python :: Implementation :: CPython
18
20
  Classifier: Programming Language :: Python :: Implementation :: PyPy
19
21
  Requires-Python: >=3.8
20
- Requires-Dist: configparser
22
+ Description-Content-Type: text/x-rst
23
+ Requires-Dist: requests
21
24
  Requires-Dist: loguru
22
- Requires-Dist: opensubtitlescom
23
25
  Requires-Dist: pillow
26
+ Requires-Dist: configparser
27
+ Requires-Dist: tmdb_client
24
28
  Requires-Dist: pytesseract
25
- Requires-Dist: requests
26
- Requires-Dist: tmdb-client
27
- Description-Content-Type: text/markdown
29
+ Requires-Dist: opensubtitlescom
28
30
 
29
- # MKV Episode Matcher
30
-
31
- The MKV Episode Matcher is a tool for identifying TV series episodes from MKV files and renaming the files accordingly.
31
+ ===================
32
+ MKV Episode Matcher
33
+ ===================
32
34
 
33
- ## Quick start
35
+ |docs| |pypi|
36
+
37
+ The MKV Episode Matcher is a tool for identifying TV series episodes from MKV files and renaming the files accordingly.
38
+
39
+ Quick start
40
+ ===========
34
41
 
35
42
  To use the MKV Episode Matcher, follow these steps:
36
43
 
37
- 1. Clone this repository `git clone https://github.com/Jsakkos/mkv-episode-matcher`
38
- 1. Obtain an API key from TMDb (https://developers.themoviedb.org/authentication/getting-a-apikey).
39
- 2. (Optional) - Obtain an API key from Opensubtitles.com by creating an API consumer (https://www.opensubtitles.com/en/consumers)
40
- 3. Provide a filepath to your show directory. This is the main directory that contains all of the episodes for a specific show.
44
+ 1. Install ``pip install mkv-episode-matcher``
45
+ 2. Obtain an API key from TMDb (https://developers.themoviedb.org/authentication/getting-a-apikey).
46
+ 3. (Optional) - Obtain an API key from Opensubtitles.com by creating an API consumer (https://www.opensubtitles.com/en/consumers)
47
+ 4. Alternatively, add the .srt files to the cache directory. On Windows: ``C:\Users\YOUR_USER_NAME\.mkv-episode-matcher\cache\data\SHOW_NAME``. The files need to be named with the season and episode, e.g. ``Show Name - S01E01.srt``.
48
+ 5. Provide a filepath to your show directory. This is the main directory that contains all of the episodes for a specific show.
49
+
41
50
  The directory and subfolders must be arranged in the following structure:
42
51
 
43
52
  - Show name
@@ -45,33 +54,29 @@ The directory and subfolders must be arranged in the following structure:
45
54
  - Season 2
46
55
  - ...
47
56
  - Season n
48
- 2. Call `python __main__.py` with the TMDB_API_KEY and SHOW_DIR as arguments or in environment variables from your command line:
49
-
50
- ```
51
- python __main__.py --api-key `your-api-key` --show-dir /path/to/show
52
- ```
57
+
58
+ 6. Call ``mkv-match`` with the TMDB_API_KEY and SHOW_DIR as arguments or in environment variables from your command line:
53
59
 
54
- ## How it works
60
+ .. code-block:: bash
55
61
 
56
- MKV Episode Matcher extracts the subtitle text from each MKV file, then crossreferences the text against .srt subtitle files that are either user-provided or downloaded from Opensubtitles.com
62
+ python mkv-match --tmdb-api-key your-api-key --show-dir /path/to/show
57
63
 
64
+ Once TMDB_API_KEY is set, there's no need to enter it again, as it gets stored in the config.ini file.
58
65
 
59
- # Contributing
66
+ To get subtitles from opensubtitles.com, ensure that the appropriate credentials have been set, either via the CLI or in config.ini (On Windows: ``C:\Users\YOUR_USER_NAME\.mkv-episode-matcher\config.ini``).
67
+ Then add the ``--get-subs True`` flag to the CLI call
60
68
 
61
- Contributions are welcome! If you would like to contribute to the MKV Episode Matcher project, please follow these steps:
69
+ .. code-block:: bash
62
70
 
63
- 1. Fork the repository.
64
- 1. Clone the repository.
65
- 2. Create a new branch for your contribution.
66
- 3. Make your changes and commit them to your branch.
67
- 4. Push your branch to your forked repository.
68
- 5. Open a pull request to the main repository.
71
+ python mkv-match --show-dir /path/to/show --get-subs True
69
72
 
70
- Please ensure that your code follows the project's coding conventions and standards. Additionally, provide a clear and detailed description of your changes in the pull request.
73
+ How it works
74
+ ============
71
75
 
72
- Thank you for your contribution!
76
+ MKV Episode Matcher extracts the subtitle text from each MKV file, then cross-references the text against .srt subtitle files that are either user-provided or downloaded from Opensubtitles.com.
73
77
 
74
- # License
78
+ License
79
+ =======
75
80
 
76
81
  MIT License
77
82
 
@@ -95,6 +100,17 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
95
100
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
96
101
  SOFTWARE.
97
102
 
98
- # Acknowledgments
103
+ Acknowledgments
104
+ ===============
105
+
99
106
  This product uses the TMDB API but is not endorsed or certified by TMDB.
100
- ![The Movie DB Logo](https://www.themoviedb.org/assets/2/v4/logos/v2/blue_long_2-9665a76b1ae401a510ec1e0ca40ddcb3b0cfe45f1d51b77a308fea0845885648.svg)
107
+
108
+ .. image:: https://www.themoviedb.org/assets/2/v4/logos/v2/blue_long_2-9665a76b1ae401a510ec1e0ca40ddcb3b0cfe45f1d51b77a308fea0845885648.svg
109
+ :alt: The Movie Database
110
+ :target: https://www.themoviedb.org/
111
+
112
+ .. |docs| image:: https://readthedocs.org/projects/mkv-episode-matcher/badge/?version=latest
113
+ :target: https://mkv-episode-matcher.readthedocs.io/en/latest/?badge=latest
114
+ :alt: Documentation Status
115
+ .. |pypi| image:: https://badge.fury.io/py/mkv-episode-matcher.svg
116
+ :target: https://badge.fury.io/py/mkv-episode-matcher
@@ -0,0 +1,86 @@
1
+ ===================
2
+ MKV Episode Matcher
3
+ ===================
4
+
5
+ |docs| |pypi|
6
+
7
+ The MKV Episode Matcher is a tool for identifying TV series episodes from MKV files and renaming the files accordingly.
8
+
9
+ Quick start
10
+ ===========
11
+
12
+ To use the MKV Episode Matcher, follow these steps:
13
+
14
+ 1. Install ``pip install mkv-episode-matcher``
15
+ 2. Obtain an API key from TMDb (https://developers.themoviedb.org/authentication/getting-a-apikey).
16
+ 3. (Optional) - Obtain an API key from Opensubtitles.com by creating an API consumer (https://www.opensubtitles.com/en/consumers)
17
+ 4. Alternatively, add the .srt files to the cache directory. On Windows: ``C:\Users\YOUR_USER_NAME\.mkv-episode-matcher\cache\data\SHOW_NAME``. The files need to be named with the season and episode, e.g. ``Show Name - S01E01.srt``.
18
+ 5. Provide a filepath to your show directory. This is the main directory that contains all of the episodes for a specific show.
19
+
20
+ The directory and subfolders must be arranged in the following structure:
21
+
22
+ - Show name
23
+ - Season 1
24
+ - Season 2
25
+ - ...
26
+ - Season n
27
+
28
+ 6. Call ``mkv-match`` with the TMDB_API_KEY and SHOW_DIR as arguments or in environment variables from your command line:
29
+
30
+ .. code-block:: bash
31
+
32
+ python mkv-match --tmdb-api-key your-api-key --show-dir /path/to/show
33
+
34
+ Once TMDB_API_KEY is set, there's no need to enter it again, as it gets stored in the config.ini file.
35
+
36
+ To get subtitles from opensubtitles.com, ensure that the appropriate credentials have been set, either via the CLI or in config.ini (On Windows: ``C:\Users\YOUR_USER_NAME\.mkv-episode-matcher\config.ini``).
37
+ Then add the ``--get-subs True`` flag to the CLI call
38
+
39
+ .. code-block:: bash
40
+
41
+ python mkv-match --show-dir /path/to/show --get-subs True
42
+
43
+ How it works
44
+ ============
45
+
46
+ MKV Episode Matcher extracts the subtitle text from each MKV file, then cross-references the text against .srt subtitle files that are either user-provided or downloaded from Opensubtitles.com.
47
+
48
+ License
49
+ =======
50
+
51
+ MIT License
52
+
53
+ Copyright (c) 2024 Jonathan Sakkos
54
+
55
+ Permission is hereby granted, free of charge, to any person obtaining a copy
56
+ of this software and associated documentation files (the "Software"), to deal
57
+ in the Software without restriction, including without limitation the rights
58
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
59
+ copies of the Software, and to permit persons to whom the Software is
60
+ furnished to do so, subject to the following conditions:
61
+
62
+ The above copyright notice and this permission notice shall be included in all
63
+ copies or substantial portions of the Software.
64
+
65
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
66
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
67
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
68
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
69
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
70
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
71
+ SOFTWARE.
72
+
73
+ Acknowledgments
74
+ ===============
75
+
76
+ This product uses the TMDB API but is not endorsed or certified by TMDB.
77
+
78
+ .. image:: https://www.themoviedb.org/assets/2/v4/logos/v2/blue_long_2-9665a76b1ae401a510ec1e0ca40ddcb3b0cfe45f1d51b77a308fea0845885648.svg
79
+ :alt: The Movie Database
80
+ :target: https://www.themoviedb.org/
81
+
82
+ .. |docs| image:: https://readthedocs.org/projects/mkv-episode-matcher/badge/?version=latest
83
+ :target: https://mkv-episode-matcher.readthedocs.io/en/latest/?badge=latest
84
+ :alt: Documentation Status
85
+ .. |pypi| image:: https://badge.fury.io/py/mkv-episode-matcher.svg
86
+ :target: https://badge.fury.io/py/mkv-episode-matcher
@@ -0,0 +1,20 @@
1
+ # Minimal makefile for Sphinx documentation
2
+ #
3
+
4
+ # You can set these variables from the command line, and also
5
+ # from the environment for the first two.
6
+ SPHINXOPTS ?=
7
+ SPHINXBUILD ?= sphinx-build
8
+ SOURCEDIR = .
9
+ BUILDDIR = _build
10
+
11
+ # Put it first so that "make" without argument is like "make help".
12
+ help:
13
+ @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
14
+
15
+ .PHONY: help Makefile
16
+
17
+ # Catch-all target: route all unknown targets to Sphinx using the new
18
+ # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
19
+ %: Makefile
20
+ @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
@@ -0,0 +1,4 @@
1
+ # Sphinx build info version 1
2
+ # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
3
+ config: be74ac0df269b49cff07e4148b82b076
4
+ tags: 645f666f9bcd5a90fca523b33c5a78b7
@@ -0,0 +1,55 @@
1
+ =====================================
2
+ MKV Episode Matcher API Documentation
3
+ =====================================
4
+
5
+ CLI
6
+ ===
7
+
8
+ .. automodule:: mkv_episode_matcher.__main__
9
+ :members:
10
+ :undoc-members:
11
+ :show-inheritance:
12
+
13
+ Utils
14
+ =====
15
+ .. automodule:: mkv_episode_matcher.utils
16
+ :members:
17
+ :undoc-members:
18
+ :show-inheritance:
19
+
20
+ TMDB Interface
21
+ ==============
22
+ .. automodule:: mkv_episode_matcher.tmdb_client
23
+ :members:
24
+ :undoc-members:
25
+ :show-inheritance:
26
+
27
+ .. py:function:: get_episode_info(show_name, season, episode)
28
+
29
+ Get episode information for a given show, season, and episode number.
30
+
31
+ :param str show_name: The name of the show.
32
+ :param int season: The season number.
33
+ :param int episode: The episode number.
34
+ :return: A dictionary containing the episode information.
35
+
36
+ MKV Conversion
37
+ ==============
38
+ .. automodule:: mkv_episode_matcher.mkv_to_srt
39
+ :members:
40
+ :undoc-members:
41
+ :show-inheritance:
42
+
43
+ Episode Matching
44
+ ================
45
+ .. automodule:: mkv_episode_matcher.episode_matcher
46
+ :members:
47
+ :undoc-members:
48
+ :show-inheritance:
49
+
50
+ Configuration
51
+ =============
52
+ .. automodule:: mkv_episode_matcher.config
53
+ :members:
54
+ :undoc-members:
55
+ :show-inheritance:
@@ -0,0 +1,23 @@
1
+ mkv\_episode\_matcher
2
+ =====================
3
+
4
+ .. automodule:: mkv_episode_matcher
5
+
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
+
19
+
20
+
21
+
22
+
23
+
@@ -0,0 +1,19 @@
1
+ Welcome to MKV Episode Matcher's documentation!
2
+ ===============================================
3
+
4
+
5
+ .. toctree::
6
+ :maxdepth: 2
7
+
8
+ readme
9
+ api
10
+
11
+
12
+
13
+
14
+ Indices and tables
15
+ ==================
16
+
17
+ * :ref:`genindex`
18
+ * :ref:`modindex`
19
+ * :ref:`search`
@@ -0,0 +1,23 @@
1
+ mkv\_episode\_matcher
2
+ =====================
3
+
4
+ .. automodule:: mkv_episode_matcher
5
+
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
+
19
+
20
+
21
+
22
+
23
+
@@ -0,0 +1,7 @@
1
+ .. toctree::
2
+ :maxdepth: 2
3
+
4
+ readme
5
+
6
+ .. readme:
7
+ .. include:: ../README.rst