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.
Files changed (101) hide show
  1. {unit3dup-0.9.2 → unit3dup-0.9.4}/PKG-INFO +1 -1
  2. {unit3dup-0.9.2 → unit3dup-0.9.4}/Unit3Dup.egg-info/PKG-INFO +1 -1
  3. {unit3dup-0.9.2 → unit3dup-0.9.4}/common/p2p_tags.py +38 -12
  4. {unit3dup-0.9.2 → unit3dup-0.9.4}/common/settings.py +1 -1
  5. {unit3dup-0.9.2 → unit3dup-0.9.4}/pyproject.toml +1 -1
  6. {unit3dup-0.9.2 → unit3dup-0.9.4}/LICENSE +0 -0
  7. {unit3dup-0.9.2 → unit3dup-0.9.4}/README.rst +0 -0
  8. {unit3dup-0.9.2 → unit3dup-0.9.4}/Unit3Dup.egg-info/SOURCES.txt +0 -0
  9. {unit3dup-0.9.2 → unit3dup-0.9.4}/Unit3Dup.egg-info/dependency_links.txt +0 -0
  10. {unit3dup-0.9.2 → unit3dup-0.9.4}/Unit3Dup.egg-info/entry_points.txt +0 -0
  11. {unit3dup-0.9.2 → unit3dup-0.9.4}/Unit3Dup.egg-info/requires.txt +0 -0
  12. {unit3dup-0.9.2 → unit3dup-0.9.4}/Unit3Dup.egg-info/top_level.txt +0 -0
  13. {unit3dup-0.9.2 → unit3dup-0.9.4}/common/__init__.py +0 -0
  14. {unit3dup-0.9.2 → unit3dup-0.9.4}/common/bdinfo_string.py +0 -0
  15. {unit3dup-0.9.2 → unit3dup-0.9.4}/common/bittorrent.py +0 -0
  16. {unit3dup-0.9.2 → unit3dup-0.9.4}/common/command.py +0 -0
  17. {unit3dup-0.9.2 → unit3dup-0.9.4}/common/constants.py +0 -0
  18. {unit3dup-0.9.2 → unit3dup-0.9.4}/common/database.py +0 -0
  19. {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/__init__.py +0 -0
  20. {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/ftpx/__init__.py +0 -0
  21. {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/ftpx/client.py +0 -0
  22. {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/ftpx/core/__init__.py +0 -0
  23. {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/ftpx/core/ftpx_service.py +0 -0
  24. {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/ftpx/core/ftpx_session.py +0 -0
  25. {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/ftpx/core/menu.py +0 -0
  26. {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/ftpx/core/models/__init__.py +0 -0
  27. {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/ftpx/core/models/list.py +0 -0
  28. {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/igdb/__init__.py +0 -0
  29. {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/igdb/client.py +0 -0
  30. {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/igdb/core/__init__.py +0 -0
  31. {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/igdb/core/api.py +0 -0
  32. {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/igdb/core/models/__init__.py +0 -0
  33. {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/igdb/core/models/search.py +0 -0
  34. {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/igdb/core/platformid.py +0 -0
  35. {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/igdb/core/tags.py +0 -0
  36. {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/imageHost.py +0 -0
  37. {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/mediaresult.py +0 -0
  38. {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/sessions/__init__.py +0 -0
  39. {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/sessions/agents.py +0 -0
  40. {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/sessions/exceptions.py +0 -0
  41. {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/sessions/session.py +0 -0
  42. {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/theMovieDB/__init__.py +0 -0
  43. {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/theMovieDB/core/__init__.py +0 -0
  44. {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/theMovieDB/core/api.py +0 -0
  45. {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/theMovieDB/core/keywords.py +0 -0
  46. {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/theMovieDB/core/models/__init__.py +0 -0
  47. {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/theMovieDB/core/models/movie/__init__.py +0 -0
  48. {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/theMovieDB/core/models/movie/alternative_titles.py +0 -0
  49. {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/theMovieDB/core/models/movie/details.py +0 -0
  50. {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/theMovieDB/core/models/movie/movie.py +0 -0
  51. {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/theMovieDB/core/models/movie/nowplaying.py +0 -0
  52. {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/theMovieDB/core/models/movie/release_info.py +0 -0
  53. {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/theMovieDB/core/models/tvshow/__init__.py +0 -0
  54. {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/theMovieDB/core/models/tvshow/alternative.py +0 -0
  55. {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/theMovieDB/core/models/tvshow/details.py +0 -0
  56. {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/theMovieDB/core/models/tvshow/on_the_air.py +0 -0
  57. {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/theMovieDB/core/models/tvshow/translations.py +0 -0
  58. {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/theMovieDB/core/models/tvshow/tvshow.py +0 -0
  59. {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/theMovieDB/core/videos.py +0 -0
  60. {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/trailers/__init__.py +0 -0
  61. {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/trailers/api.py +0 -0
  62. {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/trailers/response.py +0 -0
  63. {unit3dup-0.9.2 → unit3dup-0.9.4}/common/external_services/tvdb.py +0 -0
  64. {unit3dup-0.9.2 → unit3dup-0.9.4}/common/extractor.py +0 -0
  65. {unit3dup-0.9.2 → unit3dup-0.9.4}/common/frames.py +0 -0
  66. {unit3dup-0.9.2 → unit3dup-0.9.4}/common/mediainfo.py +0 -0
  67. {unit3dup-0.9.2 → unit3dup-0.9.4}/common/mediainfo_string.py +0 -0
  68. {unit3dup-0.9.2 → unit3dup-0.9.4}/common/title.py +0 -0
  69. {unit3dup-0.9.2 → unit3dup-0.9.4}/common/torrent_clients.py +0 -0
  70. {unit3dup-0.9.2 → unit3dup-0.9.4}/common/trackers/__init__.py +0 -0
  71. {unit3dup-0.9.2 → unit3dup-0.9.4}/common/trackers/data.py +0 -0
  72. {unit3dup-0.9.2 → unit3dup-0.9.4}/common/trackers/itt.py +0 -0
  73. {unit3dup-0.9.2 → unit3dup-0.9.4}/common/trackers/sis.py +0 -0
  74. {unit3dup-0.9.2 → unit3dup-0.9.4}/common/trackers/trackers.py +0 -0
  75. {unit3dup-0.9.2 → unit3dup-0.9.4}/common/utility.py +0 -0
  76. {unit3dup-0.9.2 → unit3dup-0.9.4}/requirements.txt +0 -0
  77. {unit3dup-0.9.2 → unit3dup-0.9.4}/setup.cfg +0 -0
  78. {unit3dup-0.9.2 → unit3dup-0.9.4}/unit3dup/__init__.py +0 -0
  79. {unit3dup-0.9.2 → unit3dup-0.9.4}/unit3dup/__main__.py +0 -0
  80. {unit3dup-0.9.2 → unit3dup-0.9.4}/unit3dup/automode.py +0 -0
  81. {unit3dup-0.9.2 → unit3dup-0.9.4}/unit3dup/bot.py +0 -0
  82. {unit3dup-0.9.2 → unit3dup-0.9.4}/unit3dup/duplicate.py +0 -0
  83. {unit3dup-0.9.2 → unit3dup-0.9.4}/unit3dup/exceptions.py +0 -0
  84. {unit3dup-0.9.2 → unit3dup-0.9.4}/unit3dup/media.py +0 -0
  85. {unit3dup-0.9.2 → unit3dup-0.9.4}/unit3dup/media_manager/ContentManager.py +0 -0
  86. {unit3dup-0.9.2 → unit3dup-0.9.4}/unit3dup/media_manager/DocuManager.py +0 -0
  87. {unit3dup-0.9.2 → unit3dup-0.9.4}/unit3dup/media_manager/GameManager.py +0 -0
  88. {unit3dup-0.9.2 → unit3dup-0.9.4}/unit3dup/media_manager/MediaInfoManager.py +0 -0
  89. {unit3dup-0.9.2 → unit3dup-0.9.4}/unit3dup/media_manager/SeedManager.py +0 -0
  90. {unit3dup-0.9.2 → unit3dup-0.9.4}/unit3dup/media_manager/TorrentManager.py +0 -0
  91. {unit3dup-0.9.2 → unit3dup-0.9.4}/unit3dup/media_manager/VideoManager.py +0 -0
  92. {unit3dup-0.9.2 → unit3dup-0.9.4}/unit3dup/media_manager/__init__.py +0 -0
  93. {unit3dup-0.9.2 → unit3dup-0.9.4}/unit3dup/media_manager/common.py +0 -0
  94. {unit3dup-0.9.2 → unit3dup-0.9.4}/unit3dup/pvtDocu.py +0 -0
  95. {unit3dup-0.9.2 → unit3dup-0.9.4}/unit3dup/pvtTorrent.py +0 -0
  96. {unit3dup-0.9.2 → unit3dup-0.9.4}/unit3dup/pvtTracker.py +0 -0
  97. {unit3dup-0.9.2 → unit3dup-0.9.4}/unit3dup/pvtVideo.py +0 -0
  98. {unit3dup-0.9.2 → unit3dup-0.9.4}/unit3dup/torrent.py +0 -0
  99. {unit3dup-0.9.2 → unit3dup-0.9.4}/unit3dup/upload.py +0 -0
  100. {unit3dup-0.9.2 → unit3dup-0.9.4}/view/__init__.py +0 -0
  101. {unit3dup-0.9.2 → unit3dup-0.9.4}/view/custom_console.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: Unit3Dup
3
- Version: 0.9.2
3
+ Version: 0.9.4
4
4
  Summary: An uploader for the Unit3D torrent tracker
5
5
  Author: Parzival
6
6
  License-Expression: MIT
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: Unit3Dup
3
- Version: 0.9.2
3
+ Version: 0.9.4
4
4
  Summary: An uploader for the Unit3D torrent tracker
5
5
  Author: Parzival
6
6
  License-Expression: MIT
@@ -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
- video_format = self.mediafile.video_track[0].get('format', "") if self.mediafile.video_track else ""
150
- video_encode = self.mediafile.video_track[0].get('encoded_library_name',
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.upper())
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
- if m:
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.2"
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"
@@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta"
5
5
  [project]
6
6
  dynamic = ["dependencies"]
7
7
  name = "Unit3Dup"
8
- version = "0.9.2"
8
+ version = "0.9.4"
9
9
  description = "An uploader for the Unit3D torrent tracker"
10
10
  readme = "README.rst"
11
11
  requires-python = ">=3.10"
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