pyload-ng 0.5.0b3.dev99__tar.gz → 0.5.0b3.dev100__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.
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/PKG-INFO +1 -1
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/api/__init__.py +70 -26
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/database/apikey_database.py +0 -2
- pyload_ng-0.5.0b3.dev100/src/pyload/core/database/user_database.py +316 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/network/http/exceptions.py +11 -1
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/network/http/http_chunk.py +103 -117
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/network/http/http_headers.py +52 -6
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/network/http/http_request.py +205 -102
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/locale/en/LC_MESSAGES/pyload.mo +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/locale/en/LC_MESSAGES/pyload.po +82 -72
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/addons/UpdateManager.py +2 -1
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/base/plugin.py +1 -2
- pyload_ng-0.5.0b3.dev100/src/pyload/plugins/downloaders/FileqNet.py +27 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/__init__.py +1 -1
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/blueprints/api_blueprint.py +1 -1
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/blueprints/cnl_blueprint.py +2 -1
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/handlers.py +3 -6
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/helpers.py +2 -2
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/modern/templates/js/base.js +86 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/modern/templates/js/packages.js +71 -35
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/pyplex/templates/js/base.js +86 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/pyplex/templates/js/packages.js +74 -37
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload_ng.egg-info/PKG-INFO +1 -1
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload_ng.egg-info/SOURCES.txt +1 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/tests/integration/test_api.py +51 -0
- pyload_ng-0.5.0b3.dev99/src/pyload/core/database/user_database.py +0 -142
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/AUTHORS.md +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/CODE_OF_CONDUCT.md +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/CONTRIBUTING.md +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/LICENSE.md +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/MANIFEST.in +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/README.md +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/SECURITY.md +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/VERSION +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/babel_v2.cfg +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/babel_v3.cfg +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/poetry.toml +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/pyproject.toml +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/setup.cfg +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/setup.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/__init__.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/__main__.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/__init__.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/config/__init__.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/config/default.cfg +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/config/parser.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/database/__init__.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/database/file_database.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/database/storage_database.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/datatypes/__init__.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/datatypes/data.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/datatypes/enums.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/datatypes/exceptions.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/datatypes/json_schema_extras.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/datatypes/pyfile.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/datatypes/pypackage.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/log_factory.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/managers/__init__.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/managers/account_manager.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/managers/addon_manager.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/managers/captcha_manager.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/managers/event_manager.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/managers/file_manager.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/managers/plugin_manager.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/managers/thread_manager.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/network/__init__.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/network/browser.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/network/bucket.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/network/cookie_jar.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/network/exceptions.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/network/http/__init__.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/network/http/http_download.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/network/request_factory.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/network/xdcc/__init__.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/network/xdcc/request.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/scheduler.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/threads/__init__.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/threads/addon_thread.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/threads/clicknload_thread.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/threads/database_thread.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/threads/decrypter_thread.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/threads/download_thread.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/threads/info_thread.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/threads/plugin_thread.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/utils/__init__.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/utils/check.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/utils/convert.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/utils/debug.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/utils/format.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/utils/fs.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/utils/misc.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/utils/old/__init__.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/utils/old/packagetools.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/utils/parse.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/utils/purge.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/utils/seconds.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/utils/struct/__init__.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/utils/struct/base.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/utils/struct/info.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/utils/struct/lock.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/utils/struct/style.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/utils/system.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/utils/web/__init__.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/utils/web/check.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/utils/web/convert.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/utils/web/format.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/utils/web/misc.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/utils/web/parse.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/utils/web/purge.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/__init__.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/AccioDebridCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/AlldebridCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/AniStreamCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/ArchiveOrg.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/BackinNet.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/CloudsharesNet.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/CloudsixMe.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/CloudzillaTo.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/CramitIn.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/CzshareCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/DatoidCz.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/DdownloadCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/DebridItaliaCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/DebridlinkFr.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/DebridplanetCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/DepositfilesCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/EasybytezCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/EuroshareEu.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/ExashareCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/ExtmatrixCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/FastixRu.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/FastshareCz.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/FikperCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/File4SafeCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/FileStoreTo.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/FileboomMe.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/FilecloudIo.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/FilefactoryCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/FilejokerNet.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/FileomCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/FilerNet.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/FilerioCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/FilesMailRu.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/FiregetCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/FourSharedCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/FshareVn.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/Ftp.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/GetTwentyFourOrg.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/HellshareCz.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/HighWayMe.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/Http.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/HugefilesNet.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/HundredEightyUploadCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/IronfilesNet.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/JunkyvideoCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/JunocloudMe.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/KatfileCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/Keep2ShareCc.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/LeechThreeHundreedSixtyCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/LinkifierCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/LinksnappyCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/MegaCoNz.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/MegaDebridEu.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/MegaRapidCz.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/MegaRapidoNet.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/MegasharesCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/MovReelCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/Mp4uploadCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/MultihostersCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/MultishareCz.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/MyfastfileCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/NitrobitNet.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/NitroflareCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/NoPremiumPl.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/NosuploadCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/NovafileCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/NowVideoSx.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/OboomIo.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/OneFichierCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/OverLoadMe.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/PixeldrainCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/PorntrexCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/PremiumTo.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/PremiumizeMe.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/PutdriveCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/QuickshareCz.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/RPNetBiz.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/RapideoPl.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/RapidfileshareNet.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/RapidgatorNet.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/RapiduNet.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/RarefileNet.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/RealdebridCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/RehostTo.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/SafesharingEu.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/SecureUploadEu.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/SendmywayCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/SharebeastCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/SimplyPremiumCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/SimplydebridCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/SmoozedCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/StreamcloudEu.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/TbSevenPl.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/TenluaVn.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/TorboxApp.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/TurbobitNet.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/TusfilesNet.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/TwojlimitPl.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/UlozTo.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/UpleaCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/UploadcCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/UploadgigCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/UpstoreNet.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/UptoboxCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/VidPlayNet.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/WebshareCz.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/WorldbytezCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/YibaishiwuCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/ZeveraCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/accounts/__init__.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/addons/AndroidPhoneNotify.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/addons/AntiCaptcha.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/addons/AntiStandby.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/addons/AntiVirus.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/addons/AppriseNotify.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/addons/BypassCaptcha.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/addons/Captcha9Kw.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/addons/Checksum.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/addons/ClickNLoad.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/addons/CloudFlareDdos.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/addons/DeathByCaptcha.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/addons/DeleteFinished.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/addons/DiscordNotifier.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/addons/DownloadScheduler.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/addons/ExpertDecoders.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/addons/ExternalScripts.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/addons/ExtractArchive.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/addons/HotFolder.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/addons/IRC.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/addons/ImageTyperz.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/addons/JustPremium.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/addons/LinkFilter.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/addons/LogMarker.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/addons/MergeFiles.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/addons/MultiHome.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/addons/NZB.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/addons/PushBullet.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/addons/PushOver.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/addons/RestartFailed.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/addons/SkipRev.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/addons/TORRENT.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/addons/TransmissionRPC.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/addons/UnSkipOnFail.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/addons/UserAgentSwitcher.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/addons/WindowsPhoneNotify.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/addons/XFileSharing.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/addons/XMPP.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/addons/__init__.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/anticaptchas/CircleCaptcha.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/anticaptchas/CoinHive.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/anticaptchas/HCaptcha.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/anticaptchas/ReCaptcha.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/anticaptchas/SolveMedia.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/anticaptchas/Turnstile.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/anticaptchas/__init__.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/base/__init__.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/base/account.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/base/addon.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/base/captcha.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/base/captcha_service.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/base/chat_bot.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/base/container.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/base/dead_decrypter.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/base/dead_downloader.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/base/decrypter.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/base/downloader.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/base/extractor.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/base/hoster.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/base/multi_account.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/base/multi_decrypter.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/base/multi_downloader.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/base/notifier.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/base/ocr.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/base/simple_decrypter.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/base/simple_downloader.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/base/xfs_account.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/base/xfs_decrypter.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/base/xfs_downloader.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/containers/CCF.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/containers/DLC.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/containers/NZB.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/containers/RSDF.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/containers/TORRENT.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/containers/TXT.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/containers/__init__.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/AlldebridComTorrent.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/ArchiveOrgFolder.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/ChipDe.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/CloudMailRuFolder.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/CloudzillaToFolder.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/CriptTo.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/CzshareComFolder.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/DailymotionComFolder.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/DataHuFolder.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/DebridlinkFrTorrent.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/DepositfilesComFolder.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/Dereferer.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/DevhostStFolder.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/EasybytezComFolder.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/EmbeduploadCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/FilecloudIoFolder.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/FilecryptCc.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/FilefactoryComFolder.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/FilerNetFolder.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/FilestubeCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/FiletramCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/FourChanOrg.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/FreakhareComFolder.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/FreetexthostCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/FshareVnFolder.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/FurLy.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/Go4UpCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/GofileIoFolder.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/GooGl.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/GoogledriveComDereferer.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/GoogledriveComFolder.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/HearthisAtFolder.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/HflixIn.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/HoerbuchIn.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/ImgurCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/JDlist.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/KnigavuheOrgFolder.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/LixIn.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/MediafireComFolder.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/MegaCoNzFolder.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/MegaRapidCzFolder.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/MegadyskPlFolder.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/MirrorcreatorCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/MultiUpOrg.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/MultiloadCz.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/NitroflareComFolder.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/NosvideoCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/PastebinCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/PastedCo.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/QuickshareCzFolder.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/RapidgatorNetFolder.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/RealdebridComTorrent.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/SafelinkingNet.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/ShSt.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/SwisstransferComFolder.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/TNTVillageScambioeticoOrg.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/TenluaVnFolder.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/TinyurlCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/TnyCz.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/TorboxAppNzb.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/TorboxAppTorrent.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/TurbobitNetFolder.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/TusfilesNetFolder.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/UlozToFolder.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/WebshareCzFolder.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/WetransferComDereferer.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/WorkuploadComFolder.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/XFileSharingFolder.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/XupPl.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/YoutubeComFolder.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/decrypters/__init__.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/AccioDebridCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/AlfafileNet.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/AlldebridCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/AndroidfilehostCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/AnonfilesCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/ArchiveOrg.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/BasketbuildCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/BayfilesCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/ClicknuploadCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/CloudMailRu.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/CloudzillaTo.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/CosmoboxOrg.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/CramitIn.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/CzshareCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/DailymotionCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/DailyuploadsNet.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/DarkiboxCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/DataHu.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/DataportCz.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/DatoidCz.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/DdownloadCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/DebridItaliaCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/DebridlinkFr.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/DebridplanetCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/DefaultPlugin.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/DepositfilesCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/DevhostSt.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/DlFreeFr.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/DownupSpace.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/DropDownload.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/DropboxCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/EasybytezCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/EasyuploadIo.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/EdiskCz.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/EuroshareEu.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/ExashareCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/ExtmatrixCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/FastixRu.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/FastshareCz.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/FikperCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/FileAl.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/FileSharkPl.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/FileStoreTo.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/FileboomMe.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/FilecloudIo.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/FilefactoryCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/FilefoxCc.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/FilejokerNet.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/FileomCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/FilepupNet.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/FilerNet.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/FilericeCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/FilerioCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/FilesMailRu.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/FileuploadCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/FileuploadNet.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/FiregetCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/FistfastNet.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/FlyFilesNet.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/FourSharedCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/FshareVn.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/Ftp.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/FuckingfastCo.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/GamefrontCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/GetTwentyFourOrg.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/GigapetaCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/GofileIo.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/GooIm.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/GoogledriveCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/HearthisAt.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/HellshareCz.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/HighWayMe.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/HitfileNet.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/HostujeNet.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/HotlinkCc.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/Http.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/HugefilesNet.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/HundredEightyUploadCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/IfolderRu.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/IronfilesNet.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/JumbofilesCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/JunocloudMe.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/KatfileCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/Keep2ShareCc.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/KingfilesNet.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/KnigavuheOrg.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/KrakenfilesCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/LeechThreeHundreedSixtyCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/LetsuploadCc.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/LetsuploadCo.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/LibgenIo.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/LinkifierCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/LinksnappyCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/LinksnappyComTorrent.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/LoadTo.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/MediafireCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/MegaCoNz.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/MegaDebridEu.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/MegaRapidCz.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/MegaRapidoNet.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/MegacrypterCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/MegadyskPl.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/MegasharesCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/MegaupNet.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/MexaSh.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/MovReelCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/Mp4uploadCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/MultihostersCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/MultishareCz.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/MyfastfileCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/MystoreTo.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/NarodRu.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/NippyshareCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/NitrobitNet.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/NitroflareCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/NoPremiumPl.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/NofileIo.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/NosuploadCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/NovafileCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/NowVideoSx.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/OboomIo.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/OneFichierCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/OnlineTvRecorder.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/OverLoadMe.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/PixeldrainCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/PornhostCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/PornhubCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/PornovkaCz.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/PorntrexCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/PremiumTo.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/PremiumizeMe.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/PromptfileCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/PutdriveCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/QuickshareCz.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/RPNetBiz.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/RapideoPl.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/RapidfileshareNet.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/RapidgatorNet.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/RapiduNet.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/RarefileNet.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/RealdebridCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/RedtubeCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/RehostTo.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/RemixshareCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/RgHostNet.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/SafesharingEu.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/SecureUploadEu.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/SendCm.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/SenditCloud.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/SendspaceCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/Share4WebCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/ShareplaceCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/ShareplaceOrg.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/SimplyPremiumCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/SimplydebridCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/SizedriveCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/SmoozedCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/SmuleCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/SolidfilesCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/SoundcloudCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/SpeedyshareCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/StreamCz.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/StreamcloudEu.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/SuprafilesMe.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/TbSevenPl.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/TenluaVn.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/TorboxApp.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/TurbobitNet.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/TusfilesNet.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/TwoSharedCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/TwojlimitPl.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/UlozTo.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/UloziskoSk.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/UnibytesCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/UpfileVn.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/UpleaCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/UploadgigCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/UploadrocketNet.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/UploadshipCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/UpstoreNet.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/UptoboxCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/UserscloudCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/UseruploadNet.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/VeehdCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/VeohCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/VidPlayNet.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/VimeoCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/VkCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/WebshareCz.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/WetransferCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/WorkuploadCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/WorldbytezCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/WrzucTo.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/XDCC.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/XFileSharing.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/XHamsterCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/XVideosCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/XdadevelopersCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/YadiSk.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/YesPornPleaseCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/YibaishiwuCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/YoupornCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/YourfilesTo.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/YoutubeCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/ZDF.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/ZbigzCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/ZeveraCom.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/downloaders/__init__.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/extractors/HjSplit.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/extractors/SevenZip.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/extractors/UnRar.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/extractors/UnTar.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/extractors/UnZip.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/extractors/__init__.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/plugins/helpers.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/__init__.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/api_docs/__init__.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/api_docs/openapi_specification_generator.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/blueprints/__init__.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/blueprints/app_blueprint.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/blueprints/json_blueprint.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/config.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/extensions.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/filters.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/globals.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/processors.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/static/js/captcha-interactive.user.js +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/static/swagger.html +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/modern/info.json +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/modern/static/css/base.css +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/modern/static/css/dashboard.css +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/modern/static/css/info.css +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/modern/static/css/login.css +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/modern/static/css/logout.css +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/modern/static/css/logs.css +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/modern/static/css/pathchooser.css +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/modern/static/css/settings.css +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/modern/static/img/ajax-loader.gif +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/modern/static/img/favicon.ico +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/modern/static/img/pyload-banner.png +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/modern/static/img/pyload-logo.png +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/modern/static/img/ui-icons_444444_256x240.png +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/modern/static/vendor/Bootstrap/css/bootstrap.min.css +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/modern/static/vendor/Bootstrap/fonts/glyphicons-halflings-regular.eot +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/modern/static/vendor/Bootstrap/fonts/glyphicons-halflings-regular.svg +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/modern/static/vendor/Bootstrap/fonts/glyphicons-halflings-regular.ttf +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/modern/static/vendor/Bootstrap/fonts/glyphicons-halflings-regular.woff +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/modern/static/vendor/Bootstrap/fonts/glyphicons-halflings-regular.woff2 +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/modern/static/vendor/Bootstrap/js/bootstrap.min.js +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/modern/static/vendor/jQuery/jQuery UI/images/ui-icons_444444_256x240.png +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/modern/static/vendor/jQuery/jQuery UI/images/ui-icons_555555_256x240.png +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/modern/static/vendor/jQuery/jQuery UI/images/ui-icons_777620_256x240.png +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/modern/static/vendor/jQuery/jQuery UI/images/ui-icons_777777_256x240.png +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/modern/static/vendor/jQuery/jQuery UI/images/ui-icons_cc0000_256x240.png +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/modern/static/vendor/jQuery/jQuery UI/images/ui-icons_ffffff_256x240.png +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/modern/static/vendor/jQuery/jQuery UI/jquery-ui.min.css +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/modern/static/vendor/jQuery/jQuery UI/jquery-ui.min.js +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/modern/static/vendor/jQuery/jquery.min.js +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/modern/static/vendor/mdtoast/css/mdtoast.min.css +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/modern/static/vendor/mdtoast/js/mdtoast.min.js +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/modern/templates/base.html +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/modern/templates/captcha.html +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/modern/templates/dashboard.html +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/modern/templates/error.html +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/modern/templates/files.html +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/modern/templates/info.html +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/modern/templates/js/dashboard.js +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/modern/templates/js/info.js +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/modern/templates/js/settings.js +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/modern/templates/login.html +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/modern/templates/logout.html +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/modern/templates/logs.html +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/modern/templates/packages.html +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/modern/templates/pathchooser.html +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/modern/templates/settings.html +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/modern/templates/settings_item.html +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/modern/templates/window.html +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/pyplex/info.json +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/pyplex/static/css/base.css +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/pyplex/static/css/dashboard.css +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/pyplex/static/css/info.css +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/pyplex/static/css/login.css +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/pyplex/static/css/logout.css +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/pyplex/static/css/logs.css +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/pyplex/static/css/pathchooser.css +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/pyplex/static/css/settings.css +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/pyplex/static/img/ajax-loader.gif +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/pyplex/static/img/favicon.ico +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/pyplex/static/img/pyload-banner.png +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/pyplex/static/img/pyload-logo.png +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/pyplex/static/img/ui-icons_444444_256x240.png +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/pyplex/static/vendor/Bootstrap/css/bootstrap.min.css +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/pyplex/static/vendor/Bootstrap/fonts/glyphicons-halflings-regular.eot +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/pyplex/static/vendor/Bootstrap/fonts/glyphicons-halflings-regular.svg +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/pyplex/static/vendor/Bootstrap/fonts/glyphicons-halflings-regular.ttf +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/pyplex/static/vendor/Bootstrap/fonts/glyphicons-halflings-regular.woff +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/pyplex/static/vendor/Bootstrap/fonts/glyphicons-halflings-regular.woff2 +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/pyplex/static/vendor/Bootstrap/js/bootstrap.min.js +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/pyplex/static/vendor/jQuery/jQuery UI/images/ui-icons_444444_256x240.png +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/pyplex/static/vendor/jQuery/jQuery UI/images/ui-icons_555555_256x240.png +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/pyplex/static/vendor/jQuery/jQuery UI/images/ui-icons_777620_256x240.png +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/pyplex/static/vendor/jQuery/jQuery UI/images/ui-icons_777777_256x240.png +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/pyplex/static/vendor/jQuery/jQuery UI/images/ui-icons_cc0000_256x240.png +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/pyplex/static/vendor/jQuery/jQuery UI/images/ui-icons_ffffff_256x240.png +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/pyplex/static/vendor/jQuery/jQuery UI/jquery-ui.min.css +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/pyplex/static/vendor/jQuery/jQuery UI/jquery-ui.min.js +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/pyplex/static/vendor/jQuery/jquery.min.js +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/pyplex/static/vendor/mdtoast/css/mdtoast.min.css +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/pyplex/static/vendor/mdtoast/js/mdtoast.min.js +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/pyplex/templates/base.html +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/pyplex/templates/captcha.html +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/pyplex/templates/dashboard.html +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/pyplex/templates/error.html +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/pyplex/templates/files.html +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/pyplex/templates/info.html +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/pyplex/templates/js/dashboard.js +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/pyplex/templates/js/info.js +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/pyplex/templates/js/settings.js +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/pyplex/templates/login.html +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/pyplex/templates/logout.html +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/pyplex/templates/logs.html +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/pyplex/templates/packages.html +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/pyplex/templates/pathchooser.html +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/pyplex/templates/settings.html +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/pyplex/templates/settings_item.html +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/app/themes/pyplex/templates/window.html +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/webui/webserver_thread.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload_ng.egg-info/dependency_links.txt +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload_ng.egg-info/entry_points.txt +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload_ng.egg-info/not-zip-safe +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload_ng.egg-info/requires.txt +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload_ng.egg-info/top_level.txt +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/tests/integration/conftest.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/tests/integration/test_cnl.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/tests/integration/test_openapi_spec.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/tests/unit/test_account_fixes.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/tests/unit/test_mega_nz_folder.py +0 -0
- {pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/tests/unit/test_parse.py +0 -0
|
@@ -148,6 +148,9 @@ class Api:
|
|
|
148
148
|
self.pyload = core
|
|
149
149
|
self._ = core._
|
|
150
150
|
|
|
151
|
+
# API key cache
|
|
152
|
+
self._apikey_cache = {} # Format: {key_id: (timestamp, data)}
|
|
153
|
+
|
|
151
154
|
def _required_http_method_for_api(self, func_name: str) -> Optional[str]:
|
|
152
155
|
"""
|
|
153
156
|
Get the allowed HTTP method for an API method
|
|
@@ -235,10 +238,15 @@ class Api:
|
|
|
235
238
|
is_admin = user_info.get("role") == Role.ADMIN
|
|
236
239
|
|
|
237
240
|
ADMIN_ONLY_CORE_OPTIONS = {
|
|
241
|
+
("general", "ssl_verify"),
|
|
238
242
|
("general", "storage_folder"),
|
|
239
243
|
("log", "syslog_host"),
|
|
240
244
|
("log", "syslog_port"),
|
|
245
|
+
("proxy", "enabled"),
|
|
246
|
+
("proxy", "host"),
|
|
241
247
|
("proxy", "password"),
|
|
248
|
+
("proxy", "socks_resolve_dns"),
|
|
249
|
+
("proxy", "type"),
|
|
242
250
|
("proxy", "username"),
|
|
243
251
|
("reconnect", "script"),
|
|
244
252
|
("webui", "host"),
|
|
@@ -256,12 +264,8 @@ class Api:
|
|
|
256
264
|
if section == "core":
|
|
257
265
|
if category == "general" and option == "storage_folder":
|
|
258
266
|
# Forbid setting the download folder inside dangerous locations
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
correct_case(os.path.join(os.path.realpath(d), ""))
|
|
262
|
-
for d in [value, PKGDIR, self.pyload.userdir]
|
|
263
|
-
]
|
|
264
|
-
if any(directories[0].startswith(d) for d in directories[1:]):
|
|
267
|
+
blocked_dirs = [PKGDIR, self.pyload.userdir]
|
|
268
|
+
if any(fs.is_within_directory(d, value) for d in blocked_dirs):
|
|
265
269
|
return
|
|
266
270
|
|
|
267
271
|
# Require ADMIN role for security-critical settings
|
|
@@ -554,17 +558,8 @@ class Api:
|
|
|
554
558
|
else:
|
|
555
559
|
folder = ""
|
|
556
560
|
|
|
557
|
-
folder = (
|
|
558
|
-
|
|
559
|
-
.replace("https://", "")
|
|
560
|
-
.replace("../", "_")
|
|
561
|
-
.replace("..\\", "_")
|
|
562
|
-
.replace(":", "")
|
|
563
|
-
.replace("/", "_")
|
|
564
|
-
.replace("\\", "_")
|
|
565
|
-
.replace("\r", "_")
|
|
566
|
-
.replace("\n", "_")
|
|
567
|
-
)
|
|
561
|
+
folder = folder.replace("http://", "").replace("https://", "")
|
|
562
|
+
folder = secure_filename(folder)
|
|
568
563
|
|
|
569
564
|
sanitized_name = name.replace("\n", "\\n").replace("\r", "\\r")
|
|
570
565
|
package_id = self.pyload.files.add_package(sanitized_name, folder, Destination(dest))
|
|
@@ -1163,6 +1158,8 @@ class Api:
|
|
|
1163
1158
|
for key, value in data.items():
|
|
1164
1159
|
if key == "id":
|
|
1165
1160
|
continue
|
|
1161
|
+
elif key == "_folder":
|
|
1162
|
+
value = secure_filename(value)
|
|
1166
1163
|
setattr(p, key, value)
|
|
1167
1164
|
|
|
1168
1165
|
p.sync()
|
|
@@ -1629,6 +1626,16 @@ class Api:
|
|
|
1629
1626
|
"""
|
|
1630
1627
|
deletes a user login.
|
|
1631
1628
|
"""
|
|
1629
|
+
user_id = self.pyload.db.get_user_id(user)
|
|
1630
|
+
if user_id:
|
|
1631
|
+
# Remove all cache entries where the cached_data has matching user_id
|
|
1632
|
+
keys_to_delete = [
|
|
1633
|
+
key_id for key_id, (_, data) in self._apikey_cache.items()
|
|
1634
|
+
if data.get("user_id") == user_id
|
|
1635
|
+
]
|
|
1636
|
+
for key_id in keys_to_delete:
|
|
1637
|
+
del self._apikey_cache[key_id]
|
|
1638
|
+
|
|
1632
1639
|
return self.pyload.db.remove_user(user)
|
|
1633
1640
|
|
|
1634
1641
|
@legacy("changePassword")
|
|
@@ -1721,14 +1728,19 @@ class Api:
|
|
|
1721
1728
|
"error": "Invalid username",
|
|
1722
1729
|
}
|
|
1723
1730
|
else:
|
|
1731
|
+
result = self.pyload.db.delete_user_apikey(user_id, key_id)
|
|
1732
|
+
if result:
|
|
1733
|
+
self._apikey_cache.pop(key_id, None) # remove from cache
|
|
1734
|
+
|
|
1724
1735
|
return {
|
|
1725
|
-
"success":
|
|
1736
|
+
"success": result,
|
|
1726
1737
|
}
|
|
1727
1738
|
|
|
1728
|
-
def check_apikey(self, apikey: str) -> dict[str, Any]:
|
|
1739
|
+
def check_apikey(self, apikey: str, ttl: int = 5 * 60) -> dict[str, Any]:
|
|
1729
1740
|
"""
|
|
1730
|
-
Validates an API key.
|
|
1741
|
+
Validates an API key with caching for improved performance.
|
|
1731
1742
|
:param apikey: API key to validate
|
|
1743
|
+
:param ttl: API key cache TTL in seconds (0 = no cache)
|
|
1732
1744
|
:return: dict with `data` as the API key info
|
|
1733
1745
|
"""
|
|
1734
1746
|
if (
|
|
@@ -1743,15 +1755,47 @@ class Api:
|
|
|
1743
1755
|
}
|
|
1744
1756
|
|
|
1745
1757
|
key_id = int(apikey[4:4 + int(apikey[3])])
|
|
1758
|
+
|
|
1759
|
+
now = int(time.time() * 1000)
|
|
1760
|
+
|
|
1761
|
+
# Check cache first (skip if ttl is 0)
|
|
1762
|
+
if ttl > 0 and key_id in self._apikey_cache:
|
|
1763
|
+
cache_time, cached_data = self._apikey_cache[key_id]
|
|
1764
|
+
if now - cache_time < ttl * 1000:
|
|
1765
|
+
# Cache hit - verify expiration in case key expired during cache window
|
|
1766
|
+
expires_at = cached_data["expires_at"]
|
|
1767
|
+
if 0 < expires_at <= now:
|
|
1768
|
+
# Key expired, remove from cache and fail
|
|
1769
|
+
del self._apikey_cache[key_id]
|
|
1770
|
+
return {
|
|
1771
|
+
"success": False,
|
|
1772
|
+
"error": "API key has expired",
|
|
1773
|
+
}
|
|
1774
|
+
|
|
1775
|
+
else:
|
|
1776
|
+
# Cache hit - return cached data
|
|
1777
|
+
return {
|
|
1778
|
+
"success": True,
|
|
1779
|
+
"data": cached_data,
|
|
1780
|
+
}
|
|
1781
|
+
else:
|
|
1782
|
+
# Cache expired - remove it
|
|
1783
|
+
del self._apikey_cache[key_id]
|
|
1784
|
+
|
|
1785
|
+
# Cache miss - query database
|
|
1746
1786
|
key_data = self.pyload.db.check_apikey(key_id, apikey[-43:])
|
|
1747
1787
|
if not key_data:
|
|
1748
1788
|
return {
|
|
1749
1789
|
"success": False,
|
|
1750
1790
|
"error": "Invalid or expired API key",
|
|
1751
1791
|
}
|
|
1752
|
-
|
|
1753
|
-
|
|
1754
|
-
|
|
1755
|
-
|
|
1756
|
-
|
|
1757
|
-
|
|
1792
|
+
|
|
1793
|
+
# Cache the successful validation result (only if ttl > 0)
|
|
1794
|
+
if ttl > 0:
|
|
1795
|
+
self._apikey_cache[key_id] = (now, key_data)
|
|
1796
|
+
|
|
1797
|
+
self.pyload.db.update_apikey_last_used(key_id)
|
|
1798
|
+
return {
|
|
1799
|
+
"success": True,
|
|
1800
|
+
"data": key_data,
|
|
1801
|
+
}
|
{pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/database/apikey_database.py
RENAMED
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
import hmac # Only imported for its secure string comparison function
|
|
2
2
|
import time
|
|
3
|
-
from typing import Union
|
|
4
3
|
|
|
5
4
|
from cryptography.hazmat.backends import default_backend
|
|
6
5
|
from cryptography.hazmat.primitives import hashes
|
|
7
|
-
from wtforms.validators import Optional
|
|
8
6
|
|
|
9
7
|
from ..utils.struct.style import style
|
|
10
8
|
|
|
@@ -0,0 +1,316 @@
|
|
|
1
|
+
import os
|
|
2
|
+
|
|
3
|
+
from cryptography.hazmat.primitives import hashes
|
|
4
|
+
from cryptography.hazmat.primitives.kdf.pbkdf2 import PBKDF2HMAC
|
|
5
|
+
|
|
6
|
+
from ..utils.struct.style import style
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
# TODO: rewrite using scrypt or argon2_cffi
|
|
10
|
+
def _salted_password(password, salt):
|
|
11
|
+
"""
|
|
12
|
+
Generate a salted password hash using PBKDF2-HMAC-SHA256.
|
|
13
|
+
|
|
14
|
+
Uses 100,000 iterations to derive a 32-byte key from the password and salt.
|
|
15
|
+
|
|
16
|
+
Parameters:
|
|
17
|
+
password (str): Plain text password to hash.
|
|
18
|
+
salt (str): Hexadecimal string representing the salt (32 characters).
|
|
19
|
+
|
|
20
|
+
Returns:
|
|
21
|
+
str: Concatenated salt and derived key as hexadecimal string.
|
|
22
|
+
"""
|
|
23
|
+
# Use PBKDF2 via cryptography to derive a 32-byte key with 100,000 iterations (SHA-256)
|
|
24
|
+
kdf = PBKDF2HMAC(
|
|
25
|
+
algorithm=hashes.SHA256(),
|
|
26
|
+
length=32,
|
|
27
|
+
salt=bytes.fromhex(salt),
|
|
28
|
+
iterations=100000,
|
|
29
|
+
)
|
|
30
|
+
dk = kdf.derive(password.encode())
|
|
31
|
+
return salt + dk.hex()
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
def _gensalt():
|
|
35
|
+
"""
|
|
36
|
+
Generate a cryptographically secure random salt.
|
|
37
|
+
|
|
38
|
+
Returns:
|
|
39
|
+
str: 32-character hexadecimal string (16 random bytes).
|
|
40
|
+
"""
|
|
41
|
+
return os.urandom(16).hex()
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
def _check_password(hashed, clear):
|
|
45
|
+
"""
|
|
46
|
+
Verify a plain text password against a hashed password.
|
|
47
|
+
|
|
48
|
+
Extracts the salt from the hashed password, rehashes the plain text
|
|
49
|
+
password with the same salt, and compares the results.
|
|
50
|
+
|
|
51
|
+
Parameters:
|
|
52
|
+
hashed (str): Stored password hash (salt + derived key in hex).
|
|
53
|
+
clear (str): Plain text password to verify.
|
|
54
|
+
|
|
55
|
+
Returns:
|
|
56
|
+
bool: True if the password matches, False otherwise.
|
|
57
|
+
"""
|
|
58
|
+
salt = hashed[:32]
|
|
59
|
+
to_compare = _salted_password(clear, salt)
|
|
60
|
+
|
|
61
|
+
return hashed == to_compare
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
class UserDatabaseMethods:
|
|
65
|
+
@style.queue
|
|
66
|
+
def check_auth(self, username, password):
|
|
67
|
+
"""
|
|
68
|
+
Authenticate a user by username and password.
|
|
69
|
+
|
|
70
|
+
Retrieves user data from the database and verifies the provided
|
|
71
|
+
password against the stored hash.
|
|
72
|
+
|
|
73
|
+
Parameters:
|
|
74
|
+
username (str): Username to authenticate.
|
|
75
|
+
password (str): Plain text password to verify.
|
|
76
|
+
|
|
77
|
+
Returns:
|
|
78
|
+
dict: User data dictionary with keys: id, name, role, permission,
|
|
79
|
+
template, email. Returns empty dict if authentication fails.
|
|
80
|
+
"""
|
|
81
|
+
self.c.execute(
|
|
82
|
+
"SELECT id, name, password, role, permission, template, email FROM users WHERE name=?",
|
|
83
|
+
(username,),
|
|
84
|
+
)
|
|
85
|
+
r = self.c.fetchone()
|
|
86
|
+
if not r:
|
|
87
|
+
return {}
|
|
88
|
+
|
|
89
|
+
stored_password = r[2]
|
|
90
|
+
if not _check_password(stored_password, password):
|
|
91
|
+
return {}
|
|
92
|
+
|
|
93
|
+
return {
|
|
94
|
+
"id": r[0],
|
|
95
|
+
"name": r[1],
|
|
96
|
+
"role": r[3],
|
|
97
|
+
"permission": r[4],
|
|
98
|
+
"template": r[5],
|
|
99
|
+
"email": r[6],
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
@style.queue
|
|
103
|
+
def add_user(self, username, password, role=0, perms=0, reset=False):
|
|
104
|
+
"""
|
|
105
|
+
Add a new user or update an existing user's credentials.
|
|
106
|
+
|
|
107
|
+
Creates a new user with the specified credentials. If the user already
|
|
108
|
+
exists and reset=True, updates their password, role, and permissions.
|
|
109
|
+
|
|
110
|
+
Parameters:
|
|
111
|
+
username (str): Username for the new or existing user.
|
|
112
|
+
password (str): Plain text password (will be hashed).
|
|
113
|
+
role (int): User role identifier. Defaults to 0.
|
|
114
|
+
perms (int): User permission flags. Defaults to 0.
|
|
115
|
+
reset (bool): If True, update existing user's credentials.
|
|
116
|
+
If False, fail if user exists. Defaults to False.
|
|
117
|
+
|
|
118
|
+
Returns:
|
|
119
|
+
bool: True if user was created or updated successfully,
|
|
120
|
+
False if user exists and reset=False.
|
|
121
|
+
"""
|
|
122
|
+
salt_pw = _salted_password(password, _gensalt())
|
|
123
|
+
|
|
124
|
+
self.c.execute("SELECT name FROM users WHERE name=?", (username,))
|
|
125
|
+
if self.c.fetchone() is not None:
|
|
126
|
+
if reset:
|
|
127
|
+
self.c.execute(
|
|
128
|
+
"UPDATE users SET password=?, role=?, permission=? WHERE name=?",
|
|
129
|
+
(salt_pw, role, perms, username),
|
|
130
|
+
)
|
|
131
|
+
return True
|
|
132
|
+
else:
|
|
133
|
+
return False
|
|
134
|
+
else:
|
|
135
|
+
self.c.execute(
|
|
136
|
+
"INSERT INTO users (name, password, role, permission) VALUES (?, ?, ?, ?)",
|
|
137
|
+
(username, salt_pw, role, perms),
|
|
138
|
+
)
|
|
139
|
+
return True
|
|
140
|
+
|
|
141
|
+
@style.queue
|
|
142
|
+
def change_password(self, username, old_password, new_password):
|
|
143
|
+
"""
|
|
144
|
+
Change a user's password after verifying the old password.
|
|
145
|
+
|
|
146
|
+
Validates the old password before updating to the new password.
|
|
147
|
+
The new password is salted and hashed before storage.
|
|
148
|
+
|
|
149
|
+
Parameters:
|
|
150
|
+
username (str): Username of the account to update.
|
|
151
|
+
old_password (str): Current password for verification.
|
|
152
|
+
new_password (str): New password to set (will be hashed).
|
|
153
|
+
|
|
154
|
+
Returns:
|
|
155
|
+
bool: True if password was changed successfully,
|
|
156
|
+
False if user not found or old password is incorrect.
|
|
157
|
+
"""
|
|
158
|
+
self.c.execute("SELECT id, name, password FROM users WHERE name=?", (username,))
|
|
159
|
+
r = self.c.fetchone()
|
|
160
|
+
if not r:
|
|
161
|
+
return False
|
|
162
|
+
|
|
163
|
+
stored_password = r[2]
|
|
164
|
+
if not _check_password(stored_password, old_password):
|
|
165
|
+
return False
|
|
166
|
+
|
|
167
|
+
newpw = _salted_password(new_password, _gensalt())
|
|
168
|
+
|
|
169
|
+
self.c.execute("UPDATE users SET password=? WHERE name=?", (newpw, username))
|
|
170
|
+
return True
|
|
171
|
+
|
|
172
|
+
@style.async_
|
|
173
|
+
def set_permission(self, username, perms):
|
|
174
|
+
"""
|
|
175
|
+
Update a user's permission flags.
|
|
176
|
+
|
|
177
|
+
This is an asynchronous operation that updates the permission field
|
|
178
|
+
for the specified user.
|
|
179
|
+
|
|
180
|
+
Parameters:
|
|
181
|
+
username (str): Username of the account to update.
|
|
182
|
+
perms (int): New permission flags to set.
|
|
183
|
+
|
|
184
|
+
Returns:
|
|
185
|
+
None
|
|
186
|
+
"""
|
|
187
|
+
self.c.execute("UPDATE users SET permission=? WHERE name=?", (perms, username))
|
|
188
|
+
|
|
189
|
+
@style.async_
|
|
190
|
+
def set_role(self, username, role):
|
|
191
|
+
"""
|
|
192
|
+
Update a user's role.
|
|
193
|
+
|
|
194
|
+
This is an asynchronous operation that updates the role field
|
|
195
|
+
for the specified user.
|
|
196
|
+
|
|
197
|
+
Parameters:
|
|
198
|
+
username (str): Username of the account to update.
|
|
199
|
+
role (int): New role identifier to set.
|
|
200
|
+
|
|
201
|
+
Returns:
|
|
202
|
+
None
|
|
203
|
+
"""
|
|
204
|
+
self.c.execute("UPDATE users SET role=? WHERE name=?", (role, username))
|
|
205
|
+
|
|
206
|
+
@style.queue
|
|
207
|
+
def user_exists(self, username):
|
|
208
|
+
"""
|
|
209
|
+
Check if a user exists in the database.
|
|
210
|
+
|
|
211
|
+
Parameters:
|
|
212
|
+
username (str): Username to check.
|
|
213
|
+
|
|
214
|
+
Returns:
|
|
215
|
+
bool: True if user exists, False otherwise.
|
|
216
|
+
"""
|
|
217
|
+
self.c.execute("SELECT name FROM users WHERE name=?", (username,))
|
|
218
|
+
return self.c.fetchone() is not None
|
|
219
|
+
|
|
220
|
+
@style.queue
|
|
221
|
+
def list_users(self):
|
|
222
|
+
"""
|
|
223
|
+
Retrieve a list of all usernames in the database.
|
|
224
|
+
|
|
225
|
+
Returns:
|
|
226
|
+
list: List of username strings.
|
|
227
|
+
"""
|
|
228
|
+
self.c.execute("SELECT name FROM users")
|
|
229
|
+
users = []
|
|
230
|
+
for row in self.c:
|
|
231
|
+
users.append(row[0])
|
|
232
|
+
return users
|
|
233
|
+
|
|
234
|
+
@style.queue
|
|
235
|
+
def get_all_user_data(self):
|
|
236
|
+
"""
|
|
237
|
+
Retrieve complete data for all users.
|
|
238
|
+
|
|
239
|
+
Returns:
|
|
240
|
+
dict: Dictionary mapping user IDs to user data dictionaries.
|
|
241
|
+
Each user data dict contains: name, permission, role,
|
|
242
|
+
template, email.
|
|
243
|
+
"""
|
|
244
|
+
self.c.execute("SELECT id, name, permission, role, template, email FROM users")
|
|
245
|
+
user_data = {}
|
|
246
|
+
for r in self.c:
|
|
247
|
+
user_data[r[0]] = {
|
|
248
|
+
"name": r[1],
|
|
249
|
+
"permission": r[2],
|
|
250
|
+
"role": r[3],
|
|
251
|
+
"template": r[4],
|
|
252
|
+
"email": r[5],
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
return user_data
|
|
256
|
+
|
|
257
|
+
@style.queue
|
|
258
|
+
def get_user_id(self, username):
|
|
259
|
+
"""
|
|
260
|
+
Retrieve the user ID for a given username.
|
|
261
|
+
|
|
262
|
+
Parameters:
|
|
263
|
+
username (str): Username to look up.
|
|
264
|
+
|
|
265
|
+
Returns:
|
|
266
|
+
int or bool: User ID if found, False if user does not exist.
|
|
267
|
+
"""
|
|
268
|
+
self.c.execute("SELECT id, name FROM users WHERE name=?", (username,))
|
|
269
|
+
r = self.c.fetchone()
|
|
270
|
+
if not r:
|
|
271
|
+
return False
|
|
272
|
+
else:
|
|
273
|
+
return r[0]
|
|
274
|
+
|
|
275
|
+
@style.queue
|
|
276
|
+
def get_user_by_id(self, user_id):
|
|
277
|
+
"""
|
|
278
|
+
Get user data by user ID.
|
|
279
|
+
|
|
280
|
+
Parameters:
|
|
281
|
+
user_id (int): ID of the user to retrieve.
|
|
282
|
+
|
|
283
|
+
Returns:
|
|
284
|
+
dict: User data dictionary with keys: name, permission, role,
|
|
285
|
+
template, email. Returns empty dict if user not found.
|
|
286
|
+
"""
|
|
287
|
+
self.c.execute(
|
|
288
|
+
"SELECT id, name, permission, role, template, email FROM users WHERE id=?",
|
|
289
|
+
(user_id,),
|
|
290
|
+
)
|
|
291
|
+
r = self.c.fetchone()
|
|
292
|
+
if not r:
|
|
293
|
+
return {}
|
|
294
|
+
return {
|
|
295
|
+
"id": r[0],
|
|
296
|
+
"name": r[1],
|
|
297
|
+
"permission": r[2],
|
|
298
|
+
"role": r[3],
|
|
299
|
+
"template": r[4],
|
|
300
|
+
"email": r[5],
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
@style.queue
|
|
304
|
+
def remove_user(self, username):
|
|
305
|
+
"""
|
|
306
|
+
Delete a user from the database.
|
|
307
|
+
|
|
308
|
+
Parameters:
|
|
309
|
+
username (str): Username of the account to delete.
|
|
310
|
+
|
|
311
|
+
Returns:
|
|
312
|
+
bool: True if user was deleted (rowcount > 0),
|
|
313
|
+
False if user was not found.
|
|
314
|
+
"""
|
|
315
|
+
self.c.execute("DELETE FROM users WHERE name=?", (username,))
|
|
316
|
+
return self.c.rowcount > 0
|
{pyload_ng-0.5.0b3.dev99 → pyload_ng-0.5.0b3.dev100}/src/pyload/core/network/http/exceptions.py
RENAMED
|
@@ -17,7 +17,12 @@ PROPRIETARY_RESPONSES = {
|
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
|
|
20
|
-
class
|
|
20
|
+
class HTTPError(Exception):
|
|
21
|
+
"""Base exception for HTTP-related errors."""
|
|
22
|
+
pass
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class BadHeader(HTTPError):
|
|
21
26
|
def __init__(self, code, headers, content=""):
|
|
22
27
|
code = int(code)
|
|
23
28
|
response = http.client.responses.get(code, PROPRIETARY_RESPONSES.get(code, "unknown error code"))
|
|
@@ -25,3 +30,8 @@ class BadHeader(Exception):
|
|
|
25
30
|
self.code = code
|
|
26
31
|
self.headers = headers
|
|
27
32
|
self.content = content
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
class WrongFormat(HTTPError):
|
|
36
|
+
"""Exception raised when chunk metadata file format is invalid."""
|
|
37
|
+
pass
|