plexflow 0.0.71__tar.gz → 0.0.73__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.
- {plexflow-0.0.71 → plexflow-0.0.73}/PKG-INFO +1 -1
- plexflow-0.0.73/plexflow/core/subtitles/providers/__pycache__/auto_subtitles.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/subtitles/providers/auto_subtitles.py +4 -3
- plexflow-0.0.73/plexflow/core/subtitles/providers/oss/__pycache__/download.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/subtitles/providers/oss/__pycache__/oss.cpython-312.pyc +0 -0
- plexflow-0.0.73/plexflow/core/subtitles/providers/oss/__pycache__/search.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/subtitles/providers/oss/__pycache__/unlimited_oss.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/subtitles/providers/oss/download.py +7 -5
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/subtitles/providers/oss/oss.py +6 -5
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/subtitles/providers/oss/search.py +5 -4
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/subtitles/providers/oss/unlimited_oss.py +7 -7
- {plexflow-0.0.71 → plexflow-0.0.73}/pyproject.toml +1 -1
- plexflow-0.0.71/plexflow/core/subtitles/providers/__pycache__/auto_subtitles.cpython-312.pyc +0 -0
- plexflow-0.0.71/plexflow/core/subtitles/providers/oss/__pycache__/download.cpython-312.pyc +0 -0
- plexflow-0.0.71/plexflow/core/subtitles/providers/oss/__pycache__/search.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/__main__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/.DS_Store +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/context/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/context/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/context/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/context/__pycache__/context.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/context/__pycache__/partial_context.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/context/__pycache__/partial_context.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/context/__pycache__/plexflow_context.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/context/__pycache__/plexflow_property.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/context/metadata/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/context/metadata/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/context/metadata/__pycache__/context.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/context/metadata/context.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/context/metadata/tmdb/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/context/metadata/tmdb/__pycache__/context.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/context/metadata/tmdb/context.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/context/partial_context.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/context/partials/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/context/partials/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/context/partials/__pycache__/ids.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/context/partials/__pycache__/watchlist.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/context/partials/cache.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/context/partials/context.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/context/partials/ids.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/context/partials/movie.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/context/partials/reports.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/context/partials/tgx_batch.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/context/partials/tgx_context.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/context/partials/torrents.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/context/partials/watchlist.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/context/plexflow_context.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/context/plexflow_property.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/context/root/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/context/root/__pycache__/context.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/context/root/context.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/context/select/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/context/select/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/context/select/__pycache__/context.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/context/select/context.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/context/torrent/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/context/torrent/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/context/torrent/__pycache__/context.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/context/torrent/context.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/context/torrent/tpb/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/context/torrent/tpb/__pycache__/context.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/context/torrent/tpb/context.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/context/torrent/yts/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/context/torrent/yts/__pycache__/context.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/context/torrent/yts/context.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/context/watchlist/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/context/watchlist/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/context/watchlist/__pycache__/context.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/context/watchlist/context.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/downloads/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/downloads/candidates/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/downloads/candidates/download_candidate.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/downloads/candidates/filtered.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/downloads/candidates/utils.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/env/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/env/env.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/genai/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/genai/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/genai/__pycache__/bot.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/genai/__pycache__/plexa.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/genai/bot.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/genai/plexa.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/genai/torrent/__pycache__/imdb_verify.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/genai/torrent/__pycache__/movie.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/genai/torrent/imdb_verify.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/genai/torrent/movie.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/genai/utils/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/genai/utils/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/genai/utils/__pycache__/loader.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/genai/utils/loader.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/__pycache__/auto_meta.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/__pycache__/auto_meta.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_meta.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/__pycache__/tmdb.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/auto/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/auto/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/auto/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/auto/__pycache__/episode.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/auto/__pycache__/episode.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/auto/__pycache__/item.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/auto/__pycache__/item.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/auto/__pycache__/movie.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/auto/__pycache__/movie.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/auto/__pycache__/season.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/auto/__pycache__/season.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/auto/__pycache__/show.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/auto/__pycache__/show.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/auto/episode.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/auto/item.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/auto/movie.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/auto/season.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/auto/show.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/imdb/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/imdb/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/imdb/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/imdb/__pycache__/episode.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/imdb/__pycache__/movie.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/imdb/__pycache__/movie.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/imdb/__pycache__/season.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/imdb/__pycache__/show.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/imdb/__pycache__/show.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/imdb/movie.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/imdb/show.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/moviemeter/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/moviemeter/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/moviemeter/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/moviemeter/__pycache__/episode.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/moviemeter/__pycache__/movie.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/moviemeter/__pycache__/movie.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/moviemeter/__pycache__/season.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/moviemeter/__pycache__/show.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/moviemeter/movie.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/plex/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/plex/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/plex/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/plex/__pycache__/episode.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/plex/__pycache__/movie.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/plex/__pycache__/movie.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/plex/__pycache__/season.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/plex/__pycache__/show.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/plex/movie.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/tmdb/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/tmdb/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/tmdb/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/tmdb/__pycache__/episode.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/tmdb/__pycache__/episode.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/tmdb/__pycache__/movie.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/tmdb/__pycache__/movie.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/tmdb/__pycache__/season.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/tmdb/__pycache__/season.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/tmdb/__pycache__/show.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/tmdb/__pycache__/show.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/tmdb/episode.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/tmdb/movie.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/tmdb/season.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/tmdb/show.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/tmdb.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/tvdb/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/tvdb/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/tvdb/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/tvdb/__pycache__/episode.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/tvdb/__pycache__/episode.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/tvdb/__pycache__/movie.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/tvdb/__pycache__/movie.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/tvdb/__pycache__/season.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/tvdb/__pycache__/season.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/tvdb/__pycache__/show.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/tvdb/__pycache__/show.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/tvdb/episode.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/tvdb/movie.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/tvdb/season.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/tvdb/show.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/providers/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/providers/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/providers/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/providers/imdb/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/providers/imdb/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/providers/imdb/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/providers/imdb/__pycache__/datatypes.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/providers/imdb/__pycache__/datatypes.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/providers/imdb/__pycache__/imdb.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/providers/imdb/__pycache__/imdb.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/providers/imdb/__pycache__/tmdb.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/providers/imdb/datatypes.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/providers/imdb/imdb.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/providers/moviemeter/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/providers/moviemeter/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/providers/moviemeter/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/providers/moviemeter/__pycache__/datatypes.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/providers/moviemeter/__pycache__/datatypes.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/providers/moviemeter/__pycache__/imdb.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/providers/moviemeter/__pycache__/moviemeter.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/providers/moviemeter/__pycache__/moviemeter.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/providers/moviemeter/__pycache__/tmdb.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/providers/moviemeter/datatypes.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/providers/moviemeter/moviemeter.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/providers/plex/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/providers/plex/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/providers/plex/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/providers/plex/__pycache__/datatypes.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/providers/plex/__pycache__/datatypes.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/providers/plex/__pycache__/imdb.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/providers/plex/__pycache__/moviemeter.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/providers/plex/__pycache__/plex.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/providers/plex/__pycache__/plex.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/providers/plex/__pycache__/tmdb.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/providers/plex/datatypes.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/providers/plex/plex.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/providers/tmdb/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/providers/tmdb/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/providers/tmdb/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/providers/tmdb/__pycache__/datatypes.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/providers/tmdb/__pycache__/datatypes.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/providers/tmdb/__pycache__/tmdb.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/providers/tmdb/__pycache__/tmdb.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/providers/tmdb/datatypes.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/providers/tmdb/tmdb.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/providers/tvdb/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/providers/tvdb/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/providers/tvdb/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/providers/tvdb/__pycache__/datatypes.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/providers/tvdb/__pycache__/datatypes.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/providers/tvdb/__pycache__/tmdb.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/providers/tvdb/__pycache__/tv_datatypes.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/providers/tvdb/__pycache__/tv_datatypes.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/providers/tvdb/__pycache__/tvdb.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/providers/tvdb/__pycache__/tvdb.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/providers/tvdb/datatypes.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/providers/tvdb/tv_datatypes.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/providers/tvdb/tvdb.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/providers/universal/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/providers/universal/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/providers/universal/__pycache__/movie.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/providers/universal/movie.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/providers/universal/old.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/providers/universal/show.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/plex/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/plex/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/plex/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/plex/__pycache__/library.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/plex/api/context/__pycache__/authorized.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/plex/api/context/__pycache__/discover.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/plex/api/context/authorized.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/plex/api/context/discover.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/plex/api/context/library.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/plex/discover/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/plex/discover/__pycache__/activity.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/plex/discover/__pycache__/comment.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/plex/discover/__pycache__/feed.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/plex/discover/activity.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/plex/discover/comment.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/plex/discover/feed.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/plex/hooks/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/plex/hooks/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/plex/hooks/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/plex/hooks/__pycache__/plex_authorized.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/plex/hooks/__pycache__/plex_authorized.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/plex/hooks/__pycache__/plexflow_database.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/plex/hooks/plex_authorized.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/plex/hooks/plexflow_database.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/plex/library/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/plex/library/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/plex/library/__pycache__/library.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/plex/library/library.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/plex/token/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/plex/token/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/plex/token/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/plex/token/__pycache__/auto_token.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/plex/token/__pycache__/auto_token.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/plex/token/auto_token.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/plex/utils/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/plex/utils/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/plex/utils/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/plex/utils/__pycache__/paginated.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/plex/utils/__pycache__/paginated.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/plex/utils/paginated.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/plex/watchlist/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/plex/watchlist/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/plex/watchlist/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/plex/watchlist/__pycache__/datatypes.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/plex/watchlist/__pycache__/datatypes.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/plex/watchlist/__pycache__/watchlist.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/plex/watchlist/__pycache__/watchlist.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/plex/watchlist/datatypes.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/plex/watchlist/watchlist.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/storage/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/storage/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/storage/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/storage/object/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/storage/object/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/storage/object/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/storage/object/__pycache__/plexflow_storage.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/storage/object/__pycache__/plexflow_storage.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/storage/object/__pycache__/redis_storage.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/storage/object/__pycache__/redis_storage.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/storage/object/plexflow_storage.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/storage/object/redis_storage.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/subtitles/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/subtitles/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/subtitles/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/subtitles/providers/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/subtitles/providers/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/subtitles/providers/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/subtitles/providers/__pycache__/auto_subtiltes.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/subtitles/providers/__pycache__/auto_subtitles.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/subtitles/providers/oss/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/subtitles/providers/oss/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/subtitles/providers/oss/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/subtitles/providers/oss/__pycache__/datatypes.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/subtitles/providers/oss/__pycache__/download.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/subtitles/providers/oss/__pycache__/oss.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/subtitles/providers/oss/__pycache__/oss_subtitle.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/subtitles/providers/oss/__pycache__/oss_subtitle.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/subtitles/providers/oss/__pycache__/search.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/subtitles/providers/oss/__pycache__/unlimited_oss.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/subtitles/providers/oss/datatypes.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/subtitles/providers/oss/old.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/subtitles/providers/oss/oss_subtitle.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/subtitles/providers/oss/utils/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/subtitles/providers/oss/utils/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/subtitles/providers/oss/utils/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/subtitles/providers/oss/utils/__pycache__/config.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/subtitles/providers/oss/utils/__pycache__/config.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/subtitles/providers/oss/utils/__pycache__/download_client.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/subtitles/providers/oss/utils/__pycache__/download_client.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/subtitles/providers/oss/utils/__pycache__/exceptions.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/subtitles/providers/oss/utils/__pycache__/exceptions.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/subtitles/providers/oss/utils/__pycache__/file_utils.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/subtitles/providers/oss/utils/__pycache__/file_utils.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/subtitles/providers/oss/utils/__pycache__/languages.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/subtitles/providers/oss/utils/__pycache__/languages.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/subtitles/providers/oss/utils/__pycache__/response_base.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/subtitles/providers/oss/utils/__pycache__/response_base.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/subtitles/providers/oss/utils/__pycache__/responses.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/subtitles/providers/oss/utils/__pycache__/responses.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/subtitles/providers/oss/utils/__pycache__/srt.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/subtitles/providers/oss/utils/__pycache__/srt.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/subtitles/providers/oss/utils/config.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/subtitles/providers/oss/utils/download_client.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/subtitles/providers/oss/utils/exceptions.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/subtitles/providers/oss/utils/file_utils.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/subtitles/providers/oss/utils/languages.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/subtitles/providers/oss/utils/response_base.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/subtitles/providers/oss/utils/responses.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/subtitles/providers/oss/utils/srt.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/subtitles/results/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/subtitles/results/__pycache__/subtitle.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/subtitles/results/subtitle.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/analyzers/__pycache__/analyzed_torrent.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/analyzers/__pycache__/analyzer.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/analyzers/analyzed_torrent.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/analyzers/analyzer.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/analyzers/torrentquest/__pycache__/analyzer.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/analyzers/torrentquest/analyzer.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/auto/__pycache__/auto_torrents.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/auto/auto_providers/auto/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/auto/auto_providers/auto/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/auto/auto_providers/auto/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/auto/auto_providers/auto/__pycache__/episode.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/auto/auto_providers/auto/__pycache__/episode.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/auto/auto_providers/auto/__pycache__/item.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/auto/auto_providers/auto/__pycache__/item.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/auto/auto_providers/auto/__pycache__/movie.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/auto/auto_providers/auto/__pycache__/movie.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/auto/auto_providers/auto/__pycache__/season.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/auto/auto_providers/auto/__pycache__/season.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/auto/auto_providers/auto/__pycache__/show.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/auto/auto_providers/auto/__pycache__/show.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/auto/auto_providers/auto/torrent.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/auto/auto_providers/tpb/torrent.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/auto/auto_torrents.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/ext/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/ext/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/ext/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/ext/__pycache__/ext.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/ext/__pycache__/extratorrent.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/ext/__pycache__/torrentquest.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/ext/__pycache__/tpb.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/ext/__pycache__/tpb.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/ext/__pycache__/utils.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/ext/__pycache__/utils.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/ext/ext.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/ext/utils.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/extratorrent/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/extratorrent/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/extratorrent/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/extratorrent/__pycache__/extratorrent.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/extratorrent/__pycache__/torrentquest.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/extratorrent/__pycache__/tpb.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/extratorrent/__pycache__/tpb.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/extratorrent/__pycache__/utils.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/extratorrent/__pycache__/utils.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/extratorrent/extratorrent.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/extratorrent/utils.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/eztv/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/eztv/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/eztv/__pycache__/eztv.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/eztv/__pycache__/tpb.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/eztv/__pycache__/utils.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/eztv/eztv.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/eztv/utils.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/rarbg2/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/rarbg2/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/rarbg2/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/rarbg2/__pycache__/rarbg2.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/rarbg2/__pycache__/rarbg2.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/rarbg2/__pycache__/utils.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/rarbg2/__pycache__/utils.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/rarbg2/rarbg2.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/rarbg2/utils.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/snowfl/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/snowfl/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/snowfl/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/snowfl/__pycache__/snowfl.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/snowfl/__pycache__/tpb.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/snowfl/__pycache__/utils.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/snowfl/__pycache__/utils.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/snowfl/__pycache__/yts.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/snowfl/__pycache__/yts.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/snowfl/snowfl.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/snowfl/utils.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/tgx/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/tgx/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/tgx/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/tgx/__pycache__/context.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/tgx/__pycache__/dump.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/tgx/__pycache__/tgx.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/tgx/__pycache__/utils.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/tgx/context.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/tgx/dump.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/tgx/tgx.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/tgx/utils.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/therarbg/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/therarbg/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/therarbg/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/therarbg/__pycache__/extratorrent.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/therarbg/__pycache__/therarbg.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/therarbg/__pycache__/torrentquest.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/therarbg/__pycache__/tpb.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/therarbg/__pycache__/tpb.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/therarbg/__pycache__/utils.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/therarbg/__pycache__/utils.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/therarbg/therarbg.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/therarbg/utils.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/torrentquest/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/torrentquest/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/torrentquest/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/torrentquest/__pycache__/torrentquest.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/torrentquest/__pycache__/tpb.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/torrentquest/__pycache__/tpb.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/torrentquest/__pycache__/utils.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/torrentquest/__pycache__/utils.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/torrentquest/torrentquest.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/torrentquest/utils.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/tpb/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/tpb/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/tpb/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/tpb/__pycache__/tpb.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/tpb/__pycache__/tpb.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/tpb/__pycache__/utils.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/tpb/__pycache__/utils.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/tpb/tpb.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/tpb/utils.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/yts/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/yts/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/yts/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/yts/__pycache__/tpb.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/yts/__pycache__/utils.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/yts/__pycache__/utils.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/yts/__pycache__/yts.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/yts/__pycache__/yts.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/yts/utils.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/providers/yts/yts.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/results/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/results/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/results/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/results/__pycache__/torrent.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/results/__pycache__/torrent.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/results/torrent.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/results/universal.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/torrents/results/utils.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/events/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/events/download/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/events/download/__pycache__/torrent_events.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/events/download/torrent_events.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/events/publish/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/events/publish/__pycache__/publish.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/events/publish/publish.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/logging/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/logging/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/logging/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/logging/__pycache__/log_setup.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/logging/__pycache__/log_setup.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/logging/log_setup.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/spiders/__pycache__/quiet_logger.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/spiders/quiet_logger.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/spiders/tgx/__pycache__/settings.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/spiders/tgx/__pycache__/spider.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/spiders/tgx/pipelines/__pycache__/dump_json_pipeline.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/spiders/tgx/pipelines/__pycache__/meta_pipeline.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/spiders/tgx/pipelines/__pycache__/publish_pipeline.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/spiders/tgx/pipelines/__pycache__/torrent_info_pipeline.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/spiders/tgx/pipelines/__pycache__/validation_pipeline.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/spiders/tgx/pipelines/dump_json_pipeline.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/spiders/tgx/pipelines/meta_pipeline.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/spiders/tgx/pipelines/publish_pipeline.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/spiders/tgx/pipelines/torrent_info_pipeline.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/spiders/tgx/pipelines/validation_pipeline.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/spiders/tgx/settings.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/spiders/tgx/spider.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/antibot/__pycache__/human_like_requests.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/antibot/human_like_requests.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/api/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/api/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/api/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/api/context/__pycache__/http.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/api/context/http.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/api/rest/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/api/rest/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/api/rest/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/api/rest/__pycache__/antibot_restful.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/api/rest/__pycache__/plexful.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/api/rest/__pycache__/restful.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/api/rest/__pycache__/restful.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/api/rest/__pycache__/url_builder.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/api/rest/antibot_restful.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/api/rest/plexful.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/api/rest/restful.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/api/rest/url_builder.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/captcha/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/captcha/bypass/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/captcha/bypass/__pycache__/decode_audio.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/captcha/bypass/decode_audio.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/download/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/download/__pycache__/gz.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/download/gz.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/filesystem/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/filesystem/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/filesystem/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/filesystem/__pycache__/search.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/filesystem/__pycache__/search.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/filesystem/search.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/gmail/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/gmail/__pycache__/mails.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/gmail/mails.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/hooks/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/hooks/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/hooks/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/hooks/__pycache__/http.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/hooks/__pycache__/http.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/hooks/__pycache__/postgresql.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/hooks/__pycache__/redis.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/hooks/__pycache__/redis.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/hooks/http.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/hooks/postgresql.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/hooks/redis.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/image/__pycache__/storage.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/image/storage.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/imdb/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/imdb/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/imdb/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/imdb/__pycache__/imdb_codes.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/imdb/__pycache__/imdb_codes.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/imdb/imdb_codes.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/llm/mistral.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/pubsub/__pycache__/consume.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/pubsub/__pycache__/produce.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/pubsub/consume.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/pubsub/produce.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/retry/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/retry/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/retry/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/retry/__pycache__/utils.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/retry/__pycache__/utils.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/retry/utils.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/strings/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/strings/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/strings/__pycache__/filesize.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/strings/__pycache__/filesize.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/strings/__pycache__/json_extract.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/strings/__pycache__/language.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/strings/filesize.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/strings/json_extract.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/strings/language.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/subtitle/__pycache__/search.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/subtitle/search.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/tasks/__pycache__/decorators.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/tasks/__pycache__/tasks.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/tasks/decorators.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/tasks/k8s/task.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/thread_safe/__pycache__/safe_list.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/thread_safe/__pycache__/safe_set.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/thread_safe/safe_list.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/thread_safe/safe_set.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/torrent/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/torrent/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/torrent/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/torrent/__pycache__/analyze.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/torrent/__pycache__/files.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/torrent/__pycache__/hash.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/torrent/__pycache__/hash.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/torrent/analyze.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/torrent/extract/__pycache__/common.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/torrent/extract/__pycache__/ext.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/torrent/extract/__pycache__/extratorrent.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/torrent/extract/__pycache__/tgx.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/torrent/extract/__pycache__/therarbg.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/torrent/extract/__pycache__/torrentquest.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/torrent/extract/common.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/torrent/extract/ext.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/torrent/extract/extratorrent.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/torrent/extract/kat.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/torrent/extract/tgx.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/torrent/extract/therarbg.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/torrent/extract/torrentquest.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/torrent/files.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/torrent/hash.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/transcribe/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/transcribe/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/transcribe/__pycache__/speech2text.cpython-311.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/transcribe/__pycache__/speech2text.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/transcribe/speech2text.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/video/__init__.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/video/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/video/__pycache__/audio.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/video/__pycache__/subtitle.cpython-312.pyc +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/video/audio.py +0 -0
- {plexflow-0.0.71 → plexflow-0.0.73}/plexflow/utils/video/subtitle.py +0 -0
Binary file
|
@@ -8,6 +8,7 @@ from plexflow.utils.retry.utils import execute_until_success
|
|
8
8
|
import time
|
9
9
|
from pathlib import Path
|
10
10
|
from plexflow.logging.log_setup import logger
|
11
|
+
import redis
|
11
12
|
|
12
13
|
class AutoSubtitles:
|
13
14
|
"""
|
@@ -22,20 +23,20 @@ class AutoSubtitles:
|
|
22
23
|
def __init__(self, imdb_id: str, languages: List[str] = (), **kwargs: Any) -> None:
|
23
24
|
self.imdb_id = imdb_id
|
24
25
|
self.languages = languages
|
25
|
-
self.
|
26
|
+
self.redis = kwargs.pop("redis", redis.Redis())
|
26
27
|
self.download = kwargs.pop("download", False)
|
27
28
|
self.download_folder = Path(kwargs.pop("download_folder", Path(".")))
|
28
29
|
self.kwargs = kwargs
|
29
30
|
|
30
31
|
def __iter__(self) -> Iterator[OSSSubtitle]:
|
31
|
-
subtitles = get_subtitles(self.imdb_id, self.languages, self.
|
32
|
+
subtitles = get_subtitles(self.imdb_id, self.languages, self.redis, ignore_blacklist=True, **self.kwargs)
|
32
33
|
if len(subtitles) == 0:
|
33
34
|
logger.warning(f"No subtitles found for IMDb ID: {self.imdb_id}")
|
34
35
|
return
|
35
36
|
|
36
37
|
for subtitle in tqdm(subtitles, total=len(subtitles)):
|
37
38
|
if self.download:
|
38
|
-
subtitle_path, skipped = execute_until_success(download_subtitle, delay_type='constant', delay=3, max_retries=10, subtitle=subtitle,
|
39
|
+
subtitle_path, skipped = execute_until_success(download_subtitle, delay_type='constant', delay=3, max_retries=10, subtitle=subtitle, r=self.redis, retry_exceptions=[OpenSubtitlesDownloadQuotaReachedException], save_dir=self.download_folder)
|
39
40
|
if not skipped:
|
40
41
|
logger.debug(f"Subtitle downloaded: {subtitle_path}")
|
41
42
|
# time.sleep(1.2)
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -6,8 +6,10 @@ from plexflow.utils.retry.utils import execute_until_success
|
|
6
6
|
from plexflow.utils.hooks.redis import UniversalRedisHook
|
7
7
|
from pathlib import Path
|
8
8
|
from plexflow.logging.log_setup import logger
|
9
|
+
import redis
|
10
|
+
import os
|
9
11
|
|
10
|
-
def download_subtitle(subtitle: OSSSubtitle,
|
12
|
+
def download_subtitle(subtitle: OSSSubtitle, r: redis.Redis = None, save_dir: Path = Path('.'), skip_exists: bool = True) -> None:
|
11
13
|
"""
|
12
14
|
Downloads and saves the subtitle file using the OpenSubtitlesManager.
|
13
15
|
|
@@ -26,8 +28,8 @@ def download_subtitle(subtitle: OSSSubtitle, redis_hook: UniversalRedisHook = No
|
|
26
28
|
return None, True
|
27
29
|
else:
|
28
30
|
with OpenSubtitlesManager.from_yaml(
|
29
|
-
yaml_file=
|
30
|
-
|
31
|
+
yaml_file=os.getenv("OSS_CREDENTIALS_PATH"),
|
32
|
+
r=r,
|
31
33
|
) as manager:
|
32
34
|
filepath.parent.mkdir(parents=True, exist_ok=True)
|
33
35
|
metapath.write_text(subtitle.subtitle.to_json())
|
@@ -43,6 +45,6 @@ def download_subtitles(subtitles: List[OSSSubtitle], **kwargs) -> None:
|
|
43
45
|
Returns:
|
44
46
|
None
|
45
47
|
"""
|
46
|
-
|
48
|
+
r = kwargs.pop("redis", redis.Redis())
|
47
49
|
for subtitle in subtitles:
|
48
|
-
execute_until_success(download_subtitle, delay_type='constant', delay=3, max_retries=10, subtitle=subtitle,
|
50
|
+
execute_until_success(download_subtitle, delay_type='constant', delay=3, max_retries=10, subtitle=subtitle, r=r, retry_exceptions=[OpenSubtitlesDownloadQuotaReachedException])
|
@@ -22,11 +22,12 @@ from plexflow.core.subtitles.providers.oss.utils.download_client import Download
|
|
22
22
|
from plexflow.core.subtitles.providers.oss.utils.languages import language_codes
|
23
23
|
from plexflow.utils.hooks.redis import UniversalRedisHook
|
24
24
|
from plexflow.logging.log_setup import logger
|
25
|
+
import redis
|
25
26
|
|
26
27
|
class OpenSubtitles:
|
27
28
|
"""OpenSubtitles REST API Wrapper."""
|
28
29
|
|
29
|
-
def __init__(self, user_agent: str, api_key: str,
|
30
|
+
def __init__(self, user_agent: str, api_key: str, r: redis.Redis = None):
|
30
31
|
"""Initialize the OpenSubtitles object.
|
31
32
|
|
32
33
|
:param api_key:
|
@@ -41,13 +42,13 @@ class OpenSubtitles:
|
|
41
42
|
self.downloads_dir = "."
|
42
43
|
self.user_downloads_remaining = 0
|
43
44
|
self.reset_time = None
|
44
|
-
self.
|
45
|
+
self.redis = r
|
45
46
|
|
46
47
|
@property
|
47
48
|
def cached_token(self):
|
48
49
|
try:
|
49
|
-
if self.
|
50
|
-
return self.
|
50
|
+
if self.redis:
|
51
|
+
return self.redis.get(f"@opensubtitles/{self.api_key}/token").decode("utf-8")
|
51
52
|
else:
|
52
53
|
return None
|
53
54
|
except Exception as e:
|
@@ -59,7 +60,7 @@ class OpenSubtitles:
|
|
59
60
|
def cached_token(self, token: str):
|
60
61
|
try:
|
61
62
|
logger.debug(f"caching token: {token}")
|
62
|
-
self.
|
63
|
+
self.redis.set(f"@opensubtitles/{self.api_key}/token", token, ex=60*60)
|
63
64
|
except Exception as e:
|
64
65
|
logger.error(f"Error setting cached token: {e}")
|
65
66
|
|
@@ -5,9 +5,10 @@ from plexflow.core.subtitles.providers.oss.oss_subtitle import OSSSubtitle
|
|
5
5
|
from typing import Any, List
|
6
6
|
from contextlib import contextmanager, ExitStack
|
7
7
|
from plexflow.utils.hooks.redis import UniversalRedisHook
|
8
|
+
import redis
|
8
9
|
|
9
10
|
@contextmanager
|
10
|
-
def open_subtitles_manager(credentials_path: str,
|
11
|
+
def open_subtitles_manager(credentials_path: str, r: redis.Redis = None, **kwargs: Any):
|
11
12
|
"""
|
12
13
|
Context manager for managing the OpenSubtitlesManager instance.
|
13
14
|
|
@@ -22,12 +23,12 @@ def open_subtitles_manager(credentials_path: str, redis_hook: UniversalRedisHook
|
|
22
23
|
with ExitStack() as stack:
|
23
24
|
manager = stack.enter_context(OpenSubtitlesManager.from_yaml(
|
24
25
|
yaml_file=credentials_path,
|
25
|
-
|
26
|
+
r=r,
|
26
27
|
**kwargs
|
27
28
|
))
|
28
29
|
yield manager
|
29
30
|
|
30
|
-
def get_subtitles(imdb_id: str, languages: List[str] = (),
|
31
|
+
def get_subtitles(imdb_id: str, languages: List[str] = (), r: redis.Redis = None, ignore_blacklist: bool = False, **kwargs) -> List[OSSSubtitle]:
|
31
32
|
"""
|
32
33
|
Retrieves subtitles using OpenSubtitlesManager.
|
33
34
|
|
@@ -40,7 +41,7 @@ def get_subtitles(imdb_id: str, languages: List[str] = (), redis_hook: Universal
|
|
40
41
|
"""
|
41
42
|
with open_subtitles_manager(
|
42
43
|
credentials_path=kwargs.pop("credentials_path"),
|
43
|
-
|
44
|
+
r=r,
|
44
45
|
ignore_blacklist=ignore_blacklist,
|
45
46
|
) as manager:
|
46
47
|
subtitles = manager.search(
|
@@ -53,7 +53,7 @@ class OpenSubtitlesManager:
|
|
53
53
|
REDIS_DEFAULT_PORT = 6379
|
54
54
|
DEFAULT_TTL = 60*60 # 1 hour
|
55
55
|
|
56
|
-
def __init__(self, credentials: List[Dict[str, str]],
|
56
|
+
def __init__(self, credentials: List[Dict[str, str]], r: redis.Redis = None, **kwargs):
|
57
57
|
"""
|
58
58
|
Initializes an instance of the OpenSubtitlesManager class.
|
59
59
|
|
@@ -64,7 +64,7 @@ class OpenSubtitlesManager:
|
|
64
64
|
redis_port (int, optional): The port of the Redis server used for blacklisting credentials. Defaults to 6379.
|
65
65
|
"""
|
66
66
|
self.credentials = credentials
|
67
|
-
self.
|
67
|
+
self.redis = r
|
68
68
|
self.current_instance = None
|
69
69
|
self.current_credential = None
|
70
70
|
self.ignore_blacklist = kwargs.get('ignore_blacklist', False)
|
@@ -72,7 +72,7 @@ class OpenSubtitlesManager:
|
|
72
72
|
self.instances = {}
|
73
73
|
|
74
74
|
@classmethod
|
75
|
-
def from_yaml(cls, yaml_file: str,
|
75
|
+
def from_yaml(cls, yaml_file: str, r: redis.Redis = None, **kwargs) -> 'OpenSubtitlesManager':
|
76
76
|
"""
|
77
77
|
Creates an instance of the OpenSubtitlesManager class from a YAML file.
|
78
78
|
|
@@ -86,7 +86,7 @@ class OpenSubtitlesManager:
|
|
86
86
|
"""
|
87
87
|
with open(yaml_file, 'r') as file:
|
88
88
|
credentials = yaml.safe_load(file)
|
89
|
-
return cls(credentials=credentials,
|
89
|
+
return cls(credentials=credentials, r=r, **kwargs)
|
90
90
|
|
91
91
|
def __enter__(self) -> OpenSubtitles:
|
92
92
|
"""
|
@@ -181,7 +181,7 @@ class OpenSubtitlesManager:
|
|
181
181
|
if api_key in self.instances:
|
182
182
|
return self.instances[api_key]
|
183
183
|
|
184
|
-
instance = OpenSubtitles(user_agent, api_key,
|
184
|
+
instance = OpenSubtitles(user_agent, api_key, r=self.redis)
|
185
185
|
instance.login(username, password)
|
186
186
|
|
187
187
|
# Cache the instance for later reuse
|
@@ -201,7 +201,7 @@ class OpenSubtitlesManager:
|
|
201
201
|
"""
|
202
202
|
key = self.generate_credential_key(credential)
|
203
203
|
self.logger.debug(f"Generated credential key: {key}")
|
204
|
-
return self.
|
204
|
+
return self.redis.exists(key)
|
205
205
|
|
206
206
|
def blacklist_credential(self):
|
207
207
|
"""
|
@@ -209,7 +209,7 @@ class OpenSubtitlesManager:
|
|
209
209
|
|
210
210
|
"""
|
211
211
|
key = self.generate_credential_key(self.current_credential)
|
212
|
-
self.
|
212
|
+
self.redis.setex(key, self.DEFAULT_TTL, 'blacklisted')
|
213
213
|
self.logger.debug(f"Credential blacklisted for {self.DEFAULT_TTL} seconds: {self.current_credential}")
|
214
214
|
self.logger.debug(f"Blacklisted credential key: {key}")
|
215
215
|
|
plexflow-0.0.71/plexflow/core/subtitles/providers/__pycache__/auto_subtitles.cpython-312.pyc
DELETED
Binary file
|
Binary file
|
Binary file
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/context/__pycache__/__init__.cpython-311.pyc
RENAMED
File without changes
|
{plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/context/__pycache__/__init__.cpython-312.pyc
RENAMED
File without changes
|
{plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/context/__pycache__/context.cpython-311.pyc
RENAMED
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
|
{plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/context/partials/__pycache__/ids.cpython-311.pyc
RENAMED
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
|
{plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/context/root/__pycache__/context.cpython-311.pyc
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/context/select/__pycache__/context.cpython-311.pyc
RENAMED
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
|
{plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/downloads/candidates/download_candidate.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/genai/__pycache__/__init__.cpython-311.pyc
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/genai/torrent/__pycache__/movie.cpython-311.pyc
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/genai/utils/__pycache__/__init__.cpython-311.pyc
RENAMED
File without changes
|
{plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/genai/utils/__pycache__/loader.cpython-311.pyc
RENAMED
File without changes
|
File without changes
|
File without changes
|
{plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/__pycache__/__init__.cpython-311.pyc
RENAMED
File without changes
|
{plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/__pycache__/__init__.cpython-312.pyc
RENAMED
File without changes
|
File without changes
|
{plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/__pycache__/__init__.cpython-311.pyc
RENAMED
File without changes
|
{plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/__pycache__/__init__.cpython-312.pyc
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/auto/__init__.py
RENAMED
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
|
{plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/auto/episode.py
RENAMED
File without changes
|
File without changes
|
{plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/auto/movie.py
RENAMED
File without changes
|
{plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/auto/season.py
RENAMED
File without changes
|
File without changes
|
{plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/imdb/__init__.py
RENAMED
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
|
{plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/imdb/movie.py
RENAMED
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
|
{plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/moviemeter/movie.py
RENAMED
File without changes
|
{plexflow-0.0.71 → plexflow-0.0.73}/plexflow/core/metadata/auto/auto_providers/plex/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|