plexflow 0.0.64__tar.gz → 0.0.65__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.64 → plexflow-0.0.65}/PKG-INFO +5 -3
- plexflow-0.0.65/plexflow/core/torrents/auto/__pycache__/auto_torrents.cpython-312.pyc +0 -0
- plexflow-0.0.65/plexflow/core/torrents/auto/auto_providers/auto/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/auto/auto_torrents.py +4 -4
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/ext/__pycache__/ext.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/ext/ext.py +1 -1
- {plexflow-0.0.64/plexflow/core/torrents/providers/therarbg → plexflow-0.0.65/plexflow/core/torrents/providers/extratorrent}/__pycache__/extratorrent.cpython-312.pyc +0 -0
- plexflow-0.0.65/plexflow/core/torrents/providers/therarbg/__pycache__/therarbg.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/therarbg/therarbg.py +4 -4
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/torrentquest/__pycache__/torrentquest.cpython-312.pyc +0 -0
- plexflow-0.0.65/plexflow/core/torrents/providers/tpb/__pycache__/tpb.cpython-312.pyc +0 -0
- plexflow-0.0.65/plexflow/core/torrents/providers/tpb/tpb.py +19 -0
- plexflow-0.0.65/plexflow/core/torrents/providers/yts/__pycache__/yts.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/yts/yts.py +14 -7
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/results/__pycache__/torrent.cpython-312.pyc +0 -0
- plexflow-0.0.65/plexflow/utils/antibot/__pycache__/human_like_requests.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/antibot/human_like_requests.py +10 -0
- plexflow-0.0.65/plexflow/utils/api/context/__pycache__/http.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/api/context/http.py +32 -5
- plexflow-0.0.65/plexflow/utils/api/rest/__pycache__/plexful.cpython-312.pyc +0 -0
- plexflow-0.0.65/plexflow/utils/api/rest/__pycache__/url_builder.cpython-312.pyc +0 -0
- plexflow-0.0.65/plexflow/utils/api/rest/plexful.py +64 -0
- plexflow-0.0.65/plexflow/utils/api/rest/url_builder.py +9 -0
- plexflow-0.0.65/plexflow/utils/llm/mistral.py +139 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/pubsub/produce.py +22 -1
- plexflow-0.0.65/plexflow/utils/strings/__pycache__/json_extract.cpython-312.pyc +0 -0
- plexflow-0.0.65/plexflow/utils/strings/json_extract.py +434 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/subtitle/__pycache__/search.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/subtitle/search.py +1 -0
- plexflow-0.0.65/plexflow/utils/torrent/__pycache__/files.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/torrent/__pycache__/hash.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/torrent/extract/__pycache__/common.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/torrent/extract/__pycache__/ext.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/torrent/extract/__pycache__/therarbg.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/torrent/extract/common.py +1 -0
- plexflow-0.0.65/plexflow/utils/torrent/files.py +80 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/torrent/hash.py +7 -1
- plexflow-0.0.65/plexflow/utils/transcribe/__pycache__/__init__.cpython-312.pyc +0 -0
- plexflow-0.0.65/plexflow/utils/transcribe/__pycache__/speech2text.cpython-312.pyc +0 -0
- plexflow-0.0.65/plexflow/utils/transcribe/speech2text.py +106 -0
- plexflow-0.0.65/plexflow/utils/video/__pycache__/__init__.cpython-312.pyc +0 -0
- plexflow-0.0.65/plexflow/utils/video/__pycache__/audio.cpython-312.pyc +0 -0
- plexflow-0.0.65/plexflow/utils/video/audio.py +98 -0
- plexflow-0.0.65/plexflow/utils/video/subtitle.py +44 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/pyproject.toml +10 -3
- plexflow-0.0.64/plexflow/core/torrents/auto/__pycache__/auto_torrents.cpython-312.pyc +0 -0
- plexflow-0.0.64/plexflow/core/torrents/auto/auto_providers/auto/__pycache__/__init__.cpython-312.pyc +0 -0
- plexflow-0.0.64/plexflow/core/torrents/providers/therarbg/__pycache__/therarbg.cpython-312.pyc +0 -0
- plexflow-0.0.64/plexflow/core/torrents/providers/tpb/__pycache__/tpb.cpython-312.pyc +0 -0
- plexflow-0.0.64/plexflow/core/torrents/providers/tpb/tpb.py +0 -17
- plexflow-0.0.64/plexflow/core/torrents/providers/yts/__pycache__/yts.cpython-312.pyc +0 -0
- plexflow-0.0.64/plexflow/utils/antibot/__pycache__/human_like_requests.cpython-312.pyc +0 -0
- plexflow-0.0.64/plexflow/utils/api/context/__pycache__/http.cpython-312.pyc +0 -0
- plexflow-0.0.64/plexflow/utils/torrent/__pycache__/files.cpython-312.pyc +0 -0
- plexflow-0.0.64/plexflow/utils/torrent/files.py +0 -36
- plexflow-0.0.64/plexflow/utils/transcribe/speech2text.py +0 -40
- plexflow-0.0.64/plexflow/utils/video/subtitle.py +0 -73
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/__main__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/.DS_Store +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/context/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/context/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/context/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/context/__pycache__/context.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/context/__pycache__/partial_context.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/context/__pycache__/partial_context.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/context/__pycache__/plexflow_context.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/context/__pycache__/plexflow_property.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/context/metadata/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/context/metadata/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/context/metadata/__pycache__/context.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/context/metadata/context.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/context/metadata/tmdb/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/context/metadata/tmdb/__pycache__/context.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/context/metadata/tmdb/context.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/context/partial_context.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/context/partials/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/context/partials/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/context/partials/__pycache__/ids.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/context/partials/__pycache__/watchlist.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/context/partials/cache.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/context/partials/context.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/context/partials/ids.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/context/partials/movie.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/context/partials/tgx_batch.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/context/partials/tgx_context.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/context/partials/torrents.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/context/partials/watchlist.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/context/plexflow_context.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/context/plexflow_property.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/context/root/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/context/root/__pycache__/context.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/context/root/context.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/context/select/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/context/select/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/context/select/__pycache__/context.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/context/select/context.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/context/torrent/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/context/torrent/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/context/torrent/__pycache__/context.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/context/torrent/context.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/context/torrent/tpb/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/context/torrent/tpb/__pycache__/context.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/context/torrent/tpb/context.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/context/torrent/yts/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/context/torrent/yts/__pycache__/context.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/context/torrent/yts/context.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/context/watchlist/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/context/watchlist/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/context/watchlist/__pycache__/context.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/context/watchlist/context.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/downloads/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/downloads/candidates/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/downloads/candidates/download_candidate.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/downloads/candidates/filtered.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/downloads/candidates/utils.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/env/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/env/env.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/genai/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/genai/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/genai/__pycache__/bot.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/genai/__pycache__/plexa.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/genai/bot.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/genai/plexa.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/genai/torrent/__pycache__/imdb_verify.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/genai/torrent/__pycache__/movie.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/genai/torrent/imdb_verify.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/genai/torrent/movie.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/genai/utils/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/genai/utils/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/genai/utils/__pycache__/loader.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/genai/utils/loader.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/__pycache__/auto_meta.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/__pycache__/auto_meta.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_meta.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/__pycache__/tmdb.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/auto/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/auto/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/auto/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/auto/__pycache__/episode.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/auto/__pycache__/episode.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/auto/__pycache__/item.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/auto/__pycache__/item.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/auto/__pycache__/movie.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/auto/__pycache__/movie.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/auto/__pycache__/season.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/auto/__pycache__/season.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/auto/__pycache__/show.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/auto/__pycache__/show.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/auto/episode.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/auto/item.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/auto/movie.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/auto/season.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/auto/show.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/imdb/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/imdb/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/imdb/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/imdb/__pycache__/episode.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/imdb/__pycache__/movie.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/imdb/__pycache__/movie.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/imdb/__pycache__/season.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/imdb/__pycache__/show.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/imdb/__pycache__/show.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/imdb/movie.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/imdb/show.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/moviemeter/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/moviemeter/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/moviemeter/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/moviemeter/__pycache__/episode.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/moviemeter/__pycache__/movie.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/moviemeter/__pycache__/movie.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/moviemeter/__pycache__/season.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/moviemeter/__pycache__/show.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/moviemeter/movie.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/plex/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/plex/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/plex/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/plex/__pycache__/episode.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/plex/__pycache__/movie.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/plex/__pycache__/movie.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/plex/__pycache__/season.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/plex/__pycache__/show.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/plex/movie.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/tmdb/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/tmdb/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/tmdb/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/tmdb/__pycache__/episode.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/tmdb/__pycache__/episode.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/tmdb/__pycache__/movie.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/tmdb/__pycache__/movie.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/tmdb/__pycache__/season.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/tmdb/__pycache__/season.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/tmdb/__pycache__/show.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/tmdb/__pycache__/show.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/tmdb/episode.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/tmdb/movie.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/tmdb/season.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/tmdb/show.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/tmdb.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/tvdb/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/tvdb/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/tvdb/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/tvdb/__pycache__/episode.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/tvdb/__pycache__/episode.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/tvdb/__pycache__/movie.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/tvdb/__pycache__/movie.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/tvdb/__pycache__/season.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/tvdb/__pycache__/season.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/tvdb/__pycache__/show.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/tvdb/__pycache__/show.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/tvdb/episode.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/tvdb/movie.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/tvdb/season.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/auto/auto_providers/tvdb/show.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/providers/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/providers/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/providers/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/providers/imdb/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/providers/imdb/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/providers/imdb/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/providers/imdb/__pycache__/datatypes.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/providers/imdb/__pycache__/datatypes.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/providers/imdb/__pycache__/imdb.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/providers/imdb/__pycache__/imdb.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/providers/imdb/__pycache__/tmdb.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/providers/imdb/datatypes.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/providers/imdb/imdb.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/providers/moviemeter/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/providers/moviemeter/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/providers/moviemeter/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/providers/moviemeter/__pycache__/datatypes.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/providers/moviemeter/__pycache__/datatypes.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/providers/moviemeter/__pycache__/imdb.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/providers/moviemeter/__pycache__/moviemeter.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/providers/moviemeter/__pycache__/moviemeter.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/providers/moviemeter/__pycache__/tmdb.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/providers/moviemeter/datatypes.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/providers/moviemeter/moviemeter.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/providers/plex/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/providers/plex/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/providers/plex/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/providers/plex/__pycache__/datatypes.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/providers/plex/__pycache__/datatypes.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/providers/plex/__pycache__/imdb.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/providers/plex/__pycache__/moviemeter.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/providers/plex/__pycache__/plex.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/providers/plex/__pycache__/plex.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/providers/plex/__pycache__/tmdb.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/providers/plex/datatypes.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/providers/plex/plex.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/providers/tmdb/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/providers/tmdb/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/providers/tmdb/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/providers/tmdb/__pycache__/datatypes.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/providers/tmdb/__pycache__/datatypes.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/providers/tmdb/__pycache__/tmdb.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/providers/tmdb/__pycache__/tmdb.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/providers/tmdb/datatypes.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/providers/tmdb/tmdb.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/providers/tvdb/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/providers/tvdb/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/providers/tvdb/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/providers/tvdb/__pycache__/datatypes.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/providers/tvdb/__pycache__/datatypes.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/providers/tvdb/__pycache__/tmdb.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/providers/tvdb/__pycache__/tv_datatypes.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/providers/tvdb/__pycache__/tv_datatypes.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/providers/tvdb/__pycache__/tvdb.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/providers/tvdb/__pycache__/tvdb.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/providers/tvdb/datatypes.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/providers/tvdb/tv_datatypes.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/providers/tvdb/tvdb.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/providers/universal/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/providers/universal/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/providers/universal/__pycache__/movie.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/providers/universal/movie.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/providers/universal/old.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/metadata/providers/universal/show.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/plex/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/plex/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/plex/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/plex/__pycache__/library.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/plex/api/context/__pycache__/authorized.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/plex/api/context/__pycache__/discover.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/plex/api/context/authorized.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/plex/api/context/discover.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/plex/api/context/library.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/plex/discover/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/plex/discover/__pycache__/activity.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/plex/discover/__pycache__/comment.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/plex/discover/__pycache__/feed.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/plex/discover/activity.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/plex/discover/comment.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/plex/discover/feed.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/plex/hooks/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/plex/hooks/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/plex/hooks/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/plex/hooks/__pycache__/plex_authorized.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/plex/hooks/__pycache__/plex_authorized.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/plex/hooks/__pycache__/plexflow_database.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/plex/hooks/plex_authorized.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/plex/hooks/plexflow_database.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/plex/library/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/plex/library/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/plex/library/__pycache__/library.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/plex/library/library.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/plex/token/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/plex/token/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/plex/token/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/plex/token/__pycache__/auto_token.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/plex/token/__pycache__/auto_token.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/plex/token/auto_token.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/plex/utils/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/plex/utils/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/plex/utils/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/plex/utils/__pycache__/paginated.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/plex/utils/__pycache__/paginated.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/plex/utils/paginated.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/plex/watchlist/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/plex/watchlist/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/plex/watchlist/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/plex/watchlist/__pycache__/datatypes.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/plex/watchlist/__pycache__/datatypes.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/plex/watchlist/__pycache__/watchlist.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/plex/watchlist/__pycache__/watchlist.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/plex/watchlist/datatypes.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/plex/watchlist/watchlist.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/storage/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/storage/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/storage/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/storage/object/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/storage/object/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/storage/object/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/storage/object/__pycache__/plexflow_storage.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/storage/object/__pycache__/plexflow_storage.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/storage/object/__pycache__/redis_storage.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/storage/object/__pycache__/redis_storage.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/storage/object/plexflow_storage.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/storage/object/redis_storage.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/subtitles/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/subtitles/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/subtitles/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/subtitles/providers/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/subtitles/providers/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/subtitles/providers/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/subtitles/providers/__pycache__/auto_subtiltes.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/subtitles/providers/__pycache__/auto_subtitles.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/subtitles/providers/__pycache__/auto_subtitles.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/subtitles/providers/auto_subtitles.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/subtitles/providers/oss/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/subtitles/providers/oss/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/subtitles/providers/oss/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/subtitles/providers/oss/__pycache__/datatypes.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/subtitles/providers/oss/__pycache__/download.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/subtitles/providers/oss/__pycache__/download.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/subtitles/providers/oss/__pycache__/oss.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/subtitles/providers/oss/__pycache__/oss.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/subtitles/providers/oss/__pycache__/oss_subtitle.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/subtitles/providers/oss/__pycache__/oss_subtitle.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/subtitles/providers/oss/__pycache__/search.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/subtitles/providers/oss/__pycache__/search.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/subtitles/providers/oss/__pycache__/unlimited_oss.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/subtitles/providers/oss/__pycache__/unlimited_oss.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/subtitles/providers/oss/datatypes.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/subtitles/providers/oss/download.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/subtitles/providers/oss/old.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/subtitles/providers/oss/oss.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/subtitles/providers/oss/oss_subtitle.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/subtitles/providers/oss/search.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/subtitles/providers/oss/unlimited_oss.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/subtitles/providers/oss/utils/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/subtitles/providers/oss/utils/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/subtitles/providers/oss/utils/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/subtitles/providers/oss/utils/__pycache__/config.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/subtitles/providers/oss/utils/__pycache__/config.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/subtitles/providers/oss/utils/__pycache__/download_client.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/subtitles/providers/oss/utils/__pycache__/download_client.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/subtitles/providers/oss/utils/__pycache__/exceptions.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/subtitles/providers/oss/utils/__pycache__/exceptions.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/subtitles/providers/oss/utils/__pycache__/file_utils.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/subtitles/providers/oss/utils/__pycache__/file_utils.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/subtitles/providers/oss/utils/__pycache__/languages.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/subtitles/providers/oss/utils/__pycache__/languages.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/subtitles/providers/oss/utils/__pycache__/response_base.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/subtitles/providers/oss/utils/__pycache__/response_base.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/subtitles/providers/oss/utils/__pycache__/responses.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/subtitles/providers/oss/utils/__pycache__/responses.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/subtitles/providers/oss/utils/__pycache__/srt.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/subtitles/providers/oss/utils/__pycache__/srt.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/subtitles/providers/oss/utils/config.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/subtitles/providers/oss/utils/download_client.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/subtitles/providers/oss/utils/exceptions.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/subtitles/providers/oss/utils/file_utils.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/subtitles/providers/oss/utils/languages.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/subtitles/providers/oss/utils/response_base.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/subtitles/providers/oss/utils/responses.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/subtitles/providers/oss/utils/srt.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/subtitles/results/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/subtitles/results/__pycache__/subtitle.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/subtitles/results/subtitle.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/analyzers/__pycache__/analyzed_torrent.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/analyzers/__pycache__/analyzer.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/analyzers/analyzed_torrent.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/analyzers/analyzer.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/analyzers/torrentquest/__pycache__/analyzer.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/analyzers/torrentquest/analyzer.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/auto/auto_providers/auto/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/auto/auto_providers/auto/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/auto/auto_providers/auto/__pycache__/episode.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/auto/auto_providers/auto/__pycache__/episode.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/auto/auto_providers/auto/__pycache__/item.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/auto/auto_providers/auto/__pycache__/item.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/auto/auto_providers/auto/__pycache__/movie.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/auto/auto_providers/auto/__pycache__/movie.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/auto/auto_providers/auto/__pycache__/season.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/auto/auto_providers/auto/__pycache__/season.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/auto/auto_providers/auto/__pycache__/show.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/auto/auto_providers/auto/__pycache__/show.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/auto/auto_providers/auto/torrent.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/auto/auto_providers/tpb/torrent.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/ext/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/ext/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/ext/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/ext/__pycache__/extratorrent.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/ext/__pycache__/torrentquest.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/ext/__pycache__/tpb.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/ext/__pycache__/tpb.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/ext/__pycache__/utils.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/ext/__pycache__/utils.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/ext/utils.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/extratorrent/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/extratorrent/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/extratorrent/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/extratorrent/__pycache__/torrentquest.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/extratorrent/__pycache__/tpb.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/extratorrent/__pycache__/tpb.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/extratorrent/__pycache__/utils.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/extratorrent/__pycache__/utils.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/extratorrent/extratorrent.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/extratorrent/utils.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/eztv/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/eztv/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/eztv/__pycache__/eztv.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/eztv/__pycache__/tpb.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/eztv/__pycache__/utils.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/eztv/eztv.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/eztv/utils.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/rarbg2/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/rarbg2/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/rarbg2/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/rarbg2/__pycache__/rarbg2.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/rarbg2/__pycache__/rarbg2.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/rarbg2/__pycache__/utils.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/rarbg2/__pycache__/utils.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/rarbg2/rarbg2.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/rarbg2/utils.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/snowfl/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/snowfl/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/snowfl/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/snowfl/__pycache__/snowfl.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/snowfl/__pycache__/tpb.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/snowfl/__pycache__/utils.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/snowfl/__pycache__/utils.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/snowfl/__pycache__/yts.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/snowfl/__pycache__/yts.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/snowfl/snowfl.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/snowfl/utils.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/tgx/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/tgx/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/tgx/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/tgx/__pycache__/context.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/tgx/__pycache__/dump.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/tgx/__pycache__/tgx.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/tgx/__pycache__/utils.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/tgx/context.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/tgx/dump.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/tgx/tgx.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/tgx/utils.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/therarbg/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/therarbg/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/therarbg/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.64/plexflow/core/torrents/providers/extratorrent → plexflow-0.0.65/plexflow/core/torrents/providers/therarbg}/__pycache__/extratorrent.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/therarbg/__pycache__/torrentquest.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/therarbg/__pycache__/tpb.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/therarbg/__pycache__/tpb.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/therarbg/__pycache__/utils.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/therarbg/__pycache__/utils.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/therarbg/utils.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/torrentquest/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/torrentquest/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/torrentquest/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/torrentquest/__pycache__/tpb.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/torrentquest/__pycache__/tpb.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/torrentquest/__pycache__/utils.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/torrentquest/__pycache__/utils.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/torrentquest/torrentquest.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/torrentquest/utils.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/tpb/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/tpb/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/tpb/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/tpb/__pycache__/tpb.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/tpb/__pycache__/utils.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/tpb/__pycache__/utils.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/tpb/utils.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/yts/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/yts/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/yts/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/yts/__pycache__/tpb.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/yts/__pycache__/utils.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/yts/__pycache__/utils.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/yts/__pycache__/yts.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/providers/yts/utils.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/results/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/results/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/results/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/results/__pycache__/torrent.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/results/torrent.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/results/universal.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/core/torrents/results/utils.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/events/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/events/download/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/events/download/__pycache__/torrent_events.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/events/download/torrent_events.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/events/publish/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/events/publish/__pycache__/publish.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/events/publish/publish.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/logging/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/logging/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/logging/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/logging/__pycache__/log_setup.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/logging/__pycache__/log_setup.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/logging/log_setup.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/spiders/__pycache__/quiet_logger.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/spiders/quiet_logger.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/spiders/tgx/__pycache__/settings.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/spiders/tgx/__pycache__/spider.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/spiders/tgx/pipelines/__pycache__/dump_json_pipeline.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/spiders/tgx/pipelines/__pycache__/meta_pipeline.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/spiders/tgx/pipelines/__pycache__/publish_pipeline.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/spiders/tgx/pipelines/__pycache__/torrent_info_pipeline.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/spiders/tgx/pipelines/__pycache__/validation_pipeline.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/spiders/tgx/pipelines/dump_json_pipeline.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/spiders/tgx/pipelines/meta_pipeline.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/spiders/tgx/pipelines/publish_pipeline.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/spiders/tgx/pipelines/torrent_info_pipeline.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/spiders/tgx/pipelines/validation_pipeline.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/spiders/tgx/settings.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/spiders/tgx/spider.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/api/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/api/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/api/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/api/rest/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/api/rest/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/api/rest/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/api/rest/__pycache__/antibot_restful.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/api/rest/__pycache__/restful.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/api/rest/__pycache__/restful.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/api/rest/antibot_restful.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/api/rest/restful.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/captcha/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/captcha/bypass/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/captcha/bypass/__pycache__/decode_audio.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/captcha/bypass/decode_audio.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/download/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/download/__pycache__/gz.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/download/gz.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/filesystem/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/filesystem/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/filesystem/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/filesystem/__pycache__/search.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/filesystem/__pycache__/search.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/filesystem/search.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/gmail/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/gmail/__pycache__/mails.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/gmail/mails.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/hooks/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/hooks/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/hooks/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/hooks/__pycache__/http.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/hooks/__pycache__/http.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/hooks/__pycache__/postgresql.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/hooks/__pycache__/redis.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/hooks/__pycache__/redis.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/hooks/http.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/hooks/postgresql.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/hooks/redis.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/image/__pycache__/storage.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/image/storage.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/imdb/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/imdb/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/imdb/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/imdb/__pycache__/imdb_codes.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/imdb/__pycache__/imdb_codes.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/imdb/imdb_codes.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/pubsub/__pycache__/consume.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/pubsub/__pycache__/produce.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/pubsub/consume.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/retry/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/retry/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/retry/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/retry/__pycache__/utils.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/retry/__pycache__/utils.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/retry/utils.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/strings/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/strings/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/strings/__pycache__/filesize.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/strings/__pycache__/filesize.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/strings/__pycache__/language.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/strings/filesize.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/strings/language.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/tasks/__pycache__/decorators.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/tasks/__pycache__/tasks.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/tasks/decorators.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/tasks/k8s/task.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/thread_safe/__pycache__/safe_list.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/thread_safe/__pycache__/safe_set.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/thread_safe/safe_list.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/thread_safe/safe_set.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/torrent/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/torrent/__pycache__/__init__.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/torrent/__pycache__/__init__.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/torrent/__pycache__/analyze.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/torrent/__pycache__/hash.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/torrent/analyze.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/torrent/extract/__pycache__/extratorrent.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/torrent/extract/__pycache__/tgx.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/torrent/extract/__pycache__/torrentquest.cpython-312.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/torrent/extract/ext.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/torrent/extract/extratorrent.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/torrent/extract/kat.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/torrent/extract/tgx.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/torrent/extract/therarbg.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/torrent/extract/torrentquest.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/transcribe/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/transcribe/__pycache__/speech2text.cpython-311.pyc +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/video/__init__.py +0 -0
- {plexflow-0.0.64 → plexflow-0.0.65}/plexflow/utils/video/__pycache__/subtitle.cpython-312.pyc +0 -0
@@ -1,17 +1,18 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: plexflow
|
3
|
-
Version: 0.0.
|
3
|
+
Version: 0.0.65
|
4
4
|
Summary: A short description of the package.
|
5
5
|
Home-page: https://www.example.com
|
6
6
|
License: MIT
|
7
7
|
Keywords: keyword1,keyword2,keyword3
|
8
8
|
Author: Your Name
|
9
9
|
Author-email: you@example.com
|
10
|
-
Requires-Python:
|
10
|
+
Requires-Python: >=3.12,<3.13
|
11
11
|
Classifier: Development Status :: 5 - Production/Stable
|
12
12
|
Classifier: Intended Audience :: Developers
|
13
13
|
Classifier: License :: OSI Approved :: MIT License
|
14
14
|
Classifier: Programming Language :: Python :: 3
|
15
|
+
Classifier: Programming Language :: Python :: 3.12
|
15
16
|
Classifier: Programming Language :: Python :: 3.10
|
16
17
|
Requires-Dist: apache-airflow (>=2.9.3,<3.0.0)
|
17
18
|
Requires-Dist: apache-airflow-providers-cncf-kubernetes (>=8.3.3,<9.0.0)
|
@@ -42,7 +43,8 @@ Requires-Dist: langchain-google-genai (>=1.0.8,<2.0.0)
|
|
42
43
|
Requires-Dist: langchain-groq (>=0.1.9,<0.2.0)
|
43
44
|
Requires-Dist: langcodes (>=3.4.0,<4.0.0)
|
44
45
|
Requires-Dist: lxml (>=5.1.0,<6.0.0)
|
45
|
-
Requires-Dist:
|
46
|
+
Requires-Dist: mistralai (>=1.2.5,<2.0.0)
|
47
|
+
Requires-Dist: numpy (==2.0)
|
46
48
|
Requires-Dist: parse-torrent-title (>=2.8.1,<3.0.0)
|
47
49
|
Requires-Dist: playwright (>=1.41.2,<2.0.0)
|
48
50
|
Requires-Dist: playwright-stealth (>=1.0.6,<2.0.0)
|
Binary file
|
plexflow-0.0.65/plexflow/core/torrents/auto/auto_providers/auto/__pycache__/__init__.cpython-312.pyc
ADDED
Binary file
|
@@ -10,17 +10,17 @@ from plexflow.core.torrents.results.torrent import Torrent
|
|
10
10
|
|
11
11
|
class AutoTorrents:
|
12
12
|
@staticmethod
|
13
|
-
def movie(imdb_id: str = None, query: str = None, source: str = 'yts', **kwargs) -> List[Torrent]:
|
13
|
+
def movie(imdb_id: str = None, query: str = None, source: str = 'yts', headless: bool = True, **kwargs) -> List[Torrent]:
|
14
14
|
if source == 'tpb':
|
15
|
-
return TPB(**kwargs).search(query=imdb_id)
|
15
|
+
return TPB(**kwargs).search(query=imdb_id, headless=headless, **kwargs)
|
16
16
|
elif source == 'yts':
|
17
|
-
return YTS(**kwargs).search(query=imdb_id)
|
17
|
+
return YTS(**kwargs).search(query=imdb_id, headless=headless, **kwargs)
|
18
18
|
elif source == 'torrentquest':
|
19
19
|
return TorrentQuest(**kwargs).search(query=query)
|
20
20
|
elif source == 'extratorrent':
|
21
21
|
return ExtraTorrent(**kwargs).search(query=query)
|
22
22
|
elif source == 'therarbg':
|
23
|
-
return TheRarbg(**kwargs).search(query=imdb_id)
|
23
|
+
return TheRarbg(**kwargs).search(query=imdb_id, headless=headless, **kwargs)
|
24
24
|
elif source == 'ext':
|
25
25
|
return Ext(**kwargs).search(query=query)
|
26
26
|
elif source == 'snowfl':
|
Binary file
|
Binary file
|
plexflow-0.0.65/plexflow/core/torrents/providers/therarbg/__pycache__/therarbg.cpython-312.pyc
ADDED
Binary file
|
@@ -1,17 +1,17 @@
|
|
1
|
-
from plexflow.utils.api.rest.
|
1
|
+
from plexflow.utils.api.rest.plexful import Plexful
|
2
2
|
from plexflow.utils.api.rest.restful import Restful
|
3
3
|
from plexflow.core.torrents.providers.therarbg.utils import TheRarbgSearchResult
|
4
4
|
from plexflow.utils.torrent.extract.therarbg import extract_torrent_results
|
5
5
|
from typing import List
|
6
6
|
|
7
|
-
class TheRarbg(
|
7
|
+
class TheRarbg(Plexful):
|
8
8
|
def __init__(self, base_url: str = 'https://therarbg.com'):
|
9
9
|
super().__init__(base_url=base_url)
|
10
10
|
|
11
|
-
def search(self, query: str) -> List[TheRarbgSearchResult]:
|
11
|
+
def search(self, query: str, headless: bool = True, **kwargs) -> List[TheRarbgSearchResult]:
|
12
12
|
response = self.get(f'/get-posts/keywords:{query}/')
|
13
13
|
|
14
14
|
response.raise_for_status
|
15
15
|
|
16
|
-
data = extract_torrent_results(html=response.text)
|
16
|
+
data = extract_torrent_results(html=response.text if not headless else response.html)
|
17
17
|
return list(map(lambda t: TheRarbgSearchResult(**t), data))
|
Binary file
|
Binary file
|
@@ -0,0 +1,19 @@
|
|
1
|
+
from plexflow.utils.api.rest.plexful import Plexful
|
2
|
+
from plexflow.core.torrents.providers.tpb.utils import TPBSearchResult
|
3
|
+
|
4
|
+
class TPB(Plexful):
|
5
|
+
def __init__(self, base_url: str = 'https://apibay.org'):
|
6
|
+
super().__init__(base_url=base_url)
|
7
|
+
|
8
|
+
def search(self, query: str, headless: bool = True, **kwargs) -> list[TPBSearchResult]:
|
9
|
+
response = self.get('/q.php', query_params={
|
10
|
+
'q': query,
|
11
|
+
}, headless=headless, **kwargs)
|
12
|
+
|
13
|
+
if headless:
|
14
|
+
response.raise_for_status()
|
15
|
+
data = response.json()
|
16
|
+
else:
|
17
|
+
data = response.json
|
18
|
+
|
19
|
+
return list(map(lambda x: TPBSearchResult(**x), data))
|
Binary file
|
@@ -1,18 +1,25 @@
|
|
1
|
-
from plexflow.utils.api.rest.
|
1
|
+
from plexflow.utils.api.rest.plexful import Plexful
|
2
2
|
from plexflow.core.torrents.providers.yts.utils import YTSSearchResult
|
3
3
|
|
4
|
-
class YTS(
|
4
|
+
class YTS(Plexful):
|
5
5
|
def __init__(self, base_url: str = 'https://yts.mx'):
|
6
6
|
super().__init__(base_url=base_url)
|
7
7
|
|
8
|
-
def search(self, query: str):
|
8
|
+
def search(self, query: str, headless: bool = True, **kwargs) -> list[YTSSearchResult]:
|
9
|
+
if 'wait_value' not in kwargs:
|
10
|
+
kwargs['wait_value'] = 'Query was successful'
|
9
11
|
response = self.get(url='/api/v2/list_movies.json', query_params={
|
10
12
|
'query_term': query,
|
11
|
-
})
|
13
|
+
}, headless=headless, **kwargs)
|
12
14
|
|
13
|
-
|
14
|
-
|
15
|
-
|
15
|
+
if headless:
|
16
|
+
print(response.content)
|
17
|
+
|
18
|
+
response.raise_for_status()
|
19
|
+
|
20
|
+
data = response.json()
|
21
|
+
else:
|
22
|
+
data = response.json
|
16
23
|
|
17
24
|
data = data.get("data", {})
|
18
25
|
movies = data.get("movies", [])
|
Binary file
|
Binary file
|
@@ -8,6 +8,8 @@ from selenium.webdriver.support.ui import WebDriverWait
|
|
8
8
|
from selenium.webdriver.support import expected_conditions as EC
|
9
9
|
from selenium.common.exceptions import TimeoutException
|
10
10
|
from seleniumbase import SB
|
11
|
+
from bs4 import BeautifulSoup
|
12
|
+
import json
|
11
13
|
|
12
14
|
class HumanLikeRequestCapture:
|
13
15
|
def __init__(self, url, html, screenshot, cookies):
|
@@ -16,6 +18,14 @@ class HumanLikeRequestCapture:
|
|
16
18
|
self.screenshot = screenshot
|
17
19
|
self.cookies = cookies
|
18
20
|
|
21
|
+
@property
|
22
|
+
def json(self):
|
23
|
+
try:
|
24
|
+
soup = BeautifulSoup(self.html, 'html.parser')
|
25
|
+
return json.loads(soup.get_text())
|
26
|
+
except json.decoder.JSONDecodeError:
|
27
|
+
return None
|
28
|
+
|
19
29
|
class HumanLikeRequestSession:
|
20
30
|
def __init__(self, use_xvfb=False):
|
21
31
|
self.use_xvfb = use_xvfb
|
@@ -1,21 +1,47 @@
|
|
1
1
|
import requests
|
2
|
+
from requests.adapters import HTTPAdapter
|
2
3
|
from typing import Optional, Dict
|
4
|
+
import dns.resolver
|
5
|
+
|
6
|
+
class DNSHTTPAdapter(HTTPAdapter):
|
7
|
+
def __init__(self, dns_servers, *args, **kwargs):
|
8
|
+
self.dns_servers = dns_servers
|
9
|
+
super().__init__(*args, **kwargs)
|
10
|
+
|
11
|
+
def resolve(self, hostname):
|
12
|
+
resolver = dns.resolver.Resolver()
|
13
|
+
resolver.nameservers = self.dns_servers
|
14
|
+
answers = resolver.resolve(hostname, 'A')
|
15
|
+
return [answer.to_text() for answer in answers]
|
16
|
+
|
17
|
+
def send(self, request, **kwargs):
|
18
|
+
# Resolve the hostname using the custom DNS servers
|
19
|
+
hostname = request.url.split('/')[2].split(':')[0]
|
20
|
+
ip_addresses = self.resolve(hostname)
|
21
|
+
if ip_addresses:
|
22
|
+
request.url = request.url.replace(hostname, ip_addresses[0])
|
23
|
+
return super().send(request, **kwargs)
|
3
24
|
|
4
25
|
class HttpRequestContext:
|
5
26
|
"""
|
6
27
|
A base class for setting up a default request context for headers, params, etc.
|
7
|
-
|
28
|
+
|
8
29
|
Args:
|
9
30
|
base_url (str): The base URL for the API.
|
10
31
|
default_headers (dict, optional): The default headers for the API. Defaults to None.
|
11
32
|
default_params (dict, optional): The default parameters for the API. Defaults to None.
|
12
|
-
|
33
|
+
dns_servers (list, optional): A list of DNS servers to use for custom DNS resolution. Defaults to None.
|
34
|
+
|
13
35
|
Attributes:
|
14
36
|
session (requests.Session): The requests Session instance.
|
15
37
|
"""
|
16
|
-
|
17
|
-
def __init__(self, base_url: str, default_headers: Optional[Dict[str, str]] = None, default_params: Optional[Dict[str, str]] = None):
|
38
|
+
|
39
|
+
def __init__(self, base_url: str, default_headers: Optional[Dict[str, str]] = None, default_params: Optional[Dict[str, str]] = None, dns_servers: Optional[list] = None):
|
18
40
|
self.session = requests.Session()
|
41
|
+
if dns_servers:
|
42
|
+
adapter = DNSHTTPAdapter(list(dns_servers))
|
43
|
+
self.session.mount('http://', adapter)
|
44
|
+
self.session.mount('https://', adapter)
|
19
45
|
self.session.headers.update(default_headers or {})
|
20
46
|
self.session.params.update(default_params or {})
|
21
47
|
self.base_url = base_url
|
@@ -58,5 +84,6 @@ class HttpRequestContext:
|
|
58
84
|
# Reset headers and params to defaults after each request
|
59
85
|
self.session.headers = self.default_headers or {}
|
60
86
|
self.session.params = self.default_params or {}
|
61
|
-
|
87
|
+
|
88
|
+
return response
|
62
89
|
return response
|
@@ -0,0 +1,64 @@
|
|
1
|
+
from typing import Optional, Dict, Any,Union
|
2
|
+
import requests
|
3
|
+
from plexflow.utils.api.context.http import HttpRequestContext
|
4
|
+
import plexflow.utils.antibot.human_like_requests as human_like_requests
|
5
|
+
from plexflow.utils.api.rest.url_builder import build_url
|
6
|
+
|
7
|
+
class Plexful:
|
8
|
+
"""
|
9
|
+
A class that uses UniversalHttpHook and UniversalPostgresqlHook to create RESTful API interfaces and interact with a PostgreSQL database.
|
10
|
+
|
11
|
+
Args:
|
12
|
+
http_conn_id (str, optional): The connection ID, used as Airflow connection ID or as the name for the YAML file. Defaults to None.
|
13
|
+
postgres_conn_id (str, optional): The connection ID, used as Airflow connection ID or as the name for the YAML file. Defaults to None.
|
14
|
+
config_folder (str, optional): The folder where the YAML configuration file is located. Defaults to None.
|
15
|
+
"""
|
16
|
+
|
17
|
+
def __init__(self, base_url: str):
|
18
|
+
self._base_url = base_url
|
19
|
+
|
20
|
+
def get(self, url: str, headers: Optional[Dict[str, str]] = None, query_params: Optional[Dict[str, str]] = None, headless: bool = True, **kwargs) -> Union[requests.Response, human_like_requests.HumanLikeRequestCapture]:
|
21
|
+
"""
|
22
|
+
Makes a GET request to the resource.
|
23
|
+
|
24
|
+
Args:
|
25
|
+
url (str): The full URL for the GET request.
|
26
|
+
headers (dict, optional): The headers for the GET request. Defaults to None.
|
27
|
+
query_params (dict, optional): The query parameters for the GET request. Defaults to None.
|
28
|
+
**kwargs: Additional keyword arguments for the GET request.
|
29
|
+
|
30
|
+
Returns:
|
31
|
+
The response from the GET request.
|
32
|
+
"""
|
33
|
+
if headless:
|
34
|
+
context = HttpRequestContext(self._base_url)
|
35
|
+
return context.get(url, headers=headers, params=query_params, **kwargs)
|
36
|
+
else:
|
37
|
+
full_url = build_url(self._base_url, url, query_params)
|
38
|
+
print(full_url)
|
39
|
+
capture = human_like_requests.get(
|
40
|
+
url=full_url,
|
41
|
+
take_screenshot=kwargs.get('take_screenshot', False),
|
42
|
+
use_xvfb=kwargs.get('use_xvfb', False),
|
43
|
+
wait_condition=kwargs.get('wait_condition', 'regex'),
|
44
|
+
wait_value=kwargs.get('wait_value', r'magnet:'),
|
45
|
+
wait_until_not=kwargs.get('wait_until_not', False)
|
46
|
+
)
|
47
|
+
return capture
|
48
|
+
|
49
|
+
def post(self, url: str, data: Dict[str, Any], headers: Optional[Dict[str, str]] = None, query_params: Optional[Dict[str, str]] = None, **kwargs) -> requests.Response:
|
50
|
+
"""
|
51
|
+
Makes a POST request to the resource.
|
52
|
+
|
53
|
+
Args:
|
54
|
+
url (str): The full URL for the POST request.
|
55
|
+
data (dict): The data for the POST request.
|
56
|
+
headers (dict, optional): The headers for the POST request. Defaults to None.
|
57
|
+
query_params (dict, optional): The query parameters for the POST request. Defaults to None.
|
58
|
+
**kwargs: Additional keyword arguments for the POST request.
|
59
|
+
|
60
|
+
Returns:
|
61
|
+
The response from the POST request.
|
62
|
+
"""
|
63
|
+
context = HttpRequestContext(self._base_url)
|
64
|
+
return context.post(url, headers=headers, params=query_params, **kwargs)
|
@@ -0,0 +1,9 @@
|
|
1
|
+
import urllib.parse
|
2
|
+
|
3
|
+
def build_url(base_url: str, path: str, query_params: dict) -> str:
|
4
|
+
# Construct the full URL
|
5
|
+
url = urllib.parse.urljoin(base_url, path)
|
6
|
+
# Add query parameters
|
7
|
+
query_string = urllib.parse.urlencode(query_params if query_params else {})
|
8
|
+
full_url = f"{url}?{query_string}"
|
9
|
+
return full_url
|
@@ -0,0 +1,139 @@
|
|
1
|
+
from mistralai import Mistral
|
2
|
+
from io import StringIO
|
3
|
+
from plexflow.utils.strings.json_extract import extract_json_from_string
|
4
|
+
|
5
|
+
def extract_torrents(content: str, **kwargs):
|
6
|
+
api_key = kwargs.get("api_key", "bZ6vS0p30hiEqpyy6fBZUMyuZuiqaS91")
|
7
|
+
model = kwargs.get("model", "mistral-large-latest")
|
8
|
+
|
9
|
+
client = Mistral(api_key=api_key)
|
10
|
+
|
11
|
+
stream_response = client.chat.stream(
|
12
|
+
model = model,
|
13
|
+
messages = [
|
14
|
+
{
|
15
|
+
"role": "user",
|
16
|
+
"content": f"""
|
17
|
+
Parse the torrents as JSON, designate the total seeds as the field 'seeds', the total peers as the field 'peers', the date added as the field 'date', the torrent title as 'title', the torrent size as 'size', the torrent category as 'category', keep all other fields the same:
|
18
|
+
|
19
|
+
{content}
|
20
|
+
""",
|
21
|
+
},
|
22
|
+
]
|
23
|
+
)
|
24
|
+
|
25
|
+
buffer = StringIO()
|
26
|
+
|
27
|
+
for chunk in stream_response:
|
28
|
+
chunk = chunk.data.choices[0].delta.content
|
29
|
+
if kwargs.get("log", False):
|
30
|
+
print(chunk, end="")
|
31
|
+
|
32
|
+
buffer.write(chunk)
|
33
|
+
|
34
|
+
json_data = buffer.getvalue()
|
35
|
+
|
36
|
+
return extract_json_from_string(json_data)
|
37
|
+
|
38
|
+
|
39
|
+
torrents = extract_torrents(
|
40
|
+
"""
|
41
|
+
|
42
|
+
|
43
|
+
Login
|
44
|
+
Home
|
45
|
+
Catalog
|
46
|
+
Box Office
|
47
|
+
New Selection
|
48
|
+
4K Movies
|
49
|
+
4K XXX
|
50
|
+
Home Movies TV Games Music Anime Apps Other Books XXX Pages
|
51
|
+
XXX content
|
52
|
+
Search title or IMDB ID like tt27932269 ...
|
53
|
+
|
54
|
+
»
|
55
|
+
Reset
|
56
|
+
My 30 Books March 3 2 mature maturenl tt0051532 girlsoutwest Audiobooks heavier trip matrix language issue mummy The Office nacho libre the gentlemen playboyplus the flash 2023 The Comeback The Lord of the Rings twin peaks 720p the work 1080p vikings Windows All 7 8 1 10 11 All Editions With Updates AIO 46in1 glass 2019 Thunderbolts ma the invasion Becastled v0 6002 naughtyamericavr DesignOptimal Editable font and
|
57
|
+
Mufasa: The Lion King 2024
|
58
|
+
Play
|
59
|
+
|
60
|
+
Title: Mufasa: The Lion King
|
61
|
+
EXTERNAL URL: IMDB | TMDB
|
62
|
+
Languages: English
|
63
|
+
Genres: Animation, Adventure, Drama, Family, Fantasy, Musical,
|
64
|
+
Runtime: 2:00:00 Hour
|
65
|
+
Cast: Aaron Pierre, Kelvin Harrison Jr., Tiffany Boone
|
66
|
+
Directors: Barry Jenkins
|
67
|
+
IMDB Rating Rating: 6.8 (1406 Votes)
|
68
|
+
Year: 2024
|
69
|
+
Summary: Mufasa, a cub lost and alone, meets a sympathetic lion named Taka, the heir to a royal bloodline. The chance meeting sets in motion an expansive journey of a group of misfits searching for their destiny.
|
70
|
+
:TRAILER:
|
71
|
+
|
72
|
+
Search table...
|
73
|
+
C File Category Added Time Size Se. Le.
|
74
|
+
|
75
|
+
Mufasa The Lion King 2024 720p WEBRiP x264 XoXo M.Q.A
|
76
|
+
Movies 2025-02-02 8 hours 4.0 GB 26 50
|
77
|
+
|
78
|
+
Mufasa The Lion King 2024 1080p WEBRiP x264 XoXo M.Q.A
|
79
|
+
Movies 2025-02-02 8 hours 8.4 GB 40 34
|
80
|
+
|
81
|
+
Mufasa The Lion King 2024 720p WEB DL 2000MB Feranki1980 M.Q.A
|
82
|
+
Movies 2025-01-09 3 weeks, 2 days 2.0 GB 44 22
|
83
|
+
|
84
|
+
Mufasa The Lion King 2024 1080p WEBRip Multi AAC x265 HNY M.Q.A
|
85
|
+
Movies 2025-01-02 1 month 1.5 GB 43 48
|
86
|
+
|
87
|
+
Mufasa The Lion King 2024 1080P WEBRiP 24 bit Stereo HEVC X265 POOTLED mkv M.Q.A
|
88
|
+
Movies 2025-01-02 1 month 3.1 GB 23 33
|
89
|
+
|
90
|
+
Mufasa The Lion King 2024 1080p WEBRip x265 10bit YTS M.Q.A
|
91
|
+
Movies 2025-01-02 1 month 1.7 GB 294 621
|
92
|
+
|
93
|
+
Mufasa The Lion King 2024 1080p WEBRIP H264 HAPPYNEWYEAR COLLECTi M.Q.A
|
94
|
+
Movies 2025-01-02 1 month 3.7 GB 35 42
|
95
|
+
|
96
|
+
Mufasa The Lion King 2024 1080p WEBRip YTS M.Q.A
|
97
|
+
Movies 2025-01-01 1 month 1.8 GB 424 1301
|
98
|
+
|
99
|
+
Mufasa Il Re Leone 2024 1080p HDRip HQ h264 ADS MD Ita iDN_Cr M.Q.A
|
100
|
+
Movies 2025-01-01 1 month 2.5 GB 36 10
|
101
|
+
|
102
|
+
Mufasa The Lion King 2024 720p WEBRip YTS M.Q.A
|
103
|
+
Movies 2025-01-01 1 month 1020.6 MB 422 796
|
104
|
+
|
105
|
+
Mufasa The Lion King 2024 1080p WEBRIP H264 HAPPYNEWYEAR COLLECTiVE M.Q.A
|
106
|
+
Movies 2025-01-01 1 month 3.7 GB 45 37
|
107
|
+
|
108
|
+
Mufasa The Lion King 2024 1080p WEBRip READNFO x265 AC3 AOC M.Q.A
|
109
|
+
Movies 2024-12-31 1 month 5.9 GB 13 13
|
110
|
+
|
111
|
+
Mufasa The Lion King 2024 1080p HDRip ENG HappyNEWYear M.Q.A
|
112
|
+
Movies 2024-12-31 1 month 2.5 GB 95 714
|
113
|
+
|
114
|
+
Mufasa The Lion King 2024 1080p Cam X264 COLLECTiVE M.Q.A
|
115
|
+
Movies 2024-12-23 1 month, 1 week 3.7 GB 27 21
|
116
|
+
|
117
|
+
Mufasa The Lion King 2024 V 2 1080p HDTS C1NEM4 M.Q.A
|
118
|
+
Movies 2024-12-20 1 month, 2 weeks 2.1 GB 14 45
|
119
|
+
|
120
|
+
Mufasa The Lion King 2024 HDCAM c1nem4 x264 SUNSCREEN TGx M.Q.A
|
121
|
+
Movies 2024-12-20 1 month, 2 weeks 995.1 MB 12 25
|
122
|
+
|
123
|
+
Mufasa The Lion King 2024 720p HDCAM C1NEM4 M.Q.A
|
124
|
+
Movies 2024-12-20 1 month, 2 weeks 1.7 GB 14 19
|
125
|
+
Showing 1 to 17 of 17 entries
|
126
|
+
""",
|
127
|
+
log=False
|
128
|
+
)
|
129
|
+
|
130
|
+
if len(torrents) == 0:
|
131
|
+
print("No torrents found")
|
132
|
+
else:
|
133
|
+
if type(torrents[0]) == list:
|
134
|
+
torrents = torrents[0]
|
135
|
+
|
136
|
+
print(len(torrents), "torrents found")
|
137
|
+
|
138
|
+
for torrent in torrents:
|
139
|
+
print(torrent)
|
@@ -4,12 +4,26 @@ from confluent_kafka import Producer
|
|
4
4
|
import os
|
5
5
|
|
6
6
|
def delivery_report(err, msg):
|
7
|
+
"""
|
8
|
+
Callback function to handle the delivery report of a message.
|
9
|
+
|
10
|
+
Args:
|
11
|
+
err: Error object if message delivery failed, otherwise None.
|
12
|
+
msg: Message object that was delivered.
|
13
|
+
"""
|
7
14
|
if err is not None:
|
8
15
|
logging.error(f"Message delivery failed: {err}")
|
9
16
|
else:
|
10
17
|
logging.info(f"Message delivered to {msg.topic()} [{msg.partition()}] at offset {msg.offset()}")
|
11
18
|
|
12
19
|
def produce_message(topic: str, message):
|
20
|
+
"""
|
21
|
+
Produce a single message to the specified Kafka topic.
|
22
|
+
|
23
|
+
Args:
|
24
|
+
topic (str): The Kafka topic to publish the message to.
|
25
|
+
message: The message to be published.
|
26
|
+
"""
|
13
27
|
logging.info(f"Publishing message to {topic}...")
|
14
28
|
producer = Producer({'bootstrap.servers': os.getenv('KAFKA_BOOTSTRAP_SERVERS', 'localhost:9092')})
|
15
29
|
producer.produce(topic, json.dumps(message).encode('utf-8'), callback=delivery_report)
|
@@ -17,9 +31,16 @@ def produce_message(topic: str, message):
|
|
17
31
|
logging.info(f"Message published to {topic}.")
|
18
32
|
|
19
33
|
def produce_messages(topic: str, messages):
|
34
|
+
"""
|
35
|
+
Produce multiple messages to the specified Kafka topic.
|
36
|
+
|
37
|
+
Args:
|
38
|
+
topic (str): The Kafka topic to publish the messages to.
|
39
|
+
messages: A list of messages to be published.
|
40
|
+
"""
|
20
41
|
logging.info(f"Publishing messages to {topic}...")
|
21
42
|
producer = Producer({'bootstrap.servers': os.getenv('KAFKA_BOOTSTRAP_SERVERS', 'localhost:9092')})
|
22
43
|
for message in messages:
|
23
44
|
producer.produce(topic, json.dumps(message).encode('utf-8'), callback=delivery_report)
|
24
45
|
producer.flush()
|
25
|
-
logging.info(f"All messages published to {topic}.")
|
46
|
+
logging.info(f"All messages published to {topic}.")
|