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.
- mkv_episode_matcher-0.1.10/.github/funding.yml +2 -0
- mkv_episode_matcher-0.1.10/.github/workflows/python-publish.yml +52 -0
- {mkv_episode_matcher-0.1.5 → mkv_episode_matcher-0.1.10}/.gitignore +8 -5
- mkv_episode_matcher-0.1.10/.readthedocs.yml +34 -0
- {mkv_episode_matcher-0.1.5 → mkv_episode_matcher-0.1.10}/.vscode/settings.json +10 -10
- {mkv_episode_matcher-0.1.5 → mkv_episode_matcher-0.1.10}/PKG-INFO +53 -37
- mkv_episode_matcher-0.1.10/README.rst +86 -0
- mkv_episode_matcher-0.1.10/dist/mkv_episode_matcher-0.1.1-py3-none-any.whl +0 -0
- mkv_episode_matcher-0.1.10/dist/mkv_episode_matcher-0.1.1.tar.gz +0 -0
- mkv_episode_matcher-0.1.10/dist/mkv_episode_matcher-0.1.2-py3-none-any.whl +0 -0
- mkv_episode_matcher-0.1.10/dist/mkv_episode_matcher-0.1.2.tar.gz +0 -0
- mkv_episode_matcher-0.1.10/dist/mkv_episode_matcher-0.1.3-py3-none-any.whl +0 -0
- mkv_episode_matcher-0.1.10/dist/mkv_episode_matcher-0.1.3.tar.gz +0 -0
- mkv_episode_matcher-0.1.10/dist/mkv_episode_matcher-0.1.4-py3-none-any.whl +0 -0
- mkv_episode_matcher-0.1.10/dist/mkv_episode_matcher-0.1.4.tar.gz +0 -0
- mkv_episode_matcher-0.1.10/dist/mkv_episode_matcher-0.1.5-py3-none-any.whl +0 -0
- mkv_episode_matcher-0.1.10/dist/mkv_episode_matcher-0.1.5.tar.gz +0 -0
- mkv_episode_matcher-0.1.10/docs/Makefile +20 -0
- mkv_episode_matcher-0.1.10/docs/_build/doctrees/environment.pickle +0 -0
- mkv_episode_matcher-0.1.10/docs/_build/doctrees/index.doctree +0 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/.buildinfo +4 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/.doctrees/api.doctree +0 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/.doctrees/environment.pickle +0 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/.doctrees/generated/mkv_episode_matcher.doctree +0 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/.doctrees/index.doctree +0 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/.doctrees/mkv_episode_matcher.doctree +0 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/.doctrees/readme.doctree +0 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/_sources/api.rst.txt +55 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/_sources/generated/mkv_episode_matcher.rst.txt +23 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/_sources/index.rst.txt +19 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/_sources/mkv_episode_matcher.rst.txt +23 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/_sources/readme.rst.txt +7 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/_static/_sphinx_javascript_frameworks_compat.js +123 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/_static/alabaster.css +708 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/_static/basic.css +925 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/_static/css/badge_only.css +1 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/_static/css/fonts/Roboto-Slab-Bold.woff +0 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/_static/css/fonts/Roboto-Slab-Bold.woff2 +0 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/_static/css/fonts/Roboto-Slab-Regular.woff +0 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/_static/css/fonts/Roboto-Slab-Regular.woff2 +0 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/_static/css/fonts/fontawesome-webfont.eot +0 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/_static/css/fonts/fontawesome-webfont.svg +2671 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/_static/css/fonts/fontawesome-webfont.ttf +0 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/_static/css/fonts/fontawesome-webfont.woff +0 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/_static/css/fonts/fontawesome-webfont.woff2 +0 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/_static/css/fonts/lato-bold-italic.woff +0 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/_static/css/fonts/lato-bold-italic.woff2 +0 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/_static/css/fonts/lato-bold.woff +0 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/_static/css/fonts/lato-bold.woff2 +0 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/_static/css/fonts/lato-normal-italic.woff +0 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/_static/css/fonts/lato-normal-italic.woff2 +0 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/_static/css/fonts/lato-normal.woff +0 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/_static/css/fonts/lato-normal.woff2 +0 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/_static/css/theme.css +4 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/_static/custom.css +1 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/_static/debug.css +69 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/_static/doctools.js +156 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/_static/documentation_options.js +13 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/_static/file.png +0 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/_static/jquery.js +2 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/_static/js/badge_only.js +1 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/_static/js/html5shiv-printshiv.min.js +4 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/_static/js/html5shiv.min.js +4 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/_static/js/theme.js +1 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/_static/language_data.js +199 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/_static/minus.png +0 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/_static/plus.png +0 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/_static/pygments.css +75 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/_static/scripts/furo.js +3 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/_static/scripts/furo.js.LICENSE.txt +7 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/_static/scripts/furo.js.map +1 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/_static/searchtools.js +619 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/_static/skeleton.css +296 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/_static/sphinx_highlight.js +154 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/_static/styles/furo-extensions.css +2 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/_static/styles/furo-extensions.css.map +1 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/_static/styles/furo.css +2 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/_static/styles/furo.css.map +1 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/api.html +633 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/generated/mkv_episode_matcher.html +113 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/genindex.html +301 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/index.html +138 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/mkv_episode_matcher.html +106 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/objects.inv +0 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/py-modindex.html +152 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/readme.html +197 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/search.html +122 -0
- mkv_episode_matcher-0.1.10/docs/_build/html/searchindex.js +1 -0
- mkv_episode_matcher-0.1.10/docs/api.rst +55 -0
- mkv_episode_matcher-0.1.10/docs/conf.py +35 -0
- mkv_episode_matcher-0.1.10/docs/generated/mkv_episode_matcher.rst +23 -0
- mkv_episode_matcher-0.1.10/docs/index.rst +19 -0
- mkv_episode_matcher-0.1.10/docs/make.bat +35 -0
- mkv_episode_matcher-0.1.10/docs/mkv_episode_matcher.rst +23 -0
- mkv_episode_matcher-0.1.10/docs/readme.rst +7 -0
- mkv_episode_matcher-0.1.10/docs/requirements.txt +10 -0
- mkv_episode_matcher-0.1.10/mkv_episode_matcher/__init__.py +1 -0
- {mkv_episode_matcher-0.1.5 → mkv_episode_matcher-0.1.10}/mkv_episode_matcher/__main__.py +2 -2
- {mkv_episode_matcher-0.1.5 → mkv_episode_matcher-0.1.10}/mkv_episode_matcher/libraries/pgs2srt/.gitignore +2 -2
- {mkv_episode_matcher-0.1.5 → mkv_episode_matcher-0.1.10}/mkv_episode_matcher/libraries/pgs2srt/Libraries/SubZero/SubZero.py +295 -295
- {mkv_episode_matcher-0.1.5 → mkv_episode_matcher-0.1.10}/mkv_episode_matcher/libraries/pgs2srt/Libraries/SubZero/dictionaries/data.py +249 -249
- {mkv_episode_matcher-0.1.5 → mkv_episode_matcher-0.1.10}/mkv_episode_matcher/libraries/pgs2srt/Libraries/SubZero/post_processing.py +215 -215
- {mkv_episode_matcher-0.1.5 → mkv_episode_matcher-0.1.10}/mkv_episode_matcher/libraries/pgs2srt/README.md +26 -26
- {mkv_episode_matcher-0.1.5 → mkv_episode_matcher-0.1.10}/mkv_episode_matcher/libraries/pgs2srt/imagemaker.py +87 -87
- {mkv_episode_matcher-0.1.5 → mkv_episode_matcher-0.1.10}/mkv_episode_matcher/libraries/pgs2srt/pgs2srt.py +121 -121
- {mkv_episode_matcher-0.1.5 → mkv_episode_matcher-0.1.10}/mkv_episode_matcher/libraries/pgs2srt/pgsreader.py +221 -221
- {mkv_episode_matcher-0.1.5 → mkv_episode_matcher-0.1.10}/mkv_episode_matcher/libraries/pgs2srt/requirements.txt +4 -4
- {mkv_episode_matcher-0.1.5 → mkv_episode_matcher-0.1.10}/mkv_episode_matcher/mkv_to_srt.py +174 -174
- mkv_episode_matcher-0.1.10/mkv_episode_matcher/notebooks/get_subtitles_test.ipynb +252 -0
- {mkv_episode_matcher-0.1.5 → mkv_episode_matcher-0.1.10}/mkv_episode_matcher/requirements.txt +6 -7
- {mkv_episode_matcher-0.1.5 → mkv_episode_matcher-0.1.10}/mkv_episode_matcher/utils.py +5 -2
- mkv_episode_matcher-0.1.10/mkv_episode_matcher.egg-info/PKG-INFO +116 -0
- mkv_episode_matcher-0.1.10/mkv_episode_matcher.egg-info/SOURCES.txt +128 -0
- mkv_episode_matcher-0.1.10/mkv_episode_matcher.egg-info/dependency_links.txt +1 -0
- mkv_episode_matcher-0.1.10/mkv_episode_matcher.egg-info/entry_points.txt +2 -0
- mkv_episode_matcher-0.1.10/mkv_episode_matcher.egg-info/requires.txt +7 -0
- mkv_episode_matcher-0.1.10/mkv_episode_matcher.egg-info/top_level.txt +1 -0
- {mkv_episode_matcher-0.1.5 → mkv_episode_matcher-0.1.10}/pyproject.toml +80 -109
- mkv_episode_matcher-0.1.10/setup.cfg +15 -0
- mkv_episode_matcher-0.1.10/setup.py +16 -0
- mkv_episode_matcher-0.1.10/tests/__init__.py +0 -0
- mkv_episode_matcher-0.1.5/.coverage.DESKTOP-NTJ52LL.19040.XkHNEbEx +0 -0
- mkv_episode_matcher-0.1.5/.coverage.DESKTOP-NTJ52LL.24340.XjsBEKWx +0 -0
- mkv_episode_matcher-0.1.5/.github/workflows/ci.yml +0 -29
- mkv_episode_matcher-0.1.5/README.md +0 -72
- mkv_episode_matcher-0.1.5/docs/index.md +0 -17
- mkv_episode_matcher-0.1.5/mkdocs.yml +0 -6
- mkv_episode_matcher-0.1.5/mkv_episode_matcher/__init__.py +0 -1
- mkv_episode_matcher-0.1.5/mkv_episode_matcher/libraries/pgs2srt/.git +0 -1
- {mkv_episode_matcher-0.1.5 → mkv_episode_matcher-0.1.10}/.gitattributes +0 -0
- {mkv_episode_matcher-0.1.5 → mkv_episode_matcher-0.1.10}/.gitmodules +0 -0
- /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
- {mkv_episode_matcher-0.1.5 → mkv_episode_matcher-0.1.10}/mkv_episode_matcher/.gitattributes +0 -0
- {mkv_episode_matcher-0.1.5 → mkv_episode_matcher-0.1.10}/mkv_episode_matcher/config.py +0 -0
- {mkv_episode_matcher-0.1.5 → mkv_episode_matcher-0.1.10}/mkv_episode_matcher/episode_matcher.py +0 -0
- {mkv_episode_matcher-0.1.5/tests → mkv_episode_matcher-0.1.10/mkv_episode_matcher/libraries/pgs2srt}/__init__.py +0 -0
- {mkv_episode_matcher-0.1.5 → mkv_episode_matcher-0.1.10}/mkv_episode_matcher/tmdb_client.py +0 -0
|
@@ -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
|
|
@@ -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.
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
2
|
Name: mkv-episode-matcher
|
|
3
|
-
Version: 0.1.
|
|
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
|
-
|
|
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:
|
|
26
|
-
Requires-Dist: tmdb-client
|
|
27
|
-
Description-Content-Type: text/markdown
|
|
29
|
+
Requires-Dist: opensubtitlescom
|
|
28
30
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
31
|
+
===================
|
|
32
|
+
MKV Episode Matcher
|
|
33
|
+
===================
|
|
32
34
|
|
|
33
|
-
|
|
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.
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
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
|
-
|
|
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
|
-
|
|
60
|
+
.. code-block:: bash
|
|
55
61
|
|
|
56
|
-
|
|
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
|
-
|
|
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
|
-
|
|
69
|
+
.. code-block:: bash
|
|
62
70
|
|
|
63
|
-
|
|
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
|
-
|
|
73
|
+
How it works
|
|
74
|
+
============
|
|
71
75
|
|
|
72
|
-
|
|
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
|
-
|
|
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
|
-
|
|
103
|
+
Acknowledgments
|
|
104
|
+
===============
|
|
105
|
+
|
|
99
106
|
This product uses the TMDB API but is not endorsed or certified by TMDB.
|
|
100
|
-
|
|
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
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -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)
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -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,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`
|