upload-assistant 3.9__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.
- upload_assistant-3.9/LICENSE +116 -0
- upload_assistant-3.9/PKG-INFO +503 -0
- upload_assistant-3.9/README.md +419 -0
- upload_assistant-3.9/bin/__init__.py +0 -0
- upload_assistant-3.9/bin/download_integrity.py +58 -0
- upload_assistant-3.9/bin/get_7z.py +146 -0
- upload_assistant-3.9/bin/get_bdinfo.py +231 -0
- upload_assistant-3.9/bin/get_bdinfo_docker.py +164 -0
- upload_assistant-3.9/bin/get_dvd_mediainfo.py +189 -0
- upload_assistant-3.9/bin/get_dynamic_hdr_tools.py +122 -0
- upload_assistant-3.9/bin/get_ffmpeg.py +76 -0
- upload_assistant-3.9/bin/get_ffmpeg_docker.py +116 -0
- upload_assistant-3.9/bin/get_mediainfo.py +183 -0
- upload_assistant-3.9/bin/get_mkbrr.py +367 -0
- upload_assistant-3.9/bin/get_nyuu.py +169 -0
- upload_assistant-3.9/bin/get_par2.py +149 -0
- upload_assistant-3.9/bin/get_pesto.py +107 -0
- upload_assistant-3.9/bin/get_playlist.py +122 -0
- upload_assistant-3.9/config-generator.py +1244 -0
- upload_assistant-3.9/data/__init__.py +18 -0
- upload_assistant-3.9/data/example_config.py +3619 -0
- upload_assistant-3.9/data/tags.json +21 -0
- upload_assistant-3.9/data/templates/summary-mediainfo.csv +7 -0
- upload_assistant-3.9/data/templates/user-args-template.json +47 -0
- upload_assistant-3.9/pyproject.toml +199 -0
- upload_assistant-3.9/setup.cfg +7 -0
- upload_assistant-3.9/setup.py +23 -0
- upload_assistant-3.9/src/__init__.py +0 -0
- upload_assistant-3.9/src/add_comparison.py +181 -0
- upload_assistant-3.9/src/app_paths.py +41 -0
- upload_assistant-3.9/src/apply_overrides.py +196 -0
- upload_assistant-3.9/src/args.py +1466 -0
- upload_assistant-3.9/src/artwork.py +209 -0
- upload_assistant-3.9/src/audio.py +695 -0
- upload_assistant-3.9/src/audio_classifier.py +397 -0
- upload_assistant-3.9/src/audio_spectrogram.py +384 -0
- upload_assistant-3.9/src/bbcode.py +730 -0
- upload_assistant-3.9/src/bdinfo_comparator.py +196 -0
- upload_assistant-3.9/src/binaries.py +40 -0
- upload_assistant-3.9/src/bluray_com.py +1794 -0
- upload_assistant-3.9/src/book_extractors.py +803 -0
- upload_assistant-3.9/src/book_prep.py +1078 -0
- upload_assistant-3.9/src/btnid.py +249 -0
- upload_assistant-3.9/src/check_requirements.py +114 -0
- upload_assistant-3.9/src/cleanup.py +259 -0
- upload_assistant-3.9/src/clients.py +755 -0
- upload_assistant-3.9/src/cogs/__init__.py +0 -0
- upload_assistant-3.9/src/cogs/redaction.py +192 -0
- upload_assistant-3.9/src/config_helpers.py +36 -0
- upload_assistant-3.9/src/configvalidator.py +879 -0
- upload_assistant-3.9/src/console.py +343 -0
- upload_assistant-3.9/src/cookie_auth.py +818 -0
- upload_assistant-3.9/src/description_languages.py +150 -0
- upload_assistant-3.9/src/description_review.py +86 -0
- upload_assistant-3.9/src/disc_menus.py +401 -0
- upload_assistant-3.9/src/discparse.py +1179 -0
- upload_assistant-3.9/src/dupe_checking.py +1044 -0
- upload_assistant-3.9/src/dynamic_hdr_plot.py +179 -0
- upload_assistant-3.9/src/early_tasks.py +144 -0
- upload_assistant-3.9/src/edition.py +428 -0
- upload_assistant-3.9/src/exceptions.py +46 -0
- upload_assistant-3.9/src/exportmi.py +568 -0
- upload_assistant-3.9/src/genre_map.py +565 -0
- upload_assistant-3.9/src/get_desc.py +2305 -0
- upload_assistant-3.9/src/get_disc.py +90 -0
- upload_assistant-3.9/src/get_name.py +705 -0
- upload_assistant-3.9/src/get_source.py +97 -0
- upload_assistant-3.9/src/get_tracker_data.py +572 -0
- upload_assistant-3.9/src/getseasonep.py +529 -0
- upload_assistant-3.9/src/google_books.py +149 -0
- upload_assistant-3.9/src/igdb.py +175 -0
- upload_assistant-3.9/src/imdb.py +954 -0
- upload_assistant-3.9/src/is_scene.py +273 -0
- upload_assistant-3.9/src/languages.py +491 -0
- upload_assistant-3.9/src/manualpackage.py +109 -0
- upload_assistant-3.9/src/media_extensions.py +7 -0
- upload_assistant-3.9/src/mediainfo.py +127 -0
- upload_assistant-3.9/src/meta.py +696 -0
- upload_assistant-3.9/src/metadata_cache.py +153 -0
- upload_assistant-3.9/src/metadata_searching.py +1026 -0
- upload_assistant-3.9/src/music/__init__.py +7 -0
- upload_assistant-3.9/src/music/analyzer.py +556 -0
- upload_assistant-3.9/src/music/models.py +148 -0
- upload_assistant-3.9/src/music/prep.py +447 -0
- upload_assistant-3.9/src/music/sources.py +615 -0
- upload_assistant-3.9/src/music/validation.py +114 -0
- upload_assistant-3.9/src/myanonamouse.py +188 -0
- upload_assistant-3.9/src/openlibrary.py +196 -0
- upload_assistant-3.9/src/post_upload_hooks.py +197 -0
- upload_assistant-3.9/src/prep.py +447 -0
- upload_assistant-3.9/src/prep_game.py +890 -0
- upload_assistant-3.9/src/prep_helpers.py +1801 -0
- upload_assistant-3.9/src/qbitwait.py +378 -0
- upload_assistant-3.9/src/queuemanage.py +762 -0
- upload_assistant-3.9/src/radarr.py +129 -0
- upload_assistant-3.9/src/region.py +2419 -0
- upload_assistant-3.9/src/rehostimages.py +921 -0
- upload_assistant-3.9/src/screenshot_manifest.py +126 -0
- upload_assistant-3.9/src/screenshot_review.py +505 -0
- upload_assistant-3.9/src/sonarr.py +143 -0
- upload_assistant-3.9/src/tags.py +175 -0
- upload_assistant-3.9/src/takescreens.py +2872 -0
- upload_assistant-3.9/src/temp_paths.py +51 -0
- upload_assistant-3.9/src/tmdb.py +2060 -0
- upload_assistant-3.9/src/torrent_clients/__init__.py +13 -0
- upload_assistant-3.9/src/torrent_clients/deluge.py +28 -0
- upload_assistant-3.9/src/torrent_clients/path_utils.py +89 -0
- upload_assistant-3.9/src/torrent_clients/qbittorrent.py +2170 -0
- upload_assistant-3.9/src/torrent_clients/rtorrent.py +439 -0
- upload_assistant-3.9/src/torrent_clients/transmission.py +43 -0
- upload_assistant-3.9/src/torrentcreate.py +680 -0
- upload_assistant-3.9/src/tracker_descriptions.py +102 -0
- upload_assistant-3.9/src/tracker_images.py +35 -0
- upload_assistant-3.9/src/trackerhandle.py +408 -0
- upload_assistant-3.9/src/trackermeta.py +792 -0
- upload_assistant-3.9/src/trackers/AVISTAZ/__init__.py +1350 -0
- upload_assistant-3.9/src/trackers/AVISTAZ/avistaz.py +484 -0
- upload_assistant-3.9/src/trackers/AVISTAZ/cinemaz.py +388 -0
- upload_assistant-3.9/src/trackers/AVISTAZ/privatehd.py +651 -0
- upload_assistant-3.9/src/trackers/AVISTAZ/routing.py +360 -0
- upload_assistant-3.9/src/trackers/NEXUSPHP/__init__.py +454 -0
- upload_assistant-3.9/src/trackers/NEXUSPHP/lajidui.py +406 -0
- upload_assistant-3.9/src/trackers/NEXUSPHP/lemonhd.py +228 -0
- upload_assistant-3.9/src/trackers/NEXUSPHP/longpt.py +236 -0
- upload_assistant-3.9/src/trackers/NEXUSPHP/oneptba.py +275 -0
- upload_assistant-3.9/src/trackers/NEXUSPHP/ptcafe.py +419 -0
- upload_assistant-3.9/src/trackers/NEXUSPHP/ptfans.py +155 -0
- upload_assistant-3.9/src/trackers/NEXUSPHP/ptgtk.py +192 -0
- upload_assistant-3.9/src/trackers/NEXUSPHP/ptzone.py +233 -0
- upload_assistant-3.9/src/trackers/NEXUSPHP/railgunpt.py +186 -0
- upload_assistant-3.9/src/trackers/NEXUSPHP/xingyungept.py +247 -0
- upload_assistant-3.9/src/trackers/UNIT3D/UNIT3D_TEMPLATE.py +118 -0
- upload_assistant-3.9/src/trackers/UNIT3D/__init__.py +641 -0
- upload_assistant-3.9/src/trackers/UNIT3D/aither.py +163 -0
- upload_assistant-3.9/src/trackers/UNIT3D/asiancinema.py +195 -0
- upload_assistant-3.9/src/trackers/UNIT3D/bitporn.py +238 -0
- upload_assistant-3.9/src/trackers/UNIT3D/blutopia.py +290 -0
- upload_assistant-3.9/src/trackers/UNIT3D/capybarabr.py +388 -0
- upload_assistant-3.9/src/trackers/UNIT3D/cinematik.py +624 -0
- upload_assistant-3.9/src/trackers/UNIT3D/darkpeers.py +657 -0
- upload_assistant-3.9/src/trackers/UNIT3D/dreadvault.py +72 -0
- upload_assistant-3.9/src/trackers/UNIT3D/emuwarez.py +637 -0
- upload_assistant-3.9/src/trackers/UNIT3D/hawkeuno.py +352 -0
- upload_assistant-3.9/src/trackers/UNIT3D/homiehelpdesk.py +238 -0
- upload_assistant-3.9/src/trackers/UNIT3D/infinityhd.py +189 -0
- upload_assistant-3.9/src/trackers/UNIT3D/itatorrents.py +185 -0
- upload_assistant-3.9/src/trackers/UNIT3D/lastdigitalunderground.py +211 -0
- upload_assistant-3.9/src/trackers/UNIT3D/latteam.py +321 -0
- upload_assistant-3.9/src/trackers/UNIT3D/locadora.py +142 -0
- upload_assistant-3.9/src/trackers/UNIT3D/lst.py +323 -0
- upload_assistant-3.9/src/trackers/UNIT3D/luminarr.py +64 -0
- upload_assistant-3.9/src/trackers/UNIT3D/midnightscene.py +250 -0
- upload_assistant-3.9/src/trackers/UNIT3D/nordicquality.py +178 -0
- upload_assistant-3.9/src/trackers/UNIT3D/oldtoonsworld.py +219 -0
- upload_assistant-3.9/src/trackers/UNIT3D/onlyencodes.py +278 -0
- upload_assistant-3.9/src/trackers/UNIT3D/peergarden.py +267 -0
- upload_assistant-3.9/src/trackers/UNIT3D/polishtorrent.py +53 -0
- upload_assistant-3.9/src/trackers/UNIT3D/portugas.py +186 -0
- upload_assistant-3.9/src/trackers/UNIT3D/racing4everyone.py +137 -0
- upload_assistant-3.9/src/trackers/UNIT3D/rastastugan.py +132 -0
- upload_assistant-3.9/src/trackers/UNIT3D/reelflix.py +87 -0
- upload_assistant-3.9/src/trackers/UNIT3D/retromoviesclub.py +203 -0
- upload_assistant-3.9/src/trackers/UNIT3D/rockethd.py +385 -0
- upload_assistant-3.9/src/trackers/UNIT3D/samaritano.py +176 -0
- upload_assistant-3.9/src/trackers/UNIT3D/seedpool.py +239 -0
- upload_assistant-3.9/src/trackers/UNIT3D/shareisland.py +1067 -0
- upload_assistant-3.9/src/trackers/UNIT3D/skipthecommercials.py +86 -0
- upload_assistant-3.9/src/trackers/UNIT3D/theoldschool.py +134 -0
- upload_assistant-3.9/src/trackers/UNIT3D/tlzdigital.py +90 -0
- upload_assistant-3.9/src/trackers/UNIT3D/torrentdesi.py +138 -0
- upload_assistant-3.9/src/trackers/UNIT3D/torrenteros.py +148 -0
- upload_assistant-3.9/src/trackers/UNIT3D/torrenthr.py +65 -0
- upload_assistant-3.9/src/trackers/UNIT3D/ulcx.py +308 -0
- upload_assistant-3.9/src/trackers/UNIT3D/utopia.py +204 -0
- upload_assistant-3.9/src/trackers/UNIT3D/yuscene.py +174 -0
- upload_assistant-3.9/src/trackers/UNIT3D/znth.py +499 -0
- upload_assistant-3.9/src/trackers/USENET/__init__.py +0 -0
- upload_assistant-3.9/src/trackers/USENET/curupira.py +508 -0
- upload_assistant-3.9/src/trackers/USENET/drunkenslug.py +188 -0
- upload_assistant-3.9/src/trackers/USENET/nzbgeek.py +195 -0
- upload_assistant-3.9/src/trackers/USENET/search_helpers.py +238 -0
- upload_assistant-3.9/src/trackers/USENET/suio.py +531 -0
- upload_assistant-3.9/src/trackers/__init__.py +0 -0
- upload_assistant-3.9/src/trackers/alpharatio.py +473 -0
- upload_assistant-3.9/src/trackers/amigosshare.py +1296 -0
- upload_assistant-3.9/src/trackers/anthelion.py +621 -0
- upload_assistant-3.9/src/trackers/beyondhd.py +533 -0
- upload_assistant-3.9/src/trackers/bithdtv.py +200 -0
- upload_assistant-3.9/src/trackers/bjshare.py +1890 -0
- upload_assistant-3.9/src/trackers/brasiltracker.py +1242 -0
- upload_assistant-3.9/src/trackers/broadcasthenet.py +736 -0
- upload_assistant-3.9/src/trackers/cathoderaytube.py +654 -0
- upload_assistant-3.9/src/trackers/common.py +3516 -0
- upload_assistant-3.9/src/trackers/digitalcore.py +314 -0
- upload_assistant-3.9/src/trackers/filelist.py +478 -0
- upload_assistant-3.9/src/trackers/flood.py +272 -0
- upload_assistant-3.9/src/trackers/funfile.py +524 -0
- upload_assistant-3.9/src/trackers/greatposterwall.py +1186 -0
- upload_assistant-3.9/src/trackers/hdbits.py +929 -0
- upload_assistant-3.9/src/trackers/hdspace.py +298 -0
- upload_assistant-3.9/src/trackers/hdtorrents.py +292 -0
- upload_assistant-3.9/src/trackers/immortalseed.py +331 -0
- upload_assistant-3.9/src/trackers/iptorrents.py +489 -0
- upload_assistant-3.9/src/trackers/makingoff.py +1900 -0
- upload_assistant-3.9/src/trackers/mteam.py +631 -0
- upload_assistant-3.9/src/trackers/nebulance.py +285 -0
- upload_assistant-3.9/src/trackers/orpheus.py +608 -0
- upload_assistant-3.9/src/trackers/passthepopcorn.py +1705 -0
- upload_assistant-3.9/src/trackers/pterclub.py +477 -0
- upload_assistant-3.9/src/trackers/ptskit.py +123 -0
- upload_assistant-3.9/src/trackers/retroflix.py +444 -0
- upload_assistant-3.9/src/trackers/speedapp.py +365 -0
- upload_assistant-3.9/src/trackers/swarmazon.py +212 -0
- upload_assistant-3.9/src/trackers/torrentleech.py +427 -0
- upload_assistant-3.9/src/trackers/totheglory.py +379 -0
- upload_assistant-3.9/src/trackers/tvchaosuk.py +958 -0
- upload_assistant-3.9/src/trackersetup.py +1542 -0
- upload_assistant-3.9/src/trackerstatus.py +406 -0
- upload_assistant-3.9/src/tvdb.py +697 -0
- upload_assistant-3.9/src/tvmaze.py +340 -0
- upload_assistant-3.9/src/type_utils.py +29 -0
- upload_assistant-3.9/src/uphelper.py +850 -0
- upload_assistant-3.9/src/uploadscreens.py +1037 -0
- upload_assistant-3.9/src/usenetcreate.py +1443 -0
- upload_assistant-3.9/src/version.py +5 -0
- upload_assistant-3.9/src/video.py +393 -0
- upload_assistant-3.9/src/vs.py +161 -0
- upload_assistant-3.9/src/webui_progress.py +115 -0
- upload_assistant-3.9/src/xxx_keywords.py +43 -0
- upload_assistant-3.9/src/xxx_keywords_list.py +4123 -0
- upload_assistant-3.9/src/xxx_platforms.py +239 -0
- upload_assistant-3.9/tests/test_amigosshare_rules.py +150 -0
- upload_assistant-3.9/tests/test_anthelion.py +114 -0
- upload_assistant-3.9/tests/test_app_paths.py +81 -0
- upload_assistant-3.9/tests/test_artwork_requirements.py +242 -0
- upload_assistant-3.9/tests/test_audio_classifier.py +124 -0
- upload_assistant-3.9/tests/test_audio_spectrogram.py +54 -0
- upload_assistant-3.9/tests/test_audiobook_series_titles.py +34 -0
- upload_assistant-3.9/tests/test_avistaz_names.py +85 -0
- upload_assistant-3.9/tests/test_avistaz_network_routing.py +116 -0
- upload_assistant-3.9/tests/test_avistaz_rules.py +57 -0
- upload_assistant-3.9/tests/test_avistaz_screenshots_and_desc.py +102 -0
- upload_assistant-3.9/tests/test_bbcode.py +25 -0
- upload_assistant-3.9/tests/test_binaries.py +66 -0
- upload_assistant-3.9/tests/test_bitporn.py +76 -0
- upload_assistant-3.9/tests/test_bjshare.py +184 -0
- upload_assistant-3.9/tests/test_bjshare_book_titles.py +56 -0
- upload_assistant-3.9/tests/test_book_detection.py +98 -0
- upload_assistant-3.9/tests/test_broadcasthenet.py +71 -0
- upload_assistant-3.9/tests/test_cathoderaytube.py +329 -0
- upload_assistant-3.9/tests/test_check_requirements.py +27 -0
- upload_assistant-3.9/tests/test_cinemaz_rules.py +68 -0
- upload_assistant-3.9/tests/test_cli_smoke.py +61 -0
- upload_assistant-3.9/tests/test_client_path_handling.py +108 -0
- upload_assistant-3.9/tests/test_clients.py +88 -0
- upload_assistant-3.9/tests/test_clients_tracker_comments.py +60 -0
- upload_assistant-3.9/tests/test_config_generator_tag_overrides.py +84 -0
- upload_assistant-3.9/tests/test_config_helpers.py +26 -0
- upload_assistant-3.9/tests/test_console_links.py +56 -0
- upload_assistant-3.9/tests/test_curupira.py +17 -0
- upload_assistant-3.9/tests/test_darkpeers.py +259 -0
- upload_assistant-3.9/tests/test_description_review.py +145 -0
- upload_assistant-3.9/tests/test_description_tag_overrides.py +58 -0
- upload_assistant-3.9/tests/test_digitalcore.py +8 -0
- upload_assistant-3.9/tests/test_disc_menus.py +18 -0
- upload_assistant-3.9/tests/test_dreadvault.py +79 -0
- upload_assistant-3.9/tests/test_dvd_screenshots.py +21 -0
- upload_assistant-3.9/tests/test_dynamic_hdr_plot.py +121 -0
- upload_assistant-3.9/tests/test_early_tasks.py +99 -0
- upload_assistant-3.9/tests/test_edition.py +58 -0
- upload_assistant-3.9/tests/test_example_config_structure.py +40 -0
- upload_assistant-3.9/tests/test_execution_preview.py +89 -0
- upload_assistant-3.9/tests/test_exportmi.py +250 -0
- upload_assistant-3.9/tests/test_ffmpeg_binary.py +25 -0
- upload_assistant-3.9/tests/test_flood.py +71 -0
- upload_assistant-3.9/tests/test_get_desc_mediainfo.py +26 -0
- upload_assistant-3.9/tests/test_get_dvd_mediainfo.py +159 -0
- upload_assistant-3.9/tests/test_get_name_music.py +45 -0
- upload_assistant-3.9/tests/test_get_name_xxx.py +38 -0
- upload_assistant-3.9/tests/test_greatposterwall_image_host.py +76 -0
- upload_assistant-3.9/tests/test_hardcoded_subtitle_detection.py +7 -0
- upload_assistant-3.9/tests/test_hardcoded_subtitle_language.py +11 -0
- upload_assistant-3.9/tests/test_hawkeuno.py +37 -0
- upload_assistant-3.9/tests/test_hdbits.py +26 -0
- upload_assistant-3.9/tests/test_hdbits_images.py +42 -0
- upload_assistant-3.9/tests/test_hdbits_search.py +67 -0
- upload_assistant-3.9/tests/test_homiehelpdesk.py +38 -0
- upload_assistant-3.9/tests/test_imdb_cache.py +56 -0
- upload_assistant-3.9/tests/test_lostimg_screenshot_validation.py +16 -0
- upload_assistant-3.9/tests/test_lst.py +95 -0
- upload_assistant-3.9/tests/test_makingoff_dupes.py +6 -0
- upload_assistant-3.9/tests/test_makingoff_index.py +72 -0
- upload_assistant-3.9/tests/test_makingoff_rules.py +71 -0
- upload_assistant-3.9/tests/test_manual_category.py +32 -0
- upload_assistant-3.9/tests/test_meta.py +36 -0
- upload_assistant-3.9/tests/test_metadata_cache.py +55 -0
- upload_assistant-3.9/tests/test_metadata_search_year.py +19 -0
- upload_assistant-3.9/tests/test_midnightscene.py +73 -0
- upload_assistant-3.9/tests/test_mkbrr.py +70 -0
- upload_assistant-3.9/tests/test_music_architecture.py +990 -0
- upload_assistant-3.9/tests/test_music_cover_hosting.py +34 -0
- upload_assistant-3.9/tests/test_new_nexusphp_trackers.py +100 -0
- upload_assistant-3.9/tests/test_nordicquality.py +131 -0
- upload_assistant-3.9/tests/test_nzbgeek.py +65 -0
- upload_assistant-3.9/tests/test_openlibrary_cache.py +63 -0
- upload_assistant-3.9/tests/test_peergarden.py +261 -0
- upload_assistant-3.9/tests/test_portuguese_subtitles.py +37 -0
- upload_assistant-3.9/tests/test_post_upload_hooks.py +91 -0
- upload_assistant-3.9/tests/test_prep_early_screenshots.py +326 -0
- upload_assistant-3.9/tests/test_privatehd_rules.py +67 -0
- upload_assistant-3.9/tests/test_qbittorrent_proxy_retry.py +160 -0
- upload_assistant-3.9/tests/test_rastastugan.py +23 -0
- upload_assistant-3.9/tests/test_rehostimages.py +150 -0
- upload_assistant-3.9/tests/test_retromoviesclub.py +50 -0
- upload_assistant-3.9/tests/test_rockethd.py +55 -0
- upload_assistant-3.9/tests/test_samaritano.py +55 -0
- upload_assistant-3.9/tests/test_screenshot_par.py +19 -0
- upload_assistant-3.9/tests/test_screenshot_review.py +296 -0
- upload_assistant-3.9/tests/test_seedpool.py +31 -0
- upload_assistant-3.9/tests/test_shell_completions.py +31 -0
- upload_assistant-3.9/tests/test_stdin_paths.py +55 -0
- upload_assistant-3.9/tests/test_takescreens_ffmpeg.py +185 -0
- upload_assistant-3.9/tests/test_temp_paths.py +50 -0
- upload_assistant-3.9/tests/test_tlzdigital.py +63 -0
- upload_assistant-3.9/tests/test_tonemapped_header_import.py +298 -0
- upload_assistant-3.9/tests/test_torrent_reuse.py +215 -0
- upload_assistant-3.9/tests/test_torrenthr.py +35 -0
- upload_assistant-3.9/tests/test_torrentleech_description.py +40 -0
- upload_assistant-3.9/tests/test_tracker_descriptions.py +260 -0
- upload_assistant-3.9/tests/test_tracker_id_args.py +293 -0
- upload_assistant-3.9/tests/test_tracker_metadata_cache.py +59 -0
- upload_assistant-3.9/tests/test_tracker_setup.py +78 -0
- upload_assistant-3.9/tests/test_tracker_tags.py +35 -0
- upload_assistant-3.9/tests/test_ulcx_rules.py +214 -0
- upload_assistant-3.9/tests/test_unit3d_flags.py +301 -0
- upload_assistant-3.9/tests/test_unit3d_search_existing.py +76 -0
- upload_assistant-3.9/tests/test_update_notification.py +29 -0
- upload_assistant-3.9/tests/test_uphelper_prompts.py +169 -0
- upload_assistant-3.9/tests/test_upload_xxx.py +16 -0
- upload_assistant-3.9/tests/test_uploadscreens.py +236 -0
- upload_assistant-3.9/tests/test_usenet_cli.py +51 -0
- upload_assistant-3.9/tests/test_usenet_par2.py +88 -0
- upload_assistant-3.9/tests/test_video_hdr.py +23 -0
- upload_assistant-3.9/tests/test_webui_config_paths.py +47 -0
- upload_assistant-3.9/tests/test_webui_conpty.py +87 -0
- upload_assistant-3.9/tests/test_webui_kill.py +132 -0
- upload_assistant-3.9/tests/test_webui_subprocess_ui.py +51 -0
- upload_assistant-3.9/tests/test_webui_trackers.py +88 -0
- upload_assistant-3.9/tests/test_windows_release_workflow.py +43 -0
- upload_assistant-3.9/tests/test_windows_update_atomic_install.py +112 -0
- upload_assistant-3.9/tests/test_xxx_contact_sheets.py +195 -0
- upload_assistant-3.9/tests/test_xxx_detection.py +131 -0
- upload_assistant-3.9/tests/test_zipline_upload.py +135 -0
- upload_assistant-3.9/tests/test_znth.py +92 -0
- upload_assistant-3.9/upload.py +3201 -0
- upload_assistant-3.9/upload_assistant.egg-info/PKG-INFO +503 -0
- upload_assistant-3.9/upload_assistant.egg-info/SOURCES.txt +494 -0
- upload_assistant-3.9/upload_assistant.egg-info/dependency_links.txt +1 -0
- upload_assistant-3.9/upload_assistant.egg-info/entry_points.txt +3 -0
- upload_assistant-3.9/upload_assistant.egg-info/requires.txt +63 -0
- upload_assistant-3.9/upload_assistant.egg-info/top_level.txt +6 -0
- upload_assistant-3.9/web_ui/__init__.py +4 -0
- upload_assistant-3.9/web_ui/access_log.py +182 -0
- upload_assistant-3.9/web_ui/auth.py +640 -0
- upload_assistant-3.9/web_ui/server.py +6133 -0
- upload_assistant-3.9/web_ui/static/css/theme.css +261 -0
- upload_assistant-3.9/web_ui/static/favicon.ico +0 -0
- upload_assistant-3.9/web_ui/static/img/apple-touch-icon.png +0 -0
- upload_assistant-3.9/web_ui/static/img/icon-192.png +0 -0
- upload_assistant-3.9/web_ui/static/img/logo.png +0 -0
- upload_assistant-3.9/web_ui/static/img/logo.svg +177 -0
- upload_assistant-3.9/web_ui/static/img/providers/discogs.svg +20 -0
- upload_assistant-3.9/web_ui/static/img/providers/douban.svg +1 -0
- upload_assistant-3.9/web_ui/static/img/providers/google_books.svg +1 -0
- upload_assistant-3.9/web_ui/static/img/providers/igdb.svg +13 -0
- upload_assistant-3.9/web_ui/static/img/providers/igdb_light.svg +11 -0
- upload_assistant-3.9/web_ui/static/img/providers/imdb.svg +3 -0
- upload_assistant-3.9/web_ui/static/img/providers/mal.svg +21 -0
- upload_assistant-3.9/web_ui/static/img/providers/musicbrainz.ico +0 -0
- upload_assistant-3.9/web_ui/static/img/providers/openlibrary.svg +123 -0
- upload_assistant-3.9/web_ui/static/img/providers/steam.svg +1 -0
- upload_assistant-3.9/web_ui/static/img/providers/tmdb.svg +1 -0
- upload_assistant-3.9/web_ui/static/img/providers/tvdb.svg +1 -0
- upload_assistant-3.9/web_ui/static/img/providers/tvmaze.svg +17 -0
- upload_assistant-3.9/web_ui/static/img/trackers/1ptba.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/aither.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/alpharatio.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/amigosshare.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/anthelion.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/asiancinema.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/avistaz.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/beyondhd.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/bithdtv.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/bitporn.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/bjshare.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/blutopia.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/brasiltracker.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/broadcasthenet.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/capybarabr.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/cathoderaytube.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/cinematik.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/cinemaz.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/curupira.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/darkpeers.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/desitorrents.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/digitalcore.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/dreadvault.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/drunkenslug.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/emuwarez.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/filelist.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/flood.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/funfile.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/greatposterwall.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/hawkeuno.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/hdbits.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/hdspace.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/hdtorrents.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/homiehelpdesk.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/immortalseed.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/infinityhd.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/iptorrents.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/itatorrents.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/lajidui.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/lastdigitalunderground.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/latteam.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/lemonhd.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/locadora.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/longpt.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/lst.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/luminarr.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/makingoff.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/midnightscene.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/mteam.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/nebulance.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/nordicquality.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/nzbgeek.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/oldtoonsworld.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/onlyencodes.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/orpheus.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/passthepopcorn.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/peergarden.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/polishtorrent.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/portugas.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/privatehd.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/ptcafe.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/pterclub.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/ptfans.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/ptgtk.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/ptskit.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/ptzone.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/racing4everyone.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/railgunpt.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/rastastugan.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/reelflix.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/retroflix.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/retromoviesclub.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/rockethd.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/samaritano.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/seedpool.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/shareisland.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/skipthecommercials.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/speedapp.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/swarmazon.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/theleachzone.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/theoldschool.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/torrenteros.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/torrenthr.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/torrentleech.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/totheglory.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/tvchaosuk.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/ulcx.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/utopia.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/xingyungept.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/yuscene.png +0 -0
- upload_assistant-3.9/web_ui/static/img/trackers/zenith.png +0 -0
- upload_assistant-3.9/web_ui/static/img/webui-icons/book.svg +6 -0
- upload_assistant-3.9/web_ui/static/img/webui-icons/file-structure.svg +2 -0
- upload_assistant-3.9/web_ui/static/img/webui-icons/gamepad.svg +4 -0
- upload_assistant-3.9/web_ui/static/img/webui-icons/movie.svg +7 -0
- upload_assistant-3.9/web_ui/static/img/webui-icons/music.svg +9 -0
- upload_assistant-3.9/web_ui/static/img/webui-icons/palette.svg +8 -0
- upload_assistant-3.9/web_ui/static/img/webui-icons/screenshots.svg +17 -0
- upload_assistant-3.9/web_ui/static/img/webui-icons/settings.svg +4 -0
- upload_assistant-3.9/web_ui/static/img/webui-icons/tv.svg +20 -0
- upload_assistant-3.9/web_ui/static/js/app.js +6626 -0
- upload_assistant-3.9/web_ui/static/js/config_app.js +3988 -0
- upload_assistant-3.9/web_ui/static/js/package-lock.json +3866 -0
- upload_assistant-3.9/web_ui/static/js/package.json +20 -0
- upload_assistant-3.9/web_ui/static/js/shared_utils.js +213 -0
- upload_assistant-3.9/web_ui/static/js/web_ui/static/js/package-lock.json +6 -0
- upload_assistant-3.9/web_ui/static/manifest.webmanifest +20 -0
- upload_assistant-3.9/web_ui/templates/config.html +81 -0
- upload_assistant-3.9/web_ui/templates/index.html +130 -0
- upload_assistant-3.9/web_ui/templates/login.html +320 -0
- upload_assistant-3.9/web_ui/templates/login_recovery.html +128 -0
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
# Upload Assistant Public License (UAPL) v1.0
|
|
2
|
+
Copyright © Audionut & wastaken7
|
|
3
|
+
|
|
4
|
+
Permission is hereby granted to any person obtaining a copy of this software and
|
|
5
|
+
associated documentation files (the “Software”) to use, copy, modify, merge,
|
|
6
|
+
publish, and distribute the Software, subject to the following conditions:
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## 1. Branding and Attribution Protection
|
|
11
|
+
|
|
12
|
+
**1.1.**
|
|
13
|
+
The names **“Upload Assistant”**, **“Audionut”**, and any confusingly similar
|
|
14
|
+
variants **may not** be used in derivative works in a manner that suggests the
|
|
15
|
+
derivative is an official version, endorsed version, approved continuation, or
|
|
16
|
+
authorized build of the original project.
|
|
17
|
+
|
|
18
|
+
**1.2.**
|
|
19
|
+
Derivative works **must not** replace, modify, rename, or repurpose:
|
|
20
|
+
- Any identifiers, markers, strings, signatures, metadata blocks, timestamps,
|
|
21
|
+
or other automated output branding generated by the Software, **except to remove such identifiers entirely**;
|
|
22
|
+
- **Any license headers or attribution notices in source files must be preserved**.
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
**1.3.**
|
|
26
|
+
Derivative works **may not** introduce new identifiers, branding, promotional
|
|
27
|
+
markings, or tool-generated labels or HTTP/S links that imply the derivative is:
|
|
28
|
+
- an **upload tool**,
|
|
29
|
+
- a replacement or continuation of **Upload Assistant**,
|
|
30
|
+
- or any other tool intended to performing the same function or role,
|
|
31
|
+
by **reusing or adapting the original branding mechanisms, output structures,
|
|
32
|
+
or auto-generated identifiers** provided by the Software.
|
|
33
|
+
|
|
34
|
+
**1.4.**
|
|
35
|
+
The Software and derivative works **must not** misrepresent authorship,
|
|
36
|
+
affiliation, origin, identity, project lineage, or repository linkage.
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## 2. Fork Disclosure Requirement
|
|
41
|
+
|
|
42
|
+
Any distributed derivative work **must disclose** that it is a fork or
|
|
43
|
+
modification of the original “Upload Assistant” project and must include a clear
|
|
44
|
+
notice that it is **not** the official version.
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## 3. Credential and Key Restrictions
|
|
49
|
+
|
|
50
|
+
**3.1.**
|
|
51
|
+
The embedded, obfuscated key included with the Software is licensed
|
|
52
|
+
**solely for use in the official “Upload Assistant” project**.
|
|
53
|
+
|
|
54
|
+
**3.2.**
|
|
55
|
+
You may **not**:
|
|
56
|
+
- extract, reuse, modify, deobfuscate, or redistribute the key;
|
|
57
|
+
- use the key in forks, derivative works, modified builds, or alternative tools;
|
|
58
|
+
- circumvent or attempt to circumvent any obfuscation or protective measures.
|
|
59
|
+
|
|
60
|
+
**3.3.**
|
|
61
|
+
Any use of the key outside the official project is strictly prohibited and
|
|
62
|
+
terminates all rights granted by this license.
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## 4. Modification and Distribution
|
|
67
|
+
|
|
68
|
+
You may modify the Software and distribute such modifications, provided that:
|
|
69
|
+
|
|
70
|
+
**4.1.**
|
|
71
|
+
You comply with all branding and credential restrictions in Sections 1 and 3.
|
|
72
|
+
|
|
73
|
+
**4.2.**
|
|
74
|
+
You retain this license text in full.
|
|
75
|
+
|
|
76
|
+
**4.3.**
|
|
77
|
+
You include a notice stating:
|
|
78
|
+
*“This is a modified version of the Upload Assistant project and is not
|
|
79
|
+
affiliated with or endorsed by Audionut.”*
|
|
80
|
+
|
|
81
|
+
**4.4.**
|
|
82
|
+
You do not imply that the upstream project or author endorses your modifications.
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## 5. No Warranty
|
|
87
|
+
|
|
88
|
+
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
89
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
90
|
+
FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT.
|
|
91
|
+
|
|
92
|
+
THE AUTHOR SHALL NOT BE LIABLE FOR ANY CLAIM, DAMAGES, OR OTHER LIABILITY
|
|
93
|
+
ARISING FROM THE SOFTWARE OR ITS USE.
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## 6. Termination
|
|
98
|
+
|
|
99
|
+
Any breach of Sections **1**, **2**, or **3** results in **automatic and immediate
|
|
100
|
+
termination** of all rights granted under this license.
|
|
101
|
+
|
|
102
|
+
Upon termination, you must cease all distribution and delete all copies of the
|
|
103
|
+
Software and derivative works in your possession.
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## 7. Compatibility
|
|
108
|
+
|
|
109
|
+
This license is **not** an OSI-approved license.
|
|
110
|
+
Software licensed under this license may not be combined with code under
|
|
111
|
+
licenses that require unrestricted modification or removal of branding or
|
|
112
|
+
identification clauses.
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
**END OF LICENSE**
|
|
@@ -0,0 +1,503 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: upload-assistant
|
|
3
|
+
Version: 3.9
|
|
4
|
+
Summary: A simple tool to take the work out of uploading.
|
|
5
|
+
Author: wastaken7
|
|
6
|
+
Maintainer: wastaken7
|
|
7
|
+
Project-URL: Homepage, https://github.com/wastaken7/Upload-Assistant
|
|
8
|
+
Project-URL: Documentation, https://github.com/wastaken7/Upload-Assistant/tree/master/docs
|
|
9
|
+
Project-URL: Issues, https://github.com/wastaken7/Upload-Assistant/issues
|
|
10
|
+
Project-URL: Source, https://github.com/wastaken7/Upload-Assistant
|
|
11
|
+
Keywords: media,torrent,upload-assistant
|
|
12
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
13
|
+
Classifier: Environment :: Console
|
|
14
|
+
Classifier: Intended Audience :: End Users/Desktop
|
|
15
|
+
Classifier: Programming Language :: Python :: 3
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
17
|
+
Classifier: Topic :: Multimedia
|
|
18
|
+
Classifier: Topic :: Utilities
|
|
19
|
+
Requires-Python: >=3.14
|
|
20
|
+
Description-Content-Type: text/markdown
|
|
21
|
+
License-File: LICENSE
|
|
22
|
+
Requires-Dist: aiofiles==25.1.0
|
|
23
|
+
Requires-Dist: aiohttp==3.14.3
|
|
24
|
+
Requires-Dist: anitopy==2.1.1
|
|
25
|
+
Requires-Dist: argcomplete>=3.7.2
|
|
26
|
+
Requires-Dist: argon2-cffi==25.1.0
|
|
27
|
+
Requires-Dist: babel==2.17.0
|
|
28
|
+
Requires-Dist: bbcode==1.1.0
|
|
29
|
+
Requires-Dist: beautifulsoup4==4.14.2
|
|
30
|
+
Requires-Dist: bencode-py==4.0.0
|
|
31
|
+
Requires-Dist: cachelib==0.13.0
|
|
32
|
+
Requires-Dist: certifi==2026.1.4
|
|
33
|
+
Requires-Dist: cli-ui==0.19.0
|
|
34
|
+
Requires-Dist: click==8.4.2
|
|
35
|
+
Requires-Dist: cloudscraper==1.2.71
|
|
36
|
+
Requires-Dist: cryptography==50.0.0
|
|
37
|
+
Requires-Dist: defusedxml==0.7.1
|
|
38
|
+
Requires-Dist: deluge-client==1.10.2
|
|
39
|
+
Requires-Dist: discord-py==2.6.4
|
|
40
|
+
Requires-Dist: ffmpeg-python==0.2.0
|
|
41
|
+
Requires-Dist: flask==3.1.3
|
|
42
|
+
Requires-Dist: flask-cors==6.0.2
|
|
43
|
+
Requires-Dist: flask-limiter==3.11.0
|
|
44
|
+
Requires-Dist: flask-session==0.8.0
|
|
45
|
+
Requires-Dist: guessit==3.8.0
|
|
46
|
+
Requires-Dist: httpx==0.28.1
|
|
47
|
+
Requires-Dist: jinja2==3.1.6
|
|
48
|
+
Requires-Dist: keyring==25.6.0
|
|
49
|
+
Requires-Dist: langcodes==3.5.1
|
|
50
|
+
Requires-Dist: language-data==1.4.0
|
|
51
|
+
Requires-Dist: librosa>=1.0.0
|
|
52
|
+
Requires-Dist: lxml==6.1.0
|
|
53
|
+
Requires-Dist: matplotlib>=3.10.9
|
|
54
|
+
Requires-Dist: mobi==0.4.1
|
|
55
|
+
Requires-Dist: mutagen==1.47.0
|
|
56
|
+
Requires-Dist: nest-asyncio==1.6.0
|
|
57
|
+
Requires-Dist: numpy==2.4.4
|
|
58
|
+
Requires-Dist: packaging<25,>=21
|
|
59
|
+
Requires-Dist: pillow==12.3.0
|
|
60
|
+
Requires-Dist: psutil==7.2.2
|
|
61
|
+
Requires-Dist: pycountry==24.6.1
|
|
62
|
+
Requires-Dist: pyimgbox==1.0.7
|
|
63
|
+
Requires-Dist: pymediainfo==7.0.1
|
|
64
|
+
Requires-Dist: pymupdf==1.28.0
|
|
65
|
+
Requires-Dist: pyotp==2.9.0
|
|
66
|
+
Requires-Dist: pywinpty==3.0.5; sys_platform == "win32"
|
|
67
|
+
Requires-Dist: qbittorrent-api==2026.6.0
|
|
68
|
+
Requires-Dist: rarfile==4.2
|
|
69
|
+
Requires-Dist: regex==2025.11.3
|
|
70
|
+
Requires-Dist: requests==2.33.0
|
|
71
|
+
Requires-Dist: resvg-py==0.3.3
|
|
72
|
+
Requires-Dist: rich==13.9.4
|
|
73
|
+
Requires-Dist: setuptools==83.0.0
|
|
74
|
+
Requires-Dist: tmdbsimple==2.9.1
|
|
75
|
+
Requires-Dist: torf==4.3.0
|
|
76
|
+
Requires-Dist: tqdm==4.67.1
|
|
77
|
+
Requires-Dist: transmission-rpc==7.0.11
|
|
78
|
+
Requires-Dist: tvdb-v4-official==1.1.0
|
|
79
|
+
Requires-Dist: typing-extensions==4.15.0
|
|
80
|
+
Requires-Dist: unidecode==1.4.0
|
|
81
|
+
Requires-Dist: urllib3==2.7.0
|
|
82
|
+
Requires-Dist: waitress==3.0.2
|
|
83
|
+
Dynamic: license-file
|
|
84
|
+
|
|
85
|
+
<div align="center">
|
|
86
|
+
<img src="docs/assets/logo.svg" alt="Upload Assistant Logo" width="160" height="160" />
|
|
87
|
+
<h1>Upload-Assistant</h1>
|
|
88
|
+
<p>Streamline media preparation and uploads across private trackers & usenet indexers.</p>
|
|
89
|
+
|
|
90
|
+
[](https://www.python.org/) [](LICENSE) [](https://github.com/astral-sh/ruff) [](https://github.com/microsoft/pyright) [](https://prettier.io) [](https://github.com/wastaken7/Upload-Assistant/actions/workflows/docker-image.yml)
|
|
91
|
+
|
|
92
|
+
</div>
|
|
93
|
+
|
|
94
|
+
> [!IMPORTANT]
|
|
95
|
+
> **This is a modified version of the Upload Assistant project and is not affiliated with or endorsed by Audionut.**
|
|
96
|
+
|
|
97
|
+
## Table of Contents
|
|
98
|
+
|
|
99
|
+
- [Fork Features & Differences from Upstream (Audionut/Upload-Assistant)](#fork-features--differences-from-upstream-audionutupload-assistant)
|
|
100
|
+
- [1. New Media Category Support](#1-new-media-category-support)
|
|
101
|
+
- [2. Audio Stream Spectrogram Generation](#2-audio-stream-spectrogram-generation)
|
|
102
|
+
- [3. qBittorrent Bandwidth Control](#3-qbittorrent-bandwidth-control)
|
|
103
|
+
- [4. Argument-Embedded Text Queue](#4-argument-embedded-text-queue)
|
|
104
|
+
- [5. Usenet & Indexer Posting](#5-usenet--indexer-posting)
|
|
105
|
+
- [6. Interactive Screenshot Review Workflow](#6-interactive-screenshot-review-workflow)
|
|
106
|
+
- [7. Persistent TTL-Based Metadata Cache](#7-persistent-ttl-based-metadata-cache)
|
|
107
|
+
- [8. Modern Web UI & Real-Time Engine](#8-modern-web-ui--real-time-engine)
|
|
108
|
+
- [Supported Sites](#supported-sites)
|
|
109
|
+
- [Setup Guide](#setup-guide)
|
|
110
|
+
- [Step 1: Install Required Tools](#step-1-install-required-tools)
|
|
111
|
+
- [Step 2: Download Upload Assistant](#step-2-download-upload-assistant-linuxmacos)
|
|
112
|
+
- [Step 3: Install Python Packages](#step-3-install-python-packages-linuxmacos)
|
|
113
|
+
- [Step 4: Configure the Assistant](#step-4-configure-the-assistant)
|
|
114
|
+
- [Updating](#updating)
|
|
115
|
+
- [CLI Usage](#cli-usage)
|
|
116
|
+
- [Shell Completions](docs/shell-completions.md)
|
|
117
|
+
- [Docker Usage](#docker-usage)
|
|
118
|
+
- [Seedbox / Linux Install](docs/seedbox.md)
|
|
119
|
+
- [Attributions](#attributions)
|
|
120
|
+
- [Contributors](#contributors)
|
|
121
|
+
|
|
122
|
+
## Fork Features & Differences from Upstream (Audionut/Upload-Assistant)
|
|
123
|
+
|
|
124
|
+
This branch introduces new media categories and automation features not present in the upstream Audionut repository:
|
|
125
|
+
|
|
126
|
+
### 1. New Media Category Support
|
|
127
|
+
|
|
128
|
+
- **Ebook & Audiobook (`BOOK` Category)**:
|
|
129
|
+
- **Automatic Type Detection**: Classifies uploads into Ebooks (PDF, EPUB, MOBI), Comics/Manga (CBR, CBZ), Newspapers, or Audiobooks.
|
|
130
|
+
- **Local Metadata Extraction**: Reads metadata from OPF files in EPUB/MOBI, `ComicInfo.xml` in CBR/CBZ, parses tags via Mutagen for audiobooks, and uses PyMuPDF (`fitz`) with checksum-validated regex to extract ISBNs from PDFs.
|
|
131
|
+
- **API Integrations**: Queries **MyAnonamouse (MAM) API**, **Google Books API**, and **OpenLibrary API** for automated metadata lookup.
|
|
132
|
+
- **Artwork & Screenshot Generation**: Renders gallery screenshots from PDF/EPUB pages, extracts cover artwork, and auto-generates `POSTER.png`.
|
|
133
|
+
- **Smart Duplicate Checking**: Custom rules distinguishing formats (e.g., EPUB vs PDF) and audiobooks vs ebooks, with tracker-specific overrides.
|
|
134
|
+
- **Video Game (`GAME` Category)**:
|
|
135
|
+
- **Game Directory Parsing**: Priority scans for executables (`.exe`), disc images (`.iso`), or archives (`.rar`, `.zip`, etc.) in the upload path.
|
|
136
|
+
- **IGDB & Steam Metadata API**: Queries Twitch/IGDB API for storyline, ratings, involved companies, release year, genre mapping, and downloads cover images. Fetches PC system requirements via Steam Store API.
|
|
137
|
+
- **Platform Detection**: Identifies systems (PC, PS5, Switch, Xbox Series X|S, etc.) and enforces platform-group duplicate checks (so Switch uploads aren't blocked by PC dupes).
|
|
138
|
+
- **Platform-specific Prompts**: Attended prompts for console TV standard (NTSC/PAL) and region codes (USA/EUR/JPN) for trackers like BJSHARE.
|
|
139
|
+
- **Music (`MUSIC` Category)**:
|
|
140
|
+
- **Local Tag & Metadata Extraction**: Parses audio tags, cue sheets, and rip logs (EAC, XLD, etc.) using Mutagen to extract tracklists, artists, and audio metadata.
|
|
141
|
+
- **Discogs & MusicBrainz APIs**: Optionally queries external APIs (Discogs via release/master ID or URL, and MusicBrainz) for metadata enrichment.
|
|
142
|
+
- **Artwork & Cover Extraction**: Automatically searches for local cover images or extracts embedded artwork from FLAC/MP3/M4A tags to upload to image hosts.
|
|
143
|
+
- **Preflight & Rule Validation**: Enforces mechanical validation for audio formats, sample/bit rates, track counts, and hybrid setups before uploading.
|
|
144
|
+
|
|
145
|
+
### 2. Audio Stream Spectrogram Generation
|
|
146
|
+
|
|
147
|
+
- **Spectrogram Extraction & Plotting**: Use `-as` / `--audio-spectrogram` to automatically extract audio streams from MKVs, Blu-ray BDInfo, music tracks, or audiobook chapters using FFmpeg and plot frequency/time graphs (inferno theme) via `librosa` and `matplotlib`. Music and audiobook processing is capped by `audio_spectrogram_max_files`.
|
|
148
|
+
- **Dynamic HDR Metadata Plots**: Use `--dynamic-hdr-plot` to create and upload separate Dolby Vision and HDR10+ metadata plots. The required `dovi_tool` and `hdr10plus_tool` binaries are downloaded automatically for the current platform on first use.
|
|
149
|
+
- **Automated Upload**: Automatically uploads generated spectrograms along with your screenshots for release verification.
|
|
150
|
+
- **Stream Selection**: Supports targeting specific tracks using `-ast` / `--audio-spectrogram-tracks` (e.g., track indexes or `all`).
|
|
151
|
+
|
|
152
|
+
### 3. qBittorrent Bandwidth Control
|
|
153
|
+
|
|
154
|
+
- **Traffic Control**: Prevents overloading your connection during uploads using `-qbcon` / `--qbit-bw-control`.
|
|
155
|
+
- **Dynamic Wait**: Pauses uploading if your active client upload speed exceeds a threshold (`qbit_bandwidth_threshold` KB/s) and resumes once it stays below the limit for a set time (`qbit_bandwidth_time` seconds).
|
|
156
|
+
- **Safe Rechecking**: Performs a second duplicate check after the bandwidth wait to ensure a duplicate wasn't posted while the client was waiting.
|
|
157
|
+
|
|
158
|
+
### 4. Argument-Embedded Text Queue
|
|
159
|
+
|
|
160
|
+
- **Custom Parameter Queues**: When running batch uploads with a `.txt` queue file, each line is treated as an independent execution command.
|
|
161
|
+
- **shlex-Split Parsing**: Allows specifying unique CLI arguments (e.g., different IMDB IDs, tags, or tracker targets) for each file/folder on its respective line.
|
|
162
|
+
- **Resume Capability**: Logs processed lines to prevent reprocessing completed uploads if a queue run is interrupted.
|
|
163
|
+
|
|
164
|
+
### 5. Usenet & Indexer Posting
|
|
165
|
+
|
|
166
|
+
- **Usenet Upload Support**: Automatically archives and splits files/folders (via `7z`), generates parity recovery blocks (via `par2`), and uploads them to Usenet (via `nyuu`).
|
|
167
|
+
- **Anonymity & Privacy**: Generates randomized poster details and obfuscates post subject lines to protect privacy.
|
|
168
|
+
- **Indexer Integration**: Automatically uploads the generated `.nzb` file to configured Usenet indexers.
|
|
169
|
+
|
|
170
|
+
### 6. Interactive Screenshot Review Workflow
|
|
171
|
+
|
|
172
|
+
- **Manual Screenshot Review**: Inspect, add, delete, or replace/recapture individual frames before uploading through the interactive Web UI.
|
|
173
|
+
|
|
174
|
+
### 7. Persistent TTL-Based Metadata Cache
|
|
175
|
+
|
|
176
|
+
- **Provider-Scoped API Caching**: Disk-cached metadata for TMDb, IMDb, TVDB, TVmaze, OpenLibrary, IGDB, Discogs, and MusicBrainz.
|
|
177
|
+
- **Performance & Rate Limit Protection**: Configurable TTL and negative caching reuse fetched metadata across runs, avoiding redundant API calls and preventing rate-limiting bans.
|
|
178
|
+
|
|
179
|
+
### 8. Modern Web UI & Real-Time Engine
|
|
180
|
+
|
|
181
|
+
- **Full Parity Web UI**: Modern interface providing full feature parity with CLI options (`--webui`).
|
|
182
|
+
- **Real-Time Execution & Presets**: Live log streams, real-time preparation preview, preset saving, and interactive screenshot management.
|
|
183
|
+
|
|
184
|
+
## Supported Sites
|
|
185
|
+
|
|
186
|
+
<details>
|
|
187
|
+
<summary><strong>Click to view Supported Torrent Trackers</strong></summary>
|
|
188
|
+
|
|
189
|
+
| | Site | Usage | Supported Categories |
|
|
190
|
+
| ------------------------------------------------------------------------------------------ | ---------------------- | ---------------------- | ---------------------------- |
|
|
191
|
+
| <img src="web_ui/static/img/trackers/1ptba.png" width="16" height="16" /> | 1PTBA | 1PTBA | MOVIE, TV |
|
|
192
|
+
| <img src="web_ui/static/img/trackers/aither.png" width="16" height="16" /> | Aither | AITHER | MOVIE, TV |
|
|
193
|
+
| <img src="web_ui/static/img/trackers/alpharatio.png" width="16" height="16" /> | Alpharatio | ALPHARATIO | MOVIE, TV |
|
|
194
|
+
| <img src="web_ui/static/img/trackers/amigosshare.png" width="16" height="16" /> | Amigos-Share | AMIGOSSHARE | MOVIE, TV, BOOK, GAME |
|
|
195
|
+
| <img src="web_ui/static/img/trackers/anthelion.png" width="16" height="16" /> | Anthelion | ANTHELION | MOVIE |
|
|
196
|
+
| <img src="web_ui/static/img/trackers/asiancinema.png" width="16" height="16" /> | AsianCinema | ASIANCINEMA | MOVIE, TV |
|
|
197
|
+
| <img src="web_ui/static/img/trackers/avistaz.png" width="16" height="16" /> | AvistaZ | AVISTAZ | MOVIE, TV |
|
|
198
|
+
| <img src="web_ui/static/img/trackers/beyondhd.png" width="16" height="16" /> | Beyond-HD | BEYONDHD | MOVIE, TV |
|
|
199
|
+
| <img src="web_ui/static/img/trackers/bithdtv.png" width="16" height="16" /> | BitHDTV | BITHDTV | MOVIE, TV |
|
|
200
|
+
| <img src="web_ui/static/img/trackers/bitporn.png" width="16" height="16" /> | BitPorn | BITPORN | XXX |
|
|
201
|
+
| <img src="web_ui/static/img/trackers/blutopia.png" width="16" height="16" /> | Blutopia | BLUTOPIA | MOVIE, TV |
|
|
202
|
+
| <img src="web_ui/static/img/trackers/bjshare.png" width="16" height="16" /> | BrasilJapão-Share | BJSHARE | MOVIE, TV, BOOK, GAME, XXX |
|
|
203
|
+
| <img src="web_ui/static/img/trackers/brasiltracker.png" width="16" height="16" /> | BrasilTracker | BRASILTRACKER | MOVIE, TV, BOOK, GAME |
|
|
204
|
+
| <img src="web_ui/static/img/trackers/broadcasthenet.png" width="16" height="16" /> | BroadcasTheNet | BROADCASTHENET | TV |
|
|
205
|
+
| <img src="web_ui/static/img/trackers/capybarabr.png" width="16" height="16" /> | CapybaraBR | CAPYBARABR | MOVIE, TV, BOOK, GAME |
|
|
206
|
+
| <img src="web_ui/static/img/trackers/cathoderaytube.png" width="16" height="16" /> | Cathode-Ray.Tube | CATHODERAYTUBE | MOVIE, TV, GAME |
|
|
207
|
+
| <img src="web_ui/static/img/trackers/cinematik.png" width="16" height="16" /> | Cinematik | CINEMATIK | MOVIE, TV |
|
|
208
|
+
| <img src="web_ui/static/img/trackers/cinemaz.png" width="16" height="16" /> | CinemaZ | CINEMAZ | MOVIE, TV |
|
|
209
|
+
| <img src="web_ui/static/img/trackers/darkpeers.png" width="16" height="16" /> | DarkPeers | DARKPEERS | MOVIE, TV, BOOK, GAME, MUSIC |
|
|
210
|
+
| <img src="web_ui/static/img/trackers/desitorrents.png" width="16" height="16" /> | DesiTorrents | DESITORRENTS | MOVIE, TV |
|
|
211
|
+
| <img src="web_ui/static/img/trackers/digitalcore.png" width="16" height="16" /> | DigitalCore | DIGITALCORE | MOVIE, TV, BOOK, GAME, MUSIC |
|
|
212
|
+
| <img src="web_ui/static/img/trackers/dreadvault.png" alt="" width="16" height="16" /> | DreadVault | DREADVAULT | MOVIE, TV |
|
|
213
|
+
| <img src="web_ui/static/img/trackers/emuwarez.png" width="16" height="16" /> | Emuwarez | EMUWAREZ | MOVIE, TV |
|
|
214
|
+
| <img src="web_ui/static/img/trackers/filelist.png" width="16" height="16" /> | FileList | FILELIST | MOVIE, TV |
|
|
215
|
+
| <img src="web_ui/static/img/trackers/flood.png" width="16" height="16" /> | Flood | FLOOD | MOVIE, TV |
|
|
216
|
+
| <img src="web_ui/static/img/trackers/funfile.png" width="16" height="16" /> | FunFile | FUNFILE | MOVIE, TV |
|
|
217
|
+
| <img src="web_ui/static/img/trackers/greatposterwall.png" width="16" height="16" /> | GreatPosterWall | GREATPOSTERWALL | MOVIE |
|
|
218
|
+
| <img src="web_ui/static/img/trackers/hawkeuno.png" width="16" height="16" /> | hawke-uno | HAWKEUNO | MOVIE, TV |
|
|
219
|
+
| <img src="web_ui/static/img/trackers/hdbits.png" width="16" height="16" /> | HDBits | HDBITS | MOVIE, TV |
|
|
220
|
+
| <img src="web_ui/static/img/trackers/hdspace.png" width="16" height="16" /> | HD-Space | HDSPACE | MOVIE, TV |
|
|
221
|
+
| <img src="web_ui/static/img/trackers/hdtorrents.png" width="16" height="16" /> | HD-Torrents | HDTORRENTS | MOVIE, TV |
|
|
222
|
+
| <img src="web_ui/static/img/trackers/homiehelpdesk.png" width="16" height="16" /> | HomieHelpDesk | HOMIEHELPDESK | MOVIE, TV, BOOK, GAME, MUSIC |
|
|
223
|
+
| <img src="web_ui/static/img/trackers/immortalseed.png" width="16" height="16" /> | ImmortalSeed | IMMORTALSEED | MOVIE, TV, BOOK, MUSIC, GAME |
|
|
224
|
+
| <img src="web_ui/static/img/trackers/infinityhd.png" width="16" height="16" /> | InfinityHD | INFINITYHD | MOVIE, TV |
|
|
225
|
+
| <img src="web_ui/static/img/trackers/iptorrents.png" width="16" height="16" /> | IPTorrents | IPTORRENTS | MOVIE, TV, BOOK, GAME, MUSIC |
|
|
226
|
+
| <img src="web_ui/static/img/trackers/itatorrents.png" width="16" height="16" /> | ItaTorrents | ITATORRENTS | MOVIE, TV |
|
|
227
|
+
| <img src="web_ui/static/img/trackers/lajidui.png" width="16" height="16" /> | lajidui | LAJIDUI | MOVIE, TV |
|
|
228
|
+
| <img src="web_ui/static/img/trackers/lemonhd.png" width="16" height="16" /> | LemonHD | LEMONHD | MOVIE, TV |
|
|
229
|
+
| <img src="web_ui/static/img/trackers/lastdigitalunderground.png" width="16" height="16" /> | LastDigitalUnderground | LASTDIGITALUNDERGROUND | MOVIE, TV, BOOK |
|
|
230
|
+
| <img src="web_ui/static/img/trackers/latteam.png" width="16" height="16" /> | Lat-Team | LATTEAM | MOVIE, TV, BOOK |
|
|
231
|
+
| <img src="web_ui/static/img/trackers/locadora.png" width="16" height="16" /> | Locadora | LOCADORA | MOVIE, TV |
|
|
232
|
+
| <img src="web_ui/static/img/trackers/longpt.png" width="16" height="16" /> | LongPT | LONGPT | MOVIE, TV |
|
|
233
|
+
| <img src="web_ui/static/img/trackers/lst.png" width="16" height="16" /> | LST | LST | MOVIE, TV, BOOK, MUSIC, XXX |
|
|
234
|
+
| <img src="web_ui/static/img/trackers/luminarr.png" width="16" height="16" /> | Luminarr | LUMINARR | MOVIE, TV |
|
|
235
|
+
| <img src="web_ui/static/img/trackers/makingoff.png" width="16" height="16" /> | MakingOff | MAKINGOFF | MOVIE |
|
|
236
|
+
| <img src="web_ui/static/img/trackers/midnightscene.png" width="16" height="16" /> | MidnightScene | MIDNIGHTSCENE | MOVIE, TV, GAME, MUSIC |
|
|
237
|
+
| <img src="web_ui/static/img/trackers/mteam.png" width="16" height="16" /> | M-Team | MTEAM | MOVIE, TV |
|
|
238
|
+
| <img src="web_ui/static/img/trackers/nebulance.png" width="16" height="16" /> | Nebulance | NEBULANCE | TV |
|
|
239
|
+
| <img src="web_ui/static/img/trackers/nordicquality.png" width="16" height="16" /> | NordicQuality | NORDICQUALITY | MOVIE, TV, MUSIC, BOOK, GAME |
|
|
240
|
+
| <img src="web_ui/static/img/trackers/oldtoonsworld.png" width="16" height="16" /> | OldToonsWorld | OLDTOONSWORLD | MOVIE, TV |
|
|
241
|
+
| <img src="web_ui/static/img/trackers/onlyencodes.png" width="16" height="16" /> | OnlyEncodes+ | ONLYENCODES | MOVIE, TV |
|
|
242
|
+
| <img src="web_ui/static/img/trackers/orpheus.png" width="16" height="16" /> | Orpheus | ORPHEUS | MUSIC |
|
|
243
|
+
| <img src="web_ui/static/img/trackers/passthepopcorn.png" width="16" height="16" /> | PassThePopcorn | PASSTHEPOPCORN | MOVIE |
|
|
244
|
+
| <img src="web_ui/static/img/trackers/peergarden.png" width="16" height="16" /> | PeerGarden | PEERGARDEN | MOVIE, TV, GAME, BOOK, MUSIC |
|
|
245
|
+
| <img src="web_ui/static/img/trackers/polishtorrent.png" width="16" height="16" /> | PolishTorrent | POLISHTORRENT | MOVIE, TV |
|
|
246
|
+
| <img src="web_ui/static/img/trackers/portugas.png" width="16" height="16" /> | Portugas | PORTUGAS | MOVIE, TV |
|
|
247
|
+
| <img src="web_ui/static/img/trackers/privatehd.png" width="16" height="16" /> | PrivateHD | PRIVATEHD | MOVIE, TV |
|
|
248
|
+
| <img src="web_ui/static/img/trackers/ptgtk.png" width="16" height="16" /> | PT GTK | PTGTK | MOVIE, TV |
|
|
249
|
+
| <img src="web_ui/static/img/trackers/ptzone.png" width="16" height="16" /> | PTZone | PTZONE | MOVIE, TV |
|
|
250
|
+
| <img src="web_ui/static/img/trackers/ptcafe.png" width="16" height="16" /> | ptcafe | PTCAFE | MOVIE, TV |
|
|
251
|
+
| <img src="web_ui/static/img/trackers/pterclub.png" width="16" height="16" /> | PTerClub | PTERCLUB | MOVIE, TV |
|
|
252
|
+
| <img src="web_ui/static/img/trackers/ptfans.png" width="16" height="16" /> | PTFans | PTFANS | MOVIE, TV |
|
|
253
|
+
| <img src="web_ui/static/img/trackers/ptskit.png" width="16" height="16" /> | PTSKIT | PTSKIT | MOVIE, TV |
|
|
254
|
+
| <img src="web_ui/static/img/trackers/racing4everyone.png" width="16" height="16" /> | Racing4Everyone | RACING4EVERYONE | MOVIE, TV |
|
|
255
|
+
| <img src="web_ui/static/img/trackers/railgunpt.png" width="16" height="16" /> | RailgunPT | RAILGUNPT | MOVIE, TV |
|
|
256
|
+
| <img src="web_ui/static/img/trackers/rastastugan.png" width="16" height="16" /> | Rastastugan | RASTASTUGAN | MOVIE, TV, BOOK, GAME, MUSIC |
|
|
257
|
+
| <img src="web_ui/static/img/trackers/reelflix.png" width="16" height="16" /> | ReelFLiX | REELFLIX | MOVIE |
|
|
258
|
+
| <img src="web_ui/static/img/trackers/retroflix.png" width="16" height="16" /> | RetroFlix | RETROFLIX | MOVIE, TV |
|
|
259
|
+
| <img src="web_ui/static/img/trackers/retromoviesclub.png" width="16" height="16" /> | RetroMoviesClub | RETROMOVIESCLUB | MOVIE |
|
|
260
|
+
| <img src="web_ui/static/img/trackers/rockethd.png" width="16" height="16" /> | RocketHD | ROCKETHD | MOVIE, TV |
|
|
261
|
+
| <img src="web_ui/static/img/trackers/samaritano.png" width="16" height="16" /> | Samaritano | SAMARITANO | MOVIE, TV, BOOK, GAME |
|
|
262
|
+
| <img src="web_ui/static/img/trackers/seedpool.png" width="16" height="16" /> | seedpool | SEEDPOOL | MOVIE, TV, BOOK, GAME, MUSIC |
|
|
263
|
+
| <img src="web_ui/static/img/trackers/shareisland.png" width="16" height="16" /> | ShareIsland | SHAREISLAND | MOVIE, TV |
|
|
264
|
+
| <img src="web_ui/static/img/trackers/skipthecommercials.png" width="16" height="16" /> | SkipTheCommerials | SKIPTHECOMMERCIALS | MOVIE, TV |
|
|
265
|
+
| <img src="web_ui/static/img/trackers/speedapp.png" width="16" height="16" /> | SpeedApp | SPEEDAPP | MOVIE, TV, BOOK, GAME, MUSIC |
|
|
266
|
+
| <img src="web_ui/static/img/trackers/swarmazon.png" width="16" height="16" /> | Swarmazon | SWARMAZON | MOVIE, TV |
|
|
267
|
+
| <img src="web_ui/static/img/trackers/theleachzone.png" width="16" height="16" /> | The Leach Zone | THELEACHZONE | MOVIE, TV |
|
|
268
|
+
| <img src="web_ui/static/img/trackers/theoldschool.png" width="16" height="16" /> | TheOldSchool | THEOLDSCHOOL | MOVIE, TV |
|
|
269
|
+
| <img src="web_ui/static/img/trackers/torrenteros.png" width="16" height="16" /> | Torrenteros | TORRENTEROS | MOVIE, TV |
|
|
270
|
+
| <img src="web_ui/static/img/trackers/torrenthr.png" width="16" height="16" /> | TorrentHR | TORRENTHR | MOVIE, TV |
|
|
271
|
+
| <img src="web_ui/static/img/trackers/torrentleech.png" width="16" height="16" /> | TorrentLeech | TORRENTLEECH | MOVIE, TV, BOOK, GAME, MUSIC |
|
|
272
|
+
| <img src="web_ui/static/img/trackers/totheglory.png" width="16" height="16" /> | ToTheGlory | TOTHEGLORY | MOVIE, TV |
|
|
273
|
+
| <img src="web_ui/static/img/trackers/tvchaosuk.png" width="16" height="16" /> | TVChaosUK | TVCHAOSUK | MOVIE, TV |
|
|
274
|
+
| <img src="web_ui/static/img/trackers/xingyungept.png" width="16" height="16" /> | XingyungePT | XINGYUNGEPT | MOVIE, TV |
|
|
275
|
+
| <img src="web_ui/static/img/trackers/ulcx.png" width="16" height="16" /> | ULCX | ULCX | MOVIE, TV |
|
|
276
|
+
| <img src="web_ui/static/img/trackers/utopia.png" width="16" height="16" /> | UTOPIA | UTOPIA | MOVIE, TV |
|
|
277
|
+
| <img src="web_ui/static/img/trackers/yuscene.png" width="16" height="16" /> | YUSCENE | YUSCENE | MOVIE, TV, BOOK, GAME, MUSIC |
|
|
278
|
+
| <img src="web_ui/static/img/trackers/zenith.png" width="16" height="16" /> | Zenith | ZENITH | MOVIE, TV, BOOK, GAME, MUSIC |
|
|
279
|
+
|
|
280
|
+
</details>
|
|
281
|
+
|
|
282
|
+
<details>
|
|
283
|
+
<summary><strong>Click to view Supported Usenet Indexers</strong></summary>
|
|
284
|
+
|
|
285
|
+
| | Site | Usage | Supported Categories |
|
|
286
|
+
| ------------------------------------------------------------------------------- | ----------- | ----------- | ---------------------------- |
|
|
287
|
+
| <img src="web_ui/static/img/trackers/curupira.png" width="16" height="16" /> | Curupira | CURUPIRA | MOVIE, TV, BOOK, GAME |
|
|
288
|
+
| <img src="web_ui/static/img/trackers/drunkenslug.png" width="16" height="16" /> | DrunkenSlug | DRUNKENSLUG | MOVIE, TV, BOOK, GAME |
|
|
289
|
+
| <img src="web_ui/static/img/trackers/nzbgeek.png" width="16" height="16" /> | NZBGeek | NZBGEEK | MOVIE, TV, BOOK, GAME, MUSIC |
|
|
290
|
+
|
|
291
|
+
</details>
|
|
292
|
+
|
|
293
|
+
## **Setup Guide**
|
|
294
|
+
|
|
295
|
+
Setting up Upload Assistant is straightforward, even if you are not a developer. Follow these steps to get up and running:
|
|
296
|
+
|
|
297
|
+
### Step 1: Install Required Tools
|
|
298
|
+
|
|
299
|
+
Windows users should install Upload Assistant with the [Windows `.exe` installer](docs/windows-install.md). It includes everything needed to run the assistant.
|
|
300
|
+
|
|
301
|
+
For a manual Linux/macOS/Windows installation, Upload Assistant needs a few tools to process media and run:
|
|
302
|
+
|
|
303
|
+
1. **Python (version 3.14 or newer)**:
|
|
304
|
+
- Download and install it from the [official Python website](https://www.python.org/downloads/).
|
|
305
|
+
2. **MediaInfo & FFmpeg**:
|
|
306
|
+
- These are helper tools used to scan files and generate screenshots/spectrograms.
|
|
307
|
+
- The official MediaInfo CLI is downloaded and checksum-verified automatically on supported Windows, Linux, and macOS systems. Android/Termux uses its native `mediainfo` package (`pkg install mediainfo`).
|
|
308
|
+
- Install FFmpeg using your system's software manager:
|
|
309
|
+
- Debian/Ubuntu: `sudo apt install ffmpeg`
|
|
310
|
+
- Arch Linux: `sudo pacman -S ffmpeg`
|
|
311
|
+
- RedHat/Fedora: `sudo dnf install ffmpeg`
|
|
312
|
+
- _Having issues with FFmpeg? Check out our [FFmpeg troubleshooting guide](docs/ffmpeg-max-workers-issues.md)._
|
|
313
|
+
|
|
314
|
+
---
|
|
315
|
+
|
|
316
|
+
### Install from PyPI with `uv` (Windows, Linux, or macOS)
|
|
317
|
+
|
|
318
|
+
The recommended command-line installation uses the published PyPI package. It automatically manages the virtual environment and exposes the `ua` and `ua-config` commands on your system path:
|
|
319
|
+
|
|
320
|
+
```bash
|
|
321
|
+
uv tool install upload-assistant
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
If `uv` reports that its tool directory is not on your `PATH`, run `uv tool update-shell`, then open a new terminal.
|
|
325
|
+
|
|
326
|
+
### Install the latest development version with `uv`
|
|
327
|
+
|
|
328
|
+
If you have [uv](https://github.com/astral-sh/uv) installed, you can install Upload Assistant directly from the repository as a globally available standalone CLI tool. This automatically manages the virtual environment and exposes the `ua` and `ua-config` commands directly to your system path. This method resolves dependencies from `pyproject.toml`; skip Steps 2 and 3 below.
|
|
329
|
+
|
|
330
|
+
```bash
|
|
331
|
+
uv tool install git+https://github.com/wastaken7/Upload-Assistant.git
|
|
332
|
+
```
|
|
333
|
+
|
|
334
|
+
If `uv` reports that its tool directory is not on your `PATH`, run `uv tool update-shell`, then open a new terminal.
|
|
335
|
+
|
|
336
|
+
---
|
|
337
|
+
|
|
338
|
+
### Step 2: Download Upload Assistant (Linux/macOS)
|
|
339
|
+
|
|
340
|
+
Choose **one** of the two options below to get the files onto your computer:
|
|
341
|
+
|
|
342
|
+
#### Option A: Clone using Git (Recommended)
|
|
343
|
+
|
|
344
|
+
Using Git is the recommended method because it makes updating the assistant in the future extremely easy.
|
|
345
|
+
|
|
346
|
+
1. **Install Git** (if you don't already have it):
|
|
347
|
+
- **Linux:** Install it via your package manager.
|
|
348
|
+
- **macOS:** Install it via Homebrew or Xcode Command Line Tools.
|
|
349
|
+
2. **Clone the project**:
|
|
350
|
+
Open your command prompt or terminal, navigate to the folder where you want to keep the assistant, and run:
|
|
351
|
+
|
|
352
|
+
```bash
|
|
353
|
+
git clone https://github.com/wastaken7/Upload-Assistant.git
|
|
354
|
+
cd Upload-Assistant
|
|
355
|
+
```
|
|
356
|
+
|
|
357
|
+
#### Option B: Download as a ZIP file (Alternative)
|
|
358
|
+
|
|
359
|
+
If you do not want to install Git, you can download a copy of the files directly:
|
|
360
|
+
|
|
361
|
+
1. Go to the [GitHub Repository Page](https://github.com/wastaken7/Upload-Assistant).
|
|
362
|
+
2. Click the green **Code** button near the top right, and click **Download ZIP**.
|
|
363
|
+
3. Extract the ZIP file to a folder of your choice on your computer.
|
|
364
|
+
|
|
365
|
+
---
|
|
366
|
+
|
|
367
|
+
### Step 3: Install Python Packages (Linux/macOS)
|
|
368
|
+
|
|
369
|
+
On Linux/macOS, open a terminal, navigate to the folder where you downloaded Upload Assistant, and run:
|
|
370
|
+
|
|
371
|
+
```bash
|
|
372
|
+
pip3 install --user -U -r requirements.txt
|
|
373
|
+
```
|
|
374
|
+
|
|
375
|
+
> [!TIP]
|
|
376
|
+
> **Getting an "externally managed environment" error?**
|
|
377
|
+
> This means your system prefers keeping Python packages separated. You can set up a "Virtual Environment" (a private workspace for this tool) by running:
|
|
378
|
+
>
|
|
379
|
+
> - **Linux / macOS:**
|
|
380
|
+
>
|
|
381
|
+
> ```bash
|
|
382
|
+
> python3 -m venv venv
|
|
383
|
+
> source venv/bin/activate
|
|
384
|
+
> pip install -r requirements.txt
|
|
385
|
+
> ```
|
|
386
|
+
|
|
387
|
+
---
|
|
388
|
+
|
|
389
|
+
### Step 4: Configure the Assistant
|
|
390
|
+
|
|
391
|
+
You need to add your API keys (like TMDb) and tracker credentials so the tool knows where to upload.
|
|
392
|
+
|
|
393
|
+
#### Method A: Use the Web UI (Easiest)
|
|
394
|
+
|
|
395
|
+
If you plan to use the Web UI, **your configuration file will be generated automatically** when you launch and configure it for the first time.
|
|
396
|
+
|
|
397
|
+
#### Method B: Use the Interactive Generator
|
|
398
|
+
|
|
399
|
+
In your terminal, run the command for your operating system and follow the on-screen prompts:
|
|
400
|
+
|
|
401
|
+
- **Windows:** Install with the [`.exe` installer](docs/windows-install.md), then run `ua-config` in a new terminal.
|
|
402
|
+
- **Linux / macOS (Standard):**
|
|
403
|
+
|
|
404
|
+
```bash
|
|
405
|
+
python3 config-generator.py
|
|
406
|
+
```
|
|
407
|
+
|
|
408
|
+
- **Linux / macOS (uv installation):**
|
|
409
|
+
|
|
410
|
+
```bash
|
|
411
|
+
ua-config
|
|
412
|
+
```
|
|
413
|
+
|
|
414
|
+
#### Method C: Manual Configuration
|
|
415
|
+
|
|
416
|
+
1. Go to the `data/` folder inside the project.
|
|
417
|
+
2. Copy `example_config.py` and rename the copy to `config.py` (leave the original `example_config.py` file as-is).
|
|
418
|
+
3. Open `config.py` in a text editor (like Notepad, VS Code, or TextEdit) and fill in your information.
|
|
419
|
+
- For detailed info on what each setting does, see [Example Config Docs](docs/example-config.md).
|
|
420
|
+
- Get a free TMDb API key from [TheMovieDB API settings](https://www.themoviedb.org/settings/api).
|
|
421
|
+
|
|
422
|
+
---
|
|
423
|
+
|
|
424
|
+
**Additional Resources:**
|
|
425
|
+
|
|
426
|
+
- Check out our [Wiki Help Page](docs/home.md).
|
|
427
|
+
- Windows installation and basic commands: see [Windows Install](docs/windows-install.md).
|
|
428
|
+
- Need a no-root Linux or seedbox setup? See [Seedbox / Linux Install](docs/seedbox.md).
|
|
429
|
+
- Found an issue or need help? Please [open a GitHub Issue](https://github.com/wastaken7/Upload-Assistant/issues) so we can track and resolve it. If you prefer not to create a GitHub account for privacy reasons, join our [Signal group](https://signal.group/#CjQKILmkUCLe5mZULkQGI6B5knmX1ytrIBFicpJ_NZGAHmOrEhDD5F7ctp-obLeLOsa0yCoJ) instead.
|
|
430
|
+
|
|
431
|
+
## **Updating:**
|
|
432
|
+
|
|
433
|
+
- To update a Git installation, navigate into the Upload-Assistant directory and pull the latest changes:
|
|
434
|
+
|
|
435
|
+
```bash
|
|
436
|
+
cd Upload-Assistant
|
|
437
|
+
git pull
|
|
438
|
+
```
|
|
439
|
+
|
|
440
|
+
- Or, if you downloaded the ZIP file, download a fresh ZIP from GitHub and overwrite your existing files.
|
|
441
|
+
- For the Windows installation, run `ua-update`.
|
|
442
|
+
- For the `uv` standalone installation, run: `uv tool upgrade upload-assistant`
|
|
443
|
+
- Run the command to update dependencies:
|
|
444
|
+
- **Linux / macOS:** `python3 -m pip install --user -U -r requirements.txt`
|
|
445
|
+
- Run the configuration generator to fetch any new settings:
|
|
446
|
+
- **Windows / uv installations:** run `ua-config` from any folder.
|
|
447
|
+
- **Linux / macOS (Standard):** `python3 config-generator.py`
|
|
448
|
+
|
|
449
|
+
## **CLI Usage:**
|
|
450
|
+
|
|
451
|
+
To run the assistant, use the command for your system:
|
|
452
|
+
|
|
453
|
+
- **Windows / uv installations:**
|
|
454
|
+
|
|
455
|
+
```cmd
|
|
456
|
+
ua "/path/to/content" --args
|
|
457
|
+
```
|
|
458
|
+
|
|
459
|
+
- **Linux / macOS (Standard):**
|
|
460
|
+
|
|
461
|
+
```bash
|
|
462
|
+
python3 upload.py "/path/to/content" --args
|
|
463
|
+
```
|
|
464
|
+
|
|
465
|
+
Arguments are optional and normally follow the path. Input modes such as `--paths-from-stdin` may omit the positional path. For a list of all available arguments, pass `--help`.
|
|
466
|
+
The file/folder path works best enclosed in double quotes.
|
|
467
|
+
|
|
468
|
+
- CLI arguments: [docs/cli-args.md](docs/cli-args.md)
|
|
469
|
+
- Usenet uploading: [docs/usenet.md](docs/usenet.md)
|
|
470
|
+
|
|
471
|
+
## **Docker Usage:**
|
|
472
|
+
|
|
473
|
+
Visit our wonderful [docker usage](docs/docker.md)
|
|
474
|
+
|
|
475
|
+
Also see this excellent video put together by a community member <https://videos.badkitty.zone/ua>
|
|
476
|
+
|
|
477
|
+
Web UI setup (Docker GUI / Unraid): [docs/docker-gui.md](docs/docker-gui.md)
|
|
478
|
+
Web UI docs: [docs/web-ui.md](docs/web-ui.md)
|
|
479
|
+
|
|
480
|
+
## **Attributions:**
|
|
481
|
+
|
|
482
|
+
Built with [autobrr/go-bdinfo](https://github.com/autobrr/go-bdinfo)
|
|
483
|
+
|
|
484
|
+
Features automated binary managers for:
|
|
485
|
+
|
|
486
|
+
- [nyuu](https://github.com/animetosho/nyuu)
|
|
487
|
+
- [par2cmdline-turbo](https://github.com/animetosho/par2cmdline-turbo)
|
|
488
|
+
- [pesto](https://github.com/franzopl/pesto)
|
|
489
|
+
- [7-Zip](https://www.7-zip.org/)
|
|
490
|
+
|
|
491
|
+
<p>
|
|
492
|
+
<a href="https://github.com/autobrr/mkbrr"><img src="https://github.com/autobrr/mkbrr/blob/main/.github/assets/mkbrr-dark.png?raw=true" alt="mkbrr" height="40px;"></a>
|
|
493
|
+
<a href="https://github.com/autobrr/qui"><img src="https://github.com/autobrr/qui/blob/develop/documentation/static/img/qui.png?raw=true" alt="qui" height="40px;"></a>
|
|
494
|
+
<a href="https://ffmpeg.org/"><img src="https://i.postimg.cc/xdj3BS7S/FFmpeg-Logo-new-svg.png" alt="FFmpeg" height="40px;"></a>
|
|
495
|
+
<a href="https://mediaarea.net/en/MediaInfo"><img src="https://i.postimg.cc/vTkjXmHh/Media-Info-Logo-svg.png" alt="Mediainfo" height="40px;"></a>
|
|
496
|
+
<a href="https://www.themoviedb.org/"><img src="https://i.postimg.cc/1tpXHx3k/blue-square-2-d537fb228cf3ded904ef09b136fe3fec72548ebc1fea3fbbd1ad9e36364db38b.png" alt="TMDb" height="40px;"></a>
|
|
497
|
+
<a href="https://www.imdb.com/"><img src="https://i.postimg.cc/CLVmvwr1/IMDb-Logo-Rectangle-Gold-CB443386186.png" alt="IMDb" height="40px;"></a>
|
|
498
|
+
<a href="https://thetvdb.com/"><img src="https://i.postimg.cc/Hs1KKqsS/logo1.png" alt="TheTVDB" height="40px;"></a>
|
|
499
|
+
<a href="https://www.tvmaze.com/"><img src="https://i.postimg.cc/2jdRzkJp/tvm-header-logo.png" alt="TVmaze" height="40px"></a>
|
|
500
|
+
</p>
|
|
501
|
+
|
|
502
|
+
## **Contributors:**
|
|
503
|
+
[](https://github.com/wastaken7/Upload-Assistant/graphs/contributors)
|