Unit3Dup 0.9.31__tar.gz → 0.10.1__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.
- {unit3dup-0.9.31 → unit3dup-0.10.1}/PKG-INFO +1 -1
- {unit3dup-0.9.31 → unit3dup-0.10.1}/Unit3Dup.egg-info/PKG-INFO +1 -1
- {unit3dup-0.9.31 → unit3dup-0.10.1}/Unit3Dup.egg-info/SOURCES.txt +1 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/common/mediainfo.py +1 -1
- {unit3dup-0.9.31 → unit3dup-0.10.1}/common/settings.py +12 -6
- {unit3dup-0.9.31 → unit3dup-0.10.1}/common/trackers/__init__.py +2 -1
- unit3dup-0.10.1/common/trackers/ban_list.py +6 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/common/trackers/data.py +9 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/common/trackers/itt.py +1 -0
- unit3dup-0.10.1/common/trackers/ptt.py +142 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/common/utility.py +7 -7
- {unit3dup-0.9.31 → unit3dup-0.10.1}/pyproject.toml +1 -1
- {unit3dup-0.9.31 → unit3dup-0.10.1}/unit3dup/__main__.py +22 -26
- {unit3dup-0.9.31 → unit3dup-0.10.1}/unit3dup/media.py +9 -6
- {unit3dup-0.9.31 → unit3dup-0.10.1}/unit3dup/pvtTracker.py +5 -0
- unit3dup-0.9.31/common/trackers/ban_list.py +0 -5
- {unit3dup-0.9.31 → unit3dup-0.10.1}/LICENSE +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/README.rst +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/Unit3Dup.egg-info/dependency_links.txt +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/Unit3Dup.egg-info/entry_points.txt +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/Unit3Dup.egg-info/requires.txt +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/Unit3Dup.egg-info/top_level.txt +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/common/__init__.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/common/bdinfo_string.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/common/bittorrent.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/common/command.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/common/constants.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/common/database.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/common/external_services/__init__.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/common/external_services/ftpx/__init__.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/common/external_services/ftpx/client.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/common/external_services/ftpx/core/__init__.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/common/external_services/ftpx/core/ftpx_service.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/common/external_services/ftpx/core/ftpx_session.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/common/external_services/ftpx/core/menu.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/common/external_services/ftpx/core/models/__init__.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/common/external_services/ftpx/core/models/list.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/common/external_services/igdb/__init__.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/common/external_services/igdb/client.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/common/external_services/igdb/core/__init__.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/common/external_services/igdb/core/api.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/common/external_services/igdb/core/models/__init__.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/common/external_services/igdb/core/models/search.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/common/external_services/igdb/core/platformid.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/common/external_services/igdb/core/tags.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/common/external_services/imageHost.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/common/external_services/mediaresult.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/common/external_services/sessions/__init__.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/common/external_services/sessions/agents.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/common/external_services/sessions/exceptions.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/common/external_services/sessions/session.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/common/external_services/theMovieDB/__init__.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/common/external_services/theMovieDB/core/__init__.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/common/external_services/theMovieDB/core/api.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/common/external_services/theMovieDB/core/keywords.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/common/external_services/theMovieDB/core/models/__init__.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/common/external_services/theMovieDB/core/models/movie/__init__.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/common/external_services/theMovieDB/core/models/movie/alternative_titles.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/common/external_services/theMovieDB/core/models/movie/details.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/common/external_services/theMovieDB/core/models/movie/movie.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/common/external_services/theMovieDB/core/models/movie/nowplaying.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/common/external_services/theMovieDB/core/models/movie/release_info.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/common/external_services/theMovieDB/core/models/tvshow/__init__.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/common/external_services/theMovieDB/core/models/tvshow/alternative.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/common/external_services/theMovieDB/core/models/tvshow/details.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/common/external_services/theMovieDB/core/models/tvshow/on_the_air.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/common/external_services/theMovieDB/core/models/tvshow/translations.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/common/external_services/theMovieDB/core/models/tvshow/tvshow.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/common/external_services/theMovieDB/core/videos.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/common/external_services/trailers/__init__.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/common/external_services/trailers/api.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/common/external_services/trailers/response.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/common/external_services/tvdb.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/common/extractor.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/common/frames.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/common/mediainfo_string.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/common/tags.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/common/title.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/common/torrent_clients.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/common/trackers/signs_list.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/common/trackers/sis.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/common/trackers/tags_list.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/common/trackers/trackers.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/requirements.txt +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/setup.cfg +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/unit3dup/__init__.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/unit3dup/automode.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/unit3dup/bot.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/unit3dup/duplicate.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/unit3dup/exceptions.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/unit3dup/media_manager/ContentManager.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/unit3dup/media_manager/DocuManager.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/unit3dup/media_manager/GameManager.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/unit3dup/media_manager/MediaInfoManager.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/unit3dup/media_manager/SeedManager.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/unit3dup/media_manager/TorrentManager.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/unit3dup/media_manager/VideoManager.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/unit3dup/media_manager/__init__.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/unit3dup/media_manager/common.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/unit3dup/pvtDocu.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/unit3dup/pvtTorrent.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/unit3dup/pvtVideo.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/unit3dup/torrent.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/unit3dup/upload.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/view/__init__.py +0 -0
- {unit3dup-0.9.31 → unit3dup-0.10.1}/view/custom_console.py +0 -0
|
@@ -158,7 +158,7 @@ class MediaFile:
|
|
|
158
158
|
for track in self.audio_track: # + self.subtitle_track:
|
|
159
159
|
lang = track.get("language", "Unknown")
|
|
160
160
|
if lang != "Unknown":
|
|
161
|
-
languages.add(ManageTitles.convert_iso(lang))
|
|
161
|
+
languages.add(ManageTitles.convert_iso(lang)[0])
|
|
162
162
|
return list(languages) if len(languages) > 0 else ["not found"]
|
|
163
163
|
|
|
164
164
|
@property
|
|
@@ -23,7 +23,7 @@ user_tags_file = "tags_list.json"
|
|
|
23
23
|
user_sign_file = "sign_list.json"
|
|
24
24
|
bane_file = "ban_list.json"
|
|
25
25
|
|
|
26
|
-
version = "0.
|
|
26
|
+
version = "0.10.1"
|
|
27
27
|
|
|
28
28
|
if os.name == "nt":
|
|
29
29
|
WATCHER_DESTINATION_PATH: Path = Path(
|
|
@@ -72,6 +72,9 @@ class TrackerConfig(BaseModel):
|
|
|
72
72
|
SIS_URL: str
|
|
73
73
|
SIS_APIKEY: str | None = None
|
|
74
74
|
SIS_PID: str | None = None
|
|
75
|
+
PTT_URL: str
|
|
76
|
+
PTT_APIKEY: str | None = None
|
|
77
|
+
PTT_PID: str | None = None
|
|
75
78
|
MULTI_TRACKER: list[str] | None = None
|
|
76
79
|
TMDB_APIKEY: str | None = None
|
|
77
80
|
TVDB_APIKEY: str | None = None
|
|
@@ -407,14 +410,14 @@ class Config(BaseModel):
|
|
|
407
410
|
else:
|
|
408
411
|
field = field.upper()
|
|
409
412
|
|
|
410
|
-
if field in ['ITT_URL'
|
|
413
|
+
if field in ['ITT_URL']:
|
|
411
414
|
section[field] = Validate.url(value=section[field], field_name=field)
|
|
412
415
|
|
|
413
|
-
if field in ['ITT_PID'
|
|
416
|
+
if field in ['ITT_PID']:
|
|
414
417
|
section[field] = Validate.pid(value=section[field], field_name=field,
|
|
415
418
|
multi_trackers=section['MULTI_TRACKER'])
|
|
416
419
|
|
|
417
|
-
elif field in ['ITT', 'SIS']:
|
|
420
|
+
elif field in ['ITT', 'SIS', 'PTT']:
|
|
418
421
|
section[field] = Validate.dict(value=section[field], field_name=field)
|
|
419
422
|
elif field in ['MULTI_TRACKER']:
|
|
420
423
|
section[field] = Validate.validate_multi_tracker(multi_tracker_list=section[field])
|
|
@@ -573,7 +576,10 @@ class Load:
|
|
|
573
576
|
"SIS_URL": "https://no_tracker.xyz",
|
|
574
577
|
"SIS_APIKEY": "no_key",
|
|
575
578
|
"SIS_PID": "no_key",
|
|
576
|
-
"
|
|
579
|
+
"PTT_URL": "https://no_tracker.xyz",
|
|
580
|
+
"PTT_APIKEY": "no_key",
|
|
581
|
+
"PTT_PID": "no_key",
|
|
582
|
+
"MULTI_TRACKER": ["itt","sis","ptt"],
|
|
577
583
|
"TMDB_APIKEY": "no_key",
|
|
578
584
|
"TVDB_APIKEY": "no_key",
|
|
579
585
|
"IMGBB_KEY": "no_key",
|
|
@@ -771,7 +777,7 @@ class JsonConfig:
|
|
|
771
777
|
# Add the new attributes in 'tracker config'
|
|
772
778
|
if self.tracker_diff_keys:
|
|
773
779
|
self.updated = True
|
|
774
|
-
missing_keys_dict = {key: '' for key in self.tracker_diff_keys}
|
|
780
|
+
missing_keys_dict = {key: 'no_key' for key in self.tracker_diff_keys}
|
|
775
781
|
self.tracker_config.update(missing_keys_dict)
|
|
776
782
|
|
|
777
783
|
def update_torrent_client_config(self):
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
# -*- coding: utf-8 -*-
|
|
2
2
|
|
|
3
3
|
from common.trackers.itt import itt_data
|
|
4
|
+
from common.trackers.ptt import ptt_data
|
|
4
5
|
from common.trackers.sis import sis_data
|
|
5
6
|
|
|
6
|
-
tracker_list = {'ITT': itt_data, 'SIS': sis_data}
|
|
7
|
+
tracker_list = {'ITT': itt_data, 'SIS': sis_data, 'PTT': ptt_data}
|
|
@@ -21,6 +21,15 @@ trackers_api_data = {
|
|
|
21
21
|
"announce": f"{config_settings.tracker_config.SIS_URL}/announce/{config_settings.tracker_config.SIS_PID}",
|
|
22
22
|
"source": "ShareIsland",
|
|
23
23
|
}
|
|
24
|
+
,
|
|
25
|
+
'PTT':
|
|
26
|
+
{
|
|
27
|
+
"url": config_settings.tracker_config.PTT_URL,
|
|
28
|
+
"api_key": config_settings.tracker_config.PTT_APIKEY,
|
|
29
|
+
"pass_key": config_settings.tracker_config.PTT_PID,
|
|
30
|
+
"announce": f"{config_settings.tracker_config.PTT_URL}/announce/{config_settings.tracker_config.PTT_PID}",
|
|
31
|
+
"source": "PolishTorrent",
|
|
32
|
+
}
|
|
24
33
|
|
|
25
34
|
}
|
|
26
35
|
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
|
|
3
|
+
ptt_data = {
|
|
4
|
+
"CATEGORY": {
|
|
5
|
+
"applications": 6,
|
|
6
|
+
"audiobooks": 25,
|
|
7
|
+
"edicola": 20,
|
|
8
|
+
"4kmovies": 23,
|
|
9
|
+
"movie": 1,
|
|
10
|
+
"game": 5,
|
|
11
|
+
"others": 19,
|
|
12
|
+
"music": 8,
|
|
13
|
+
"sports": 21,
|
|
14
|
+
"tv": 9,
|
|
15
|
+
},
|
|
16
|
+
"FREELECH": {"size20": 100,
|
|
17
|
+
"size15": 75,
|
|
18
|
+
"size10": 50,
|
|
19
|
+
"size5": 25},
|
|
20
|
+
"TYPE_ID": {
|
|
21
|
+
"bdrip": 11,
|
|
22
|
+
"blu-ray": 16,
|
|
23
|
+
"bluray": 16,
|
|
24
|
+
"brrip": 18,
|
|
25
|
+
"dvdrip": 15,
|
|
26
|
+
"discography": 3,
|
|
27
|
+
"encode": 7,
|
|
28
|
+
"full-disc": 1,
|
|
29
|
+
"fulldisc": 1,
|
|
30
|
+
"hdtv": 6,
|
|
31
|
+
"others": 12,
|
|
32
|
+
"polish cinema": 20,
|
|
33
|
+
"cinema": 13,
|
|
34
|
+
"cam": 13,
|
|
35
|
+
"webscr": 13,
|
|
36
|
+
"music": 14,
|
|
37
|
+
"remux": 2,
|
|
38
|
+
"sdtv": 17,
|
|
39
|
+
"tvrip": 19,
|
|
40
|
+
"vr": 21,
|
|
41
|
+
"web-dl": 4,
|
|
42
|
+
"webdl": 4,
|
|
43
|
+
"web": 4,
|
|
44
|
+
"web-dlmux": 4,
|
|
45
|
+
"pc": 5,
|
|
46
|
+
"pdf": 22,
|
|
47
|
+
"pc games": 23,
|
|
48
|
+
"playstation": 24,
|
|
49
|
+
"xbox": 25,
|
|
50
|
+
"nintendo switch": 26,
|
|
51
|
+
"vr_2": 27,
|
|
52
|
+
"retro": 28,
|
|
53
|
+
},
|
|
54
|
+
"TYPE_ID_AUDIO": {"flac": 8,
|
|
55
|
+
"mp3": 10,
|
|
56
|
+
},
|
|
57
|
+
"TAGS": {
|
|
58
|
+
"SD": 1,
|
|
59
|
+
"HD": 0,
|
|
60
|
+
},
|
|
61
|
+
|
|
62
|
+
"RESOLUTION": {
|
|
63
|
+
"4320p": 1,
|
|
64
|
+
"2160p": 2,
|
|
65
|
+
"1440p": 12,
|
|
66
|
+
"1080p": 3,
|
|
67
|
+
"1080i": 4,
|
|
68
|
+
"720p": 5,
|
|
69
|
+
"480p": 10,
|
|
70
|
+
},
|
|
71
|
+
|
|
72
|
+
"CODEC": [
|
|
73
|
+
"h261",
|
|
74
|
+
"h262",
|
|
75
|
+
"h263",
|
|
76
|
+
"h264",
|
|
77
|
+
"x264",
|
|
78
|
+
"x265",
|
|
79
|
+
"avc",
|
|
80
|
+
"h265",
|
|
81
|
+
"hevc",
|
|
82
|
+
"vp8",
|
|
83
|
+
"vp9",
|
|
84
|
+
"av1",
|
|
85
|
+
"mpeg-1",
|
|
86
|
+
"mpeg-4",
|
|
87
|
+
"wmv",
|
|
88
|
+
"theora",
|
|
89
|
+
"divx",
|
|
90
|
+
"xvid",
|
|
91
|
+
"prores",
|
|
92
|
+
"dnxhd",
|
|
93
|
+
"cinepak",
|
|
94
|
+
"indeo",
|
|
95
|
+
"dv",
|
|
96
|
+
"ffv1",
|
|
97
|
+
"sorenson",
|
|
98
|
+
"rv40",
|
|
99
|
+
"cineform",
|
|
100
|
+
"huffyuv",
|
|
101
|
+
"mjpeg",
|
|
102
|
+
"lagarith",
|
|
103
|
+
"msu",
|
|
104
|
+
"rle",
|
|
105
|
+
"dirac",
|
|
106
|
+
"wmv3",
|
|
107
|
+
"vorbis",
|
|
108
|
+
"smpte",
|
|
109
|
+
"mjpeg",
|
|
110
|
+
"ffvhuff",
|
|
111
|
+
"v210",
|
|
112
|
+
"yuv4:2:2",
|
|
113
|
+
"yuv4:4:4",
|
|
114
|
+
"hap",
|
|
115
|
+
"sheervideo",
|
|
116
|
+
"ut",
|
|
117
|
+
"quicktime",
|
|
118
|
+
"rududu",
|
|
119
|
+
"h.266",
|
|
120
|
+
"vvc",
|
|
121
|
+
"mjpeg 4:2:0",
|
|
122
|
+
"h.263+",
|
|
123
|
+
"h.263++",
|
|
124
|
+
"vp4",
|
|
125
|
+
"vp5",
|
|
126
|
+
"vp6",
|
|
127
|
+
"vp7",
|
|
128
|
+
"vp8",
|
|
129
|
+
"vp9",
|
|
130
|
+
"vp10",
|
|
131
|
+
"vp11",
|
|
132
|
+
"vp12",
|
|
133
|
+
"vp3",
|
|
134
|
+
"vp2",
|
|
135
|
+
"vp1",
|
|
136
|
+
"amv",
|
|
137
|
+
"daala",
|
|
138
|
+
"gecko",
|
|
139
|
+
"nvenc",
|
|
140
|
+
"bluray",
|
|
141
|
+
],
|
|
142
|
+
}
|
|
@@ -21,7 +21,7 @@ class ManageTitles:
|
|
|
21
21
|
]
|
|
22
22
|
|
|
23
23
|
iso_3166_alpha3 = [
|
|
24
|
-
"ENG", "USA", "GBR", "ITA", "DEU", "FRA", "ESP", "SPA",
|
|
24
|
+
"ENG", "USA", "GBR", "ITA", "DEU", "GER", "FRA", "ESP", "SPA",
|
|
25
25
|
"BRA", "JPN", "CHN", "RUS", "PER", "NOR",
|
|
26
26
|
"SWE", "DAN", "POL", "HIN", "TUR", "ARA", "KOR", "VIE", "IND"
|
|
27
27
|
]
|
|
@@ -29,7 +29,7 @@ class ManageTitles:
|
|
|
29
29
|
iso_3166_alpha2_to_alpha3 = {
|
|
30
30
|
"EN": "ENG", "US": "USA", "GB": "GBR", "EN-US": "ENG", "EN-GB": "ENG", "EN-AU": "ENG",
|
|
31
31
|
"IT": "ITA",
|
|
32
|
-
"DE": "
|
|
32
|
+
"DE": "GER",
|
|
33
33
|
"FR": "FRA",
|
|
34
34
|
"ES": "SPA", "ES-ES": "SPA", "ES-MX": "SPA",
|
|
35
35
|
"BR": "BRA",
|
|
@@ -51,10 +51,10 @@ class ManageTitles:
|
|
|
51
51
|
|
|
52
52
|
long_name = {
|
|
53
53
|
"ENGLISH": "ENG",
|
|
54
|
-
"AMERICAN": "
|
|
55
|
-
"BRITISH": "
|
|
54
|
+
"AMERICAN": "ENG",
|
|
55
|
+
"BRITISH": "ENG",
|
|
56
56
|
"ITALIAN": "ITA",
|
|
57
|
-
"GERMAN": "
|
|
57
|
+
"GERMAN": "GER",
|
|
58
58
|
"FRENCH": "FRA",
|
|
59
59
|
"SPANISH": "SPA",
|
|
60
60
|
"BRAZILIAN": "BRA",
|
|
@@ -76,7 +76,7 @@ class ManageTitles:
|
|
|
76
76
|
}
|
|
77
77
|
|
|
78
78
|
@staticmethod
|
|
79
|
-
def convert_iso(code) -> list | str
|
|
79
|
+
def convert_iso(code) -> list[str] | str:
|
|
80
80
|
""" Convert iso 2 to 3 """
|
|
81
81
|
code = code.upper()
|
|
82
82
|
# if it's 'multilang'
|
|
@@ -95,7 +95,7 @@ class ManageTitles:
|
|
|
95
95
|
if match:
|
|
96
96
|
iso_code = match.group(1)
|
|
97
97
|
if len(iso_code) == 2: # // alpha-2
|
|
98
|
-
return ManageTitles.iso_3166_alpha2_to_alpha3.get(code,
|
|
98
|
+
return ManageTitles.iso_3166_alpha2_to_alpha3.get(code, "")
|
|
99
99
|
elif len(iso_code) == 3: # // alpha3
|
|
100
100
|
# return the same code provided it is an alpha3
|
|
101
101
|
if iso_code in ManageTitles.iso_3166_alpha3:
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
# -*- coding: utf-8 -*-
|
|
2
2
|
import json
|
|
3
3
|
|
|
4
|
+
import requests
|
|
5
|
+
|
|
4
6
|
from common.torrent_clients import TransmissionClient, QbittorrentClient, RTorrentClient
|
|
5
7
|
from common.command import CommandLine
|
|
6
8
|
from common.settings import Load, DEFAULT_JSON_PATH, USER_TAGS_PATH, USER_SIGN_PATH, BAN_TAGS_PATH, version
|
|
@@ -43,15 +45,25 @@ def main():
|
|
|
43
45
|
custom_console.bot_error_log(f"No tracker name provided. Please update your configuration file")
|
|
44
46
|
exit(1)
|
|
45
47
|
|
|
46
|
-
#
|
|
47
|
-
|
|
48
|
-
tracker
|
|
48
|
+
# Check if the tracker name exists
|
|
49
|
+
if cli.args.tracker:
|
|
50
|
+
if not any(cli.args.tracker.upper() in tracker.upper() for tracker in config.tracker_config.MULTI_TRACKER):
|
|
51
|
+
custom_console.bot_error_log(
|
|
52
|
+
f"Tracker '{cli.args.tracker}' not found. Please update your configuration file")
|
|
53
|
+
exit()
|
|
54
|
+
|
|
55
|
+
tracker = pvtTracker.Unit3d(tracker_name=cli.args.tracker)
|
|
49
56
|
if tracker.get_alive(alive=True, perPage=1):
|
|
50
|
-
custom_console.bot_log(f"Tracker -> '{
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
57
|
+
custom_console.bot_log(f"Tracker -> '{cli.args.tracker.upper()}' Online")
|
|
58
|
+
tracker_name_list = [cli.args.tracker.upper()]
|
|
59
|
+
|
|
60
|
+
# Send content to the multi_tracker list
|
|
61
|
+
if cli.args.mt:
|
|
62
|
+
tracker_name_list = config.tracker_config.MULTI_TRACKER
|
|
63
|
+
for tracker_data in tracker_name_list[1:]:
|
|
64
|
+
tracker = pvtTracker.Unit3d(tracker_name=tracker_data)
|
|
65
|
+
if tracker.get_alive(alive=True, perPage=1):
|
|
66
|
+
custom_console.bot_log(f"Tracker -> '{tracker_data.upper()}' Online")
|
|
55
67
|
|
|
56
68
|
# Test both clients only if used
|
|
57
69
|
if cli.args.noseed is False and cli.args.noup is False or cli.args.reseed is True:
|
|
@@ -78,22 +90,6 @@ def main():
|
|
|
78
90
|
custom_console.bot_error_log(f"You need to set a favorite 'torrent_client' in the config file")
|
|
79
91
|
exit(1)
|
|
80
92
|
|
|
81
|
-
# Check if the tracker name exists
|
|
82
|
-
if cli.args.tracker and cli.args.tracker not in config.tracker_config.MULTI_TRACKER:
|
|
83
|
-
custom_console.bot_error_log(f"Tracker '{cli.args.tracker}' not found. Please update your configuration file")
|
|
84
|
-
exit()
|
|
85
|
-
|
|
86
|
-
# Get default tracker
|
|
87
|
-
tracker_name_list = [config.tracker_config.MULTI_TRACKER[0]]
|
|
88
|
-
|
|
89
|
-
# Add a single announce if requested (disabled)
|
|
90
|
-
if cli.args.tracker:
|
|
91
|
-
tracker_name_list = [cli.args.tracker.upper()]
|
|
92
|
-
|
|
93
|
-
# Send content to the multi_tracker list
|
|
94
|
-
if cli.args.mt:
|
|
95
|
-
tracker_name_list = config.tracker_config.MULTI_TRACKER
|
|
96
|
-
|
|
97
93
|
# Load User Tags list
|
|
98
94
|
tags_list = None
|
|
99
95
|
if cli.args.buildtags:
|
|
@@ -138,7 +134,7 @@ def main():
|
|
|
138
134
|
torrent_archive_path=tracker_archive,
|
|
139
135
|
tags_list=tags_list,
|
|
140
136
|
sign_list=sign_list,
|
|
141
|
-
ban_list
|
|
137
|
+
ban_list=ban_list
|
|
142
138
|
)
|
|
143
139
|
bot.run()
|
|
144
140
|
|
|
@@ -181,7 +177,7 @@ def main():
|
|
|
181
177
|
|
|
182
178
|
# Dump
|
|
183
179
|
if cli.args.dump:
|
|
184
|
-
torrent_info.view_search(" ", inkey=False,save=True)
|
|
180
|
+
torrent_info.view_search(" ", inkey=False, save=True)
|
|
185
181
|
return
|
|
186
182
|
|
|
187
183
|
if cli.args.info:
|
|
@@ -35,7 +35,7 @@ class Media:
|
|
|
35
35
|
self._file_name: str | None = None
|
|
36
36
|
self._display_name: str | None = None
|
|
37
37
|
self._category: int | None = None
|
|
38
|
-
self._audio_languages: list[str]
|
|
38
|
+
self._audio_languages: list[str] = []
|
|
39
39
|
self._media_file: MediaFile | None = None
|
|
40
40
|
self._languages: list[str] | None = None
|
|
41
41
|
self._resolution: str | None = None
|
|
@@ -255,12 +255,15 @@ class Media:
|
|
|
255
255
|
if not self._audio_languages:
|
|
256
256
|
# Get languages from the title
|
|
257
257
|
filename_split = self.display_name.upper().split(" ")
|
|
258
|
+
|
|
258
259
|
for code in filename_split:
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
260
|
+
converted_code = ManageTitles.convert_iso(code)
|
|
261
|
+
if converted_code:
|
|
262
|
+
self._audio_languages.append(converted_code[0])
|
|
263
|
+
|
|
264
|
+
if not self._audio_languages:
|
|
265
|
+
# get from the audio track
|
|
266
|
+
self._audio_languages = self.languages
|
|
264
267
|
return self._audio_languages
|
|
265
268
|
|
|
266
269
|
@property
|
|
@@ -91,6 +91,11 @@ class Tracker(Myhttp):
|
|
|
91
91
|
f"or verify if the tracker is online",
|
|
92
92
|
)
|
|
93
93
|
exit(1)
|
|
94
|
+
except requests.exceptions.MissingSchema:
|
|
95
|
+
custom_console.bot_error_log(
|
|
96
|
+
f"TRACKER Connection error. Please check your configuration data"
|
|
97
|
+
)
|
|
98
|
+
exit(1)
|
|
94
99
|
except requests.exceptions.ReadTimeout as e:
|
|
95
100
|
custom_console.bot_error_log(f"TRACKER HTTP Error {e}. Tracker Offline !")
|
|
96
101
|
exit(1)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unit3dup-0.9.31 → unit3dup-0.10.1}/common/external_services/theMovieDB/core/models/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unit3dup-0.9.31 → unit3dup-0.10.1}/common/external_services/theMovieDB/core/models/movie/details.py
RENAMED
|
File without changes
|
{unit3dup-0.9.31 → unit3dup-0.10.1}/common/external_services/theMovieDB/core/models/movie/movie.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unit3dup-0.9.31 → unit3dup-0.10.1}/common/external_services/theMovieDB/core/models/tvshow/tvshow.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|