Unit3Dup 0.9.2__tar.gz → 0.9.4__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.2 → unit3dup-0.9.4}/PKG-INFO +1 -1
- {unit3dup-0.9.2 → unit3dup-0.9.4}/Unit3Dup.egg-info/PKG-INFO +1 -1
- {unit3dup-0.9.2 → unit3dup-0.9.4}/common/p2p_tags.py +38 -12
- {unit3dup-0.9.2 → unit3dup-0.9.4}/common/settings.py +1 -1
- {unit3dup-0.9.2 → unit3dup-0.9.4}/pyproject.toml +1 -1
- {unit3dup-0.9.2 → unit3dup-0.9.4}/LICENSE +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/README.rst +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/Unit3Dup.egg-info/SOURCES.txt +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/Unit3Dup.egg-info/dependency_links.txt +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/Unit3Dup.egg-info/entry_points.txt +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/Unit3Dup.egg-info/requires.txt +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/Unit3Dup.egg-info/top_level.txt +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/common/__init__.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/common/bdinfo_string.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/common/bittorrent.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/common/command.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/common/constants.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/common/database.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/__init__.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/ftpx/__init__.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/ftpx/client.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/ftpx/core/__init__.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/ftpx/core/ftpx_service.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/ftpx/core/ftpx_session.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/ftpx/core/menu.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/ftpx/core/models/__init__.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/ftpx/core/models/list.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/igdb/__init__.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/igdb/client.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/igdb/core/__init__.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/igdb/core/api.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/igdb/core/models/__init__.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/igdb/core/models/search.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/igdb/core/platformid.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/igdb/core/tags.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/imageHost.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/mediaresult.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/sessions/__init__.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/sessions/agents.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/sessions/exceptions.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/sessions/session.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/theMovieDB/__init__.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/theMovieDB/core/__init__.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/theMovieDB/core/api.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/theMovieDB/core/keywords.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/theMovieDB/core/models/__init__.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/theMovieDB/core/models/movie/__init__.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/theMovieDB/core/models/movie/alternative_titles.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/theMovieDB/core/models/movie/details.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/theMovieDB/core/models/movie/movie.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/theMovieDB/core/models/movie/nowplaying.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/theMovieDB/core/models/movie/release_info.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/theMovieDB/core/models/tvshow/__init__.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/theMovieDB/core/models/tvshow/alternative.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/theMovieDB/core/models/tvshow/details.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/theMovieDB/core/models/tvshow/on_the_air.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/theMovieDB/core/models/tvshow/translations.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/theMovieDB/core/models/tvshow/tvshow.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/theMovieDB/core/videos.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/trailers/__init__.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/trailers/api.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/trailers/response.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/tvdb.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/common/extractor.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/common/frames.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/common/mediainfo.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/common/mediainfo_string.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/common/title.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/common/torrent_clients.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/common/trackers/__init__.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/common/trackers/data.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/common/trackers/itt.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/common/trackers/sis.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/common/trackers/trackers.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/common/utility.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/requirements.txt +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/setup.cfg +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/unit3dup/__init__.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/unit3dup/__main__.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/unit3dup/automode.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/unit3dup/bot.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/unit3dup/duplicate.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/unit3dup/exceptions.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/unit3dup/media.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/unit3dup/media_manager/ContentManager.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/unit3dup/media_manager/DocuManager.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/unit3dup/media_manager/GameManager.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/unit3dup/media_manager/MediaInfoManager.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/unit3dup/media_manager/SeedManager.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/unit3dup/media_manager/TorrentManager.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/unit3dup/media_manager/VideoManager.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/unit3dup/media_manager/__init__.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/unit3dup/media_manager/common.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/unit3dup/pvtDocu.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/unit3dup/pvtTorrent.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/unit3dup/pvtTracker.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/unit3dup/pvtVideo.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/unit3dup/torrent.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/unit3dup/upload.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/view/__init__.py +0 -0
- {unit3dup-0.9.2 → unit3dup-0.9.4}/view/custom_console.py +0 -0
|
@@ -58,18 +58,33 @@ TAG_TYPES = {
|
|
|
58
58
|
"ESP": "flag",
|
|
59
59
|
|
|
60
60
|
"TRUEHD": "audio",
|
|
61
|
+
"DDP7.1": "audio",
|
|
61
62
|
"DDP5.1": "audio",
|
|
62
63
|
"DDP2.0": "audio",
|
|
64
|
+
|
|
65
|
+
"DD7.1": "audio",
|
|
63
66
|
"DD5.1": "audio",
|
|
64
67
|
"DD2.0": "audio",
|
|
68
|
+
|
|
69
|
+
"DD+ 7.1": "audio",
|
|
70
|
+
"DD+ 5.1": "audio",
|
|
71
|
+
"DD+ 2.0": "audio",
|
|
72
|
+
|
|
73
|
+
"DD 7.1": "audio",
|
|
74
|
+
"DD 5.1": "audio",
|
|
75
|
+
"DD 2.0": "audio",
|
|
76
|
+
|
|
65
77
|
"AAC2.0": "audio",
|
|
66
78
|
"AAC5.1": "audio",
|
|
67
79
|
"AC3": "audio",
|
|
68
80
|
"DD": "audio",
|
|
81
|
+
"DD+": "audio",
|
|
82
|
+
"DDP": "audio",
|
|
69
83
|
"E-AC3": "audio",
|
|
70
84
|
"EAC3": "audio",
|
|
71
85
|
"AC-3": "audio",
|
|
72
86
|
"AAC": "audio",
|
|
87
|
+
"AVC": "audio",
|
|
73
88
|
|
|
74
89
|
"7.1": "audio",
|
|
75
90
|
"5.1": "audio",
|
|
@@ -124,7 +139,7 @@ class P2pTags:
|
|
|
124
139
|
re.IGNORECASE
|
|
125
140
|
)
|
|
126
141
|
|
|
127
|
-
# Search for tags
|
|
142
|
+
# Search for tags in the title
|
|
128
143
|
tags_match = pattern.findall(filename.upper())
|
|
129
144
|
|
|
130
145
|
# remove dope
|
|
@@ -146,11 +161,8 @@ class P2pTags:
|
|
|
146
161
|
|
|
147
162
|
# Add video codec only if there is no video categories
|
|
148
163
|
if 'video' not in categories:
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
"") if self.mediafile.video_track else ""
|
|
152
|
-
tags_match.append(video_format)
|
|
153
|
-
tags_match.append(video_encode)
|
|
164
|
+
video_codec = self.mediafile.video_track[0].get('encoded_library_name', "") if self.mediafile.video_track else ""
|
|
165
|
+
tags_match.append(video_codec)
|
|
154
166
|
|
|
155
167
|
# Add audio codec only if there is no audio categories
|
|
156
168
|
if 'audio' not in categories:
|
|
@@ -161,19 +173,32 @@ class P2pTags:
|
|
|
161
173
|
if 'flag' not in categories:
|
|
162
174
|
tags_match.extend(self._audio_lang())
|
|
163
175
|
|
|
176
|
+
# Add subtitle tag if subtitle_track exist and there is no 'sub' in the title
|
|
177
|
+
if 'subtitle' not in categories:
|
|
178
|
+
sub_tag = "SUBS" if len(self.mediafile.subtitle_track) > 1 else "SUB"
|
|
179
|
+
if self.mediafile.subtitle_track:
|
|
180
|
+
tags_match.append(sub_tag)
|
|
181
|
+
|
|
164
182
|
# Translate audio codec
|
|
165
183
|
audio_translate = {
|
|
166
184
|
"AC3": "DD",
|
|
167
185
|
"AC-3": "DD",
|
|
168
186
|
"EAC3": "DD+",
|
|
169
187
|
"E-AC3": "DD+",
|
|
188
|
+
"DDP2.0": "DD+",
|
|
189
|
+
"DDP5.1": "DD+",
|
|
190
|
+
"DDP7.1": "DD+",
|
|
191
|
+
"DDP": "DD+",
|
|
170
192
|
}
|
|
193
|
+
|
|
171
194
|
# lower the res..
|
|
172
195
|
resolution_lower = {"4320P", "2160P", "1080P", "720P", "576P", "480P"}
|
|
196
|
+
codec_lower = {'X.264', 'X265', 'X.265', 'X264'}
|
|
173
197
|
|
|
174
198
|
has_channel_tag = ch in tags_match
|
|
175
199
|
new_tags = []
|
|
176
200
|
|
|
201
|
+
# verify the tags found in the title
|
|
177
202
|
for tag in tags_match:
|
|
178
203
|
t = tag.upper()
|
|
179
204
|
if t in audio_translate:
|
|
@@ -181,7 +206,7 @@ class P2pTags:
|
|
|
181
206
|
|
|
182
207
|
# Add channels only if it does not exist
|
|
183
208
|
if ch and not has_channel_tag:
|
|
184
|
-
tag = f"{codec}{ch}"
|
|
209
|
+
tag = f"{codec} {ch}"
|
|
185
210
|
else:
|
|
186
211
|
tag = codec
|
|
187
212
|
|
|
@@ -193,16 +218,16 @@ class P2pTags:
|
|
|
193
218
|
elif t == "SUB":
|
|
194
219
|
tag = "SUBS"
|
|
195
220
|
|
|
221
|
+
elif t in codec_lower:
|
|
222
|
+
tag = t.lower()
|
|
223
|
+
|
|
196
224
|
new_tags.append(tag)
|
|
197
225
|
|
|
198
226
|
tags_match = new_tags
|
|
199
227
|
|
|
200
228
|
# Check if a 'resolution' tag exists and add mediafile resolution if it doesn't
|
|
201
229
|
if not any(TAG_TYPES.get(tag.upper()) == "resolution" for tag in tags_match):
|
|
202
|
-
tags_match.append(self.mediafile_resolution
|
|
203
|
-
|
|
204
|
-
# Fixed priority
|
|
205
|
-
# precedence = ["resolution", "source", "audio", "flag", "subtitle", "video"]
|
|
230
|
+
tags_match.append(self.mediafile_resolution)
|
|
206
231
|
|
|
207
232
|
# Assign an index to the 'precedence' keywords
|
|
208
233
|
precedence_index = {}
|
|
@@ -245,7 +270,8 @@ class P2pTags:
|
|
|
245
270
|
base_name = os.path.basename(self.filename)
|
|
246
271
|
filename, file_ext = os.path.splitext(base_name)
|
|
247
272
|
m = re.search(r'-([A-Za-z0-9]+)$', filename)
|
|
248
|
-
|
|
273
|
+
|
|
274
|
+
if m and m.group(1) not in TAG_TYPES:
|
|
249
275
|
self.sign_in_title = f"-{m.group(1)}"
|
|
250
276
|
else:
|
|
251
277
|
self.sign_in_title = ""
|
|
@@ -15,7 +15,7 @@ from common.utility import ManageTitles
|
|
|
15
15
|
from common import trackers
|
|
16
16
|
|
|
17
17
|
config_file = "Unit3Dbot.json"
|
|
18
|
-
version = "0.9.
|
|
18
|
+
version = "0.9.4"
|
|
19
19
|
|
|
20
20
|
if os.name == "nt":
|
|
21
21
|
WATCHER_DESTINATION_PATH: Path = Path(os.getenv("LOCALAPPDATA", ".")) / "Unit3Dup_config" / "watcher_destination_path"
|
|
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
|
{unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/theMovieDB/core/models/__init__.py
RENAMED
|
File without changes
|
{unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/theMovieDB/core/models/movie/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/theMovieDB/core/models/movie/details.py
RENAMED
|
File without changes
|
{unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/theMovieDB/core/models/movie/movie.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/theMovieDB/core/models/tvshow/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/theMovieDB/core/models/tvshow/details.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unit3dup-0.9.2 → unit3dup-0.9.4}/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
|