Unit3Dup 0.14.6__tar.gz → 0.14.8__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.14.6 → unit3dup-0.14.8}/PKG-INFO +1 -1
- {unit3dup-0.14.6 → unit3dup-0.14.8}/Unit3Dup.egg-info/PKG-INFO +1 -1
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/external_services/imageHost.py +1 -1
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/external_services/theMovieDB/core/api.py +7 -6
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/external_services/trailers/api.py +1 -3
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/settings.py +1 -1
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/tags.py +2 -4
- {unit3dup-0.14.6 → unit3dup-0.14.8}/pyproject.toml +1 -1
- {unit3dup-0.14.6 → unit3dup-0.14.8}/unit3dup/media_manager/VideoManager.py +15 -3
- {unit3dup-0.14.6 → unit3dup-0.14.8}/unit3dup/media_manager/common.py +1 -2
- {unit3dup-0.14.6 → unit3dup-0.14.8}/unit3dup/pvtVideo.py +1 -1
- {unit3dup-0.14.6 → unit3dup-0.14.8}/LICENSE +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/README.rst +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/Unit3Dup.egg-info/SOURCES.txt +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/Unit3Dup.egg-info/dependency_links.txt +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/Unit3Dup.egg-info/entry_points.txt +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/Unit3Dup.egg-info/requires.txt +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/Unit3Dup.egg-info/top_level.txt +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/__init__.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/bdinfo_string.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/bittorrent.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/command.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/constants.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/database.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/external_services/__init__.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/external_services/ftpx/__init__.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/external_services/ftpx/client.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/external_services/ftpx/core/__init__.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/external_services/ftpx/core/ftpx_service.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/external_services/ftpx/core/ftpx_session.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/external_services/ftpx/core/menu.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/external_services/ftpx/core/models/__init__.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/external_services/ftpx/core/models/list.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/external_services/igdb/__init__.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/external_services/igdb/client.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/external_services/igdb/core/__init__.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/external_services/igdb/core/api.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/external_services/igdb/core/models/__init__.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/external_services/igdb/core/models/search.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/external_services/igdb/core/platformid.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/external_services/igdb/core/tags.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/external_services/mediaresult.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/external_services/sessions/__init__.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/external_services/sessions/agents.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/external_services/sessions/exceptions.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/external_services/sessions/session.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/external_services/theMovieDB/__init__.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/external_services/theMovieDB/core/__init__.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/external_services/theMovieDB/core/keywords.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/external_services/theMovieDB/core/models/__init__.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/external_services/theMovieDB/core/models/movie/__init__.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/external_services/theMovieDB/core/models/movie/alternative.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/external_services/theMovieDB/core/models/movie/details.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/external_services/theMovieDB/core/models/movie/movie.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/external_services/theMovieDB/core/models/movie/nowplaying.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/external_services/theMovieDB/core/models/movie/release_info.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/external_services/theMovieDB/core/models/movie/translations.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/external_services/theMovieDB/core/models/tvshow/__init__.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/external_services/theMovieDB/core/models/tvshow/alternative.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/external_services/theMovieDB/core/models/tvshow/details.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/external_services/theMovieDB/core/models/tvshow/on_the_air.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/external_services/theMovieDB/core/models/tvshow/translations.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/external_services/theMovieDB/core/models/tvshow/tvshow.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/external_services/theMovieDB/core/videos.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/external_services/trailers/__init__.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/external_services/trailers/response.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/external_services/tvdb.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/extractor.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/frames.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/mediainfo.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/mediainfo_string.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/title.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/torrent_clients.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/trackers/__init__.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/trackers/ast.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/trackers/ban_list.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/trackers/data.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/trackers/itt.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/trackers/ptt.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/trackers/signs_list.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/trackers/sis.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/trackers/tags_list.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/trackers/trackers.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/common/utility.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/requirements.txt +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/setup.cfg +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/unit3dup/__init__.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/unit3dup/__main__.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/unit3dup/automode.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/unit3dup/bot.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/unit3dup/duplicate.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/unit3dup/exceptions.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/unit3dup/media.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/unit3dup/media_manager/ContentManager.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/unit3dup/media_manager/DocuManager.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/unit3dup/media_manager/GameManager.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/unit3dup/media_manager/MediaInfoManager.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/unit3dup/media_manager/SeedManager.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/unit3dup/media_manager/TorrentManager.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/unit3dup/media_manager/__init__.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/unit3dup/pvtDocu.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/unit3dup/pvtTorrent.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/unit3dup/pvtTracker.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/unit3dup/torrent.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/unit3dup/upload.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/view/__init__.py +0 -0
- {unit3dup-0.14.6 → unit3dup-0.14.8}/view/custom_console.py +0 -0
|
@@ -277,7 +277,7 @@ class Build:
|
|
|
277
277
|
description = "[center]\n"
|
|
278
278
|
console_url = []
|
|
279
279
|
|
|
280
|
-
custom_console.bot_log("
|
|
280
|
+
custom_console.bot_log(f"\n[STARTING IMAGE UPLOAD..]")
|
|
281
281
|
_number = 0
|
|
282
282
|
for img_bytes in self.extracted_frames:
|
|
283
283
|
_number = _number + 1
|
|
@@ -436,9 +436,11 @@ class DbOnline(TmdbAPI):
|
|
|
436
436
|
yt_trailer = YtTrailer(self.query)
|
|
437
437
|
result = yt_trailer.get_trailer_link()
|
|
438
438
|
if result:
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
439
|
+
for r in result:
|
|
440
|
+
title = r.items[0].snippet.title if r.items else None
|
|
441
|
+
if self.query in title:
|
|
442
|
+
return r.items[0].id.videoId
|
|
443
|
+
return "not available"
|
|
442
444
|
else:
|
|
443
445
|
user_youtube_id = custom_console.user_input_str(message="Sorry trailer not found."
|
|
444
446
|
" Please digit a valid Youtube ID (0=skip)->")
|
|
@@ -450,8 +452,7 @@ class DbOnline(TmdbAPI):
|
|
|
450
452
|
# Search for tmdb trailer
|
|
451
453
|
trailers = self._videos(video_id, self.category)
|
|
452
454
|
if trailers:
|
|
453
|
-
trailer = next((video for video in trailers if video.
|
|
454
|
-
and video.site.lower() == 'youtube'), None)
|
|
455
|
+
trailer = next((video for video in trailers if video.site.lower() == 'youtube'), None)
|
|
455
456
|
if trailer:
|
|
456
457
|
return trailer.key
|
|
457
458
|
else:
|
|
@@ -475,7 +476,7 @@ class DbOnline(TmdbAPI):
|
|
|
475
476
|
if results.tvdb_id:
|
|
476
477
|
custom_console.bot_warning_log(f"'TVDB ID'........ '{results.tvdb_id}'")
|
|
477
478
|
custom_console.bot_log(f"'TMDB KEYWORDS'.. {results.keywords_list}")
|
|
478
|
-
if
|
|
479
|
+
if results.trailer_key.upper() in ['SKIPPED', 'NOT AVAILABLE']:
|
|
479
480
|
custom_console.bot_log(f"'TRAILER' ....... {results.trailer_key}")
|
|
480
481
|
else:
|
|
481
482
|
custom_console.bot_log(f"'TRAILER' ....... https://www.youtube.com/watch?v={results.trailer_key}")
|
|
@@ -22,7 +22,7 @@ class YtTrailer:
|
|
|
22
22
|
'q': f'{self.title} trailer',
|
|
23
23
|
'type': 'video',
|
|
24
24
|
'key': config_settings.tracker_config.YOUTUBE_KEY,
|
|
25
|
-
'maxResults':
|
|
25
|
+
'maxResults': 50,
|
|
26
26
|
}
|
|
27
27
|
|
|
28
28
|
def get_trailer_link(self) -> list[YouTubeSearchResponse] | None:
|
|
@@ -37,11 +37,9 @@ class YtTrailer:
|
|
|
37
37
|
response = None
|
|
38
38
|
|
|
39
39
|
while attempt < max_attempts:
|
|
40
|
-
custom_console.bot_log("Searching YouTube for a trailer...")
|
|
41
40
|
try:
|
|
42
41
|
response = requests.get(self.url, params=self.params, timeout=5)
|
|
43
42
|
if response.status_code == 200:
|
|
44
|
-
custom_console.bot_log("YouTube Response with no error")
|
|
45
43
|
break
|
|
46
44
|
except requests.RequestException:
|
|
47
45
|
custom_console.error(f"Could not connect to YouTube API {response.status_code}")
|
|
@@ -142,7 +142,7 @@ class SearchTags(object):
|
|
|
142
142
|
refactored = ' '.join(build) + self.releaser_sign
|
|
143
143
|
return refactored
|
|
144
144
|
|
|
145
|
-
def process(self) -> str:
|
|
145
|
+
def process(self) -> tuple[str, dict]:
|
|
146
146
|
patterns = []
|
|
147
147
|
|
|
148
148
|
# Remove banned items from categories
|
|
@@ -251,10 +251,8 @@ class SearchTags(object):
|
|
|
251
251
|
for k in self.tags_position
|
|
252
252
|
if k in self.tags_dict
|
|
253
253
|
}
|
|
254
|
-
|
|
255
254
|
new_title = self.build_title(tags_dict)
|
|
256
|
-
|
|
257
|
-
return new_title
|
|
255
|
+
return new_title, tags_dict
|
|
258
256
|
|
|
259
257
|
def mediainfo_audio(self, category: str) -> dict:
|
|
260
258
|
languages = []
|
|
@@ -48,6 +48,8 @@ class VideoManager:
|
|
|
48
48
|
|
|
49
49
|
# Init the torrent list
|
|
50
50
|
bittorrent_list = []
|
|
51
|
+
# Tags list extracted used to build title ( -b flag)
|
|
52
|
+
tags_dictionary = {}
|
|
51
53
|
for content in self.contents:
|
|
52
54
|
# /// User request to build the title; overwriting display_name
|
|
53
55
|
if self.cli.buildtags:
|
|
@@ -67,7 +69,8 @@ class VideoManager:
|
|
|
67
69
|
ban_list=self.ban_list,
|
|
68
70
|
media=content,
|
|
69
71
|
)
|
|
70
|
-
content.display_name = search_tags.process()
|
|
72
|
+
content.display_name, tags_dictionary = search_tags.process()
|
|
73
|
+
|
|
71
74
|
|
|
72
75
|
# get the archive path
|
|
73
76
|
archive = os.path.join(tracker_archive, selected_tracker)
|
|
@@ -103,8 +106,17 @@ class VideoManager:
|
|
|
103
106
|
video_info = Video(media=content, tmdb_id=db.video_id, trailer_key=db.trailer_key)
|
|
104
107
|
video_info.build_info()
|
|
105
108
|
|
|
106
|
-
#
|
|
107
|
-
|
|
109
|
+
# Tags found ( -b flag)
|
|
110
|
+
if tags_dictionary:
|
|
111
|
+
custom_console.bot_log(f"\n[GENERATING DISPLAYNAME..]")
|
|
112
|
+
for key, value in tags_dictionary.items():
|
|
113
|
+
if isinstance(value, list):
|
|
114
|
+
value = " ".join(value)
|
|
115
|
+
custom_console.bot_log(f"{key:<13} '{value}'")
|
|
116
|
+
custom_console.bot_log(f"Done.\n")
|
|
117
|
+
else:
|
|
118
|
+
# print the title will be shown on the torrent page
|
|
119
|
+
custom_console.bot_log(f"'DISPLAYNAME'...{{{content.display_name}}}\n")
|
|
108
120
|
|
|
109
121
|
# Tracker instance
|
|
110
122
|
unit3d_up = UploadBot(content=content, tracker_name=selected_tracker, cli=self.cli)
|
|
@@ -76,7 +76,6 @@ class UserContent:
|
|
|
76
76
|
|
|
77
77
|
if not tracker_name_list:
|
|
78
78
|
tracker_name_list = [selected_tracker]
|
|
79
|
-
custom_console.bot_log(f"UPLOAD TO {tracker_name_list}")
|
|
80
79
|
|
|
81
80
|
# // Read the existing torrent file
|
|
82
81
|
with open(torrent_path, 'rb') as f:
|
|
@@ -239,7 +238,7 @@ class UserContent:
|
|
|
239
238
|
if not bittorrent_list:
|
|
240
239
|
return None
|
|
241
240
|
|
|
242
|
-
custom_console.
|
|
241
|
+
custom_console.bot_log(f"\nSending {message} torrents to the "
|
|
243
242
|
f"{config_settings.torrent_client_config.TORRENT_CLIENT.upper()} client "
|
|
244
243
|
f"... Please wait")
|
|
245
244
|
|
|
@@ -94,7 +94,7 @@ class Video:
|
|
|
94
94
|
[center][url={config_settings.user_preferences.MY_URL}]Tutte le mie release[/url][/center]
|
|
95
95
|
"""
|
|
96
96
|
|
|
97
|
-
if
|
|
97
|
+
if self.trailer_key is not None and self.trailer_key.upper() not in ['SKIPPED', 'NOT AVAILABLE']:
|
|
98
98
|
self.description += (f"[b][spoiler=Spoiler: PLAY TRAILER][center][youtube]{self.trailer_key}[/youtube]"
|
|
99
99
|
f"[/center][/spoiler][/b]")
|
|
100
100
|
self.is_hd = is_hd
|
|
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.14.6 → unit3dup-0.14.8}/common/external_services/theMovieDB/core/models/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unit3dup-0.14.6 → unit3dup-0.14.8}/common/external_services/theMovieDB/core/models/movie/details.py
RENAMED
|
File without changes
|
{unit3dup-0.14.6 → unit3dup-0.14.8}/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
|
|
File without changes
|
{unit3dup-0.14.6 → unit3dup-0.14.8}/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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|