Unit3Dup 0.8.19__tar.gz → 0.8.21__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 (103) hide show
  1. {unit3dup-0.8.19 → unit3dup-0.8.21}/PKG-INFO +24 -2
  2. {unit3dup-0.8.19 → unit3dup-0.8.21}/README.rst +23 -1
  3. {unit3dup-0.8.19 → unit3dup-0.8.21}/Unit3Dup.egg-info/PKG-INFO +24 -2
  4. {unit3dup-0.8.19 → unit3dup-0.8.21}/common/external_services/imageHost.py +20 -0
  5. {unit3dup-0.8.19 → unit3dup-0.8.21}/common/external_services/theMovieDB/core/api.py +7 -5
  6. {unit3dup-0.8.19 → unit3dup-0.8.21}/common/settings.py +12 -4
  7. {unit3dup-0.8.19 → unit3dup-0.8.21}/common/utility.py +4 -1
  8. {unit3dup-0.8.19 → unit3dup-0.8.21}/pyproject.toml +1 -1
  9. {unit3dup-0.8.19 → unit3dup-0.8.21}/unit3dup/media_manager/ContentManager.py +2 -0
  10. {unit3dup-0.8.19 → unit3dup-0.8.21}/unit3dup/pvtVideo.py +4 -2
  11. {unit3dup-0.8.19 → unit3dup-0.8.21}/LICENSE +0 -0
  12. {unit3dup-0.8.19 → unit3dup-0.8.21}/Unit3Dup.egg-info/SOURCES.txt +0 -0
  13. {unit3dup-0.8.19 → unit3dup-0.8.21}/Unit3Dup.egg-info/dependency_links.txt +0 -0
  14. {unit3dup-0.8.19 → unit3dup-0.8.21}/Unit3Dup.egg-info/entry_points.txt +0 -0
  15. {unit3dup-0.8.19 → unit3dup-0.8.21}/Unit3Dup.egg-info/requires.txt +0 -0
  16. {unit3dup-0.8.19 → unit3dup-0.8.21}/Unit3Dup.egg-info/top_level.txt +0 -0
  17. {unit3dup-0.8.19 → unit3dup-0.8.21}/common/__init__.py +0 -0
  18. {unit3dup-0.8.19 → unit3dup-0.8.21}/common/bdinfo_string.py +0 -0
  19. {unit3dup-0.8.19 → unit3dup-0.8.21}/common/bittorrent.py +0 -0
  20. {unit3dup-0.8.19 → unit3dup-0.8.21}/common/command.py +0 -0
  21. {unit3dup-0.8.19 → unit3dup-0.8.21}/common/constants.py +0 -0
  22. {unit3dup-0.8.19 → unit3dup-0.8.21}/common/database.py +0 -0
  23. {unit3dup-0.8.19 → unit3dup-0.8.21}/common/external_services/__init__.py +0 -0
  24. {unit3dup-0.8.19 → unit3dup-0.8.21}/common/external_services/ftpx/__init__.py +0 -0
  25. {unit3dup-0.8.19 → unit3dup-0.8.21}/common/external_services/ftpx/client.py +0 -0
  26. {unit3dup-0.8.19 → unit3dup-0.8.21}/common/external_services/ftpx/core/__init__.py +0 -0
  27. {unit3dup-0.8.19 → unit3dup-0.8.21}/common/external_services/ftpx/core/ftpx_service.py +0 -0
  28. {unit3dup-0.8.19 → unit3dup-0.8.21}/common/external_services/ftpx/core/ftpx_session.py +0 -0
  29. {unit3dup-0.8.19 → unit3dup-0.8.21}/common/external_services/ftpx/core/menu.py +0 -0
  30. {unit3dup-0.8.19 → unit3dup-0.8.21}/common/external_services/ftpx/core/models/__init__.py +0 -0
  31. {unit3dup-0.8.19 → unit3dup-0.8.21}/common/external_services/ftpx/core/models/list.py +0 -0
  32. {unit3dup-0.8.19 → unit3dup-0.8.21}/common/external_services/igdb/__init__.py +0 -0
  33. {unit3dup-0.8.19 → unit3dup-0.8.21}/common/external_services/igdb/client.py +0 -0
  34. {unit3dup-0.8.19 → unit3dup-0.8.21}/common/external_services/igdb/core/__init__.py +0 -0
  35. {unit3dup-0.8.19 → unit3dup-0.8.21}/common/external_services/igdb/core/api.py +0 -0
  36. {unit3dup-0.8.19 → unit3dup-0.8.21}/common/external_services/igdb/core/models/__init__.py +0 -0
  37. {unit3dup-0.8.19 → unit3dup-0.8.21}/common/external_services/igdb/core/models/search.py +0 -0
  38. {unit3dup-0.8.19 → unit3dup-0.8.21}/common/external_services/igdb/core/platformid.py +0 -0
  39. {unit3dup-0.8.19 → unit3dup-0.8.21}/common/external_services/igdb/core/tags.py +0 -0
  40. {unit3dup-0.8.19 → unit3dup-0.8.21}/common/external_services/imdb.py +0 -0
  41. {unit3dup-0.8.19 → unit3dup-0.8.21}/common/external_services/mediaresult.py +0 -0
  42. {unit3dup-0.8.19 → unit3dup-0.8.21}/common/external_services/sessions/__init__.py +0 -0
  43. {unit3dup-0.8.19 → unit3dup-0.8.21}/common/external_services/sessions/agents.py +0 -0
  44. {unit3dup-0.8.19 → unit3dup-0.8.21}/common/external_services/sessions/exceptions.py +0 -0
  45. {unit3dup-0.8.19 → unit3dup-0.8.21}/common/external_services/sessions/session.py +0 -0
  46. {unit3dup-0.8.19 → unit3dup-0.8.21}/common/external_services/theMovieDB/__init__.py +0 -0
  47. {unit3dup-0.8.19 → unit3dup-0.8.21}/common/external_services/theMovieDB/core/__init__.py +0 -0
  48. {unit3dup-0.8.19 → unit3dup-0.8.21}/common/external_services/theMovieDB/core/keywords.py +0 -0
  49. {unit3dup-0.8.19 → unit3dup-0.8.21}/common/external_services/theMovieDB/core/models/__init__.py +0 -0
  50. {unit3dup-0.8.19 → unit3dup-0.8.21}/common/external_services/theMovieDB/core/models/movie/__init__.py +0 -0
  51. {unit3dup-0.8.19 → unit3dup-0.8.21}/common/external_services/theMovieDB/core/models/movie/alternative_titles.py +0 -0
  52. {unit3dup-0.8.19 → unit3dup-0.8.21}/common/external_services/theMovieDB/core/models/movie/details.py +0 -0
  53. {unit3dup-0.8.19 → unit3dup-0.8.21}/common/external_services/theMovieDB/core/models/movie/movie.py +0 -0
  54. {unit3dup-0.8.19 → unit3dup-0.8.21}/common/external_services/theMovieDB/core/models/movie/nowplaying.py +0 -0
  55. {unit3dup-0.8.19 → unit3dup-0.8.21}/common/external_services/theMovieDB/core/models/movie/release_info.py +0 -0
  56. {unit3dup-0.8.19 → unit3dup-0.8.21}/common/external_services/theMovieDB/core/models/tvshow/__init__.py +0 -0
  57. {unit3dup-0.8.19 → unit3dup-0.8.21}/common/external_services/theMovieDB/core/models/tvshow/alternative.py +0 -0
  58. {unit3dup-0.8.19 → unit3dup-0.8.21}/common/external_services/theMovieDB/core/models/tvshow/details.py +0 -0
  59. {unit3dup-0.8.19 → unit3dup-0.8.21}/common/external_services/theMovieDB/core/models/tvshow/on_the_air.py +0 -0
  60. {unit3dup-0.8.19 → unit3dup-0.8.21}/common/external_services/theMovieDB/core/models/tvshow/translations.py +0 -0
  61. {unit3dup-0.8.19 → unit3dup-0.8.21}/common/external_services/theMovieDB/core/models/tvshow/tvshow.py +0 -0
  62. {unit3dup-0.8.19 → unit3dup-0.8.21}/common/external_services/theMovieDB/core/videos.py +0 -0
  63. {unit3dup-0.8.19 → unit3dup-0.8.21}/common/external_services/trailers/__init__.py +0 -0
  64. {unit3dup-0.8.19 → unit3dup-0.8.21}/common/external_services/trailers/api.py +0 -0
  65. {unit3dup-0.8.19 → unit3dup-0.8.21}/common/external_services/trailers/response.py +0 -0
  66. {unit3dup-0.8.19 → unit3dup-0.8.21}/common/extractor.py +0 -0
  67. {unit3dup-0.8.19 → unit3dup-0.8.21}/common/frames.py +0 -0
  68. {unit3dup-0.8.19 → unit3dup-0.8.21}/common/mediainfo.py +0 -0
  69. {unit3dup-0.8.19 → unit3dup-0.8.21}/common/mediainfo_string.py +0 -0
  70. {unit3dup-0.8.19 → unit3dup-0.8.21}/common/title.py +0 -0
  71. {unit3dup-0.8.19 → unit3dup-0.8.21}/common/torrent_clients.py +0 -0
  72. {unit3dup-0.8.19 → unit3dup-0.8.21}/common/trackers/__init__.py +0 -0
  73. {unit3dup-0.8.19 → unit3dup-0.8.21}/common/trackers/data.py +0 -0
  74. {unit3dup-0.8.19 → unit3dup-0.8.21}/common/trackers/itt.py +0 -0
  75. {unit3dup-0.8.19 → unit3dup-0.8.21}/common/trackers/sis.py +0 -0
  76. {unit3dup-0.8.19 → unit3dup-0.8.21}/common/trackers/trackers.py +0 -0
  77. {unit3dup-0.8.19 → unit3dup-0.8.21}/requirements.txt +0 -0
  78. {unit3dup-0.8.19 → unit3dup-0.8.21}/setup.cfg +0 -0
  79. {unit3dup-0.8.19 → unit3dup-0.8.21}/unit3dup/__init__.py +0 -0
  80. {unit3dup-0.8.19 → unit3dup-0.8.21}/unit3dup/__main__.py +0 -0
  81. {unit3dup-0.8.19 → unit3dup-0.8.21}/unit3dup/automode.py +0 -0
  82. {unit3dup-0.8.19 → unit3dup-0.8.21}/unit3dup/bot.py +0 -0
  83. {unit3dup-0.8.19 → unit3dup-0.8.21}/unit3dup/duplicate.py +0 -0
  84. {unit3dup-0.8.19 → unit3dup-0.8.21}/unit3dup/exceptions.py +0 -0
  85. {unit3dup-0.8.19 → unit3dup-0.8.21}/unit3dup/media.py +0 -0
  86. {unit3dup-0.8.19 → unit3dup-0.8.21}/unit3dup/media_manager/DocuManager.py +0 -0
  87. {unit3dup-0.8.19 → unit3dup-0.8.21}/unit3dup/media_manager/GameManager.py +0 -0
  88. {unit3dup-0.8.19 → unit3dup-0.8.21}/unit3dup/media_manager/MediaInfoManager.py +0 -0
  89. {unit3dup-0.8.19 → unit3dup-0.8.21}/unit3dup/media_manager/SeedManager.py +0 -0
  90. {unit3dup-0.8.19 → unit3dup-0.8.21}/unit3dup/media_manager/TorrentManager.py +0 -0
  91. {unit3dup-0.8.19 → unit3dup-0.8.21}/unit3dup/media_manager/VideoManager.py +0 -0
  92. {unit3dup-0.8.19 → unit3dup-0.8.21}/unit3dup/media_manager/__init__.py +0 -0
  93. {unit3dup-0.8.19 → unit3dup-0.8.21}/unit3dup/media_manager/common.py +0 -0
  94. {unit3dup-0.8.19 → unit3dup-0.8.21}/unit3dup/pvtDocu.py +0 -0
  95. {unit3dup-0.8.19 → unit3dup-0.8.21}/unit3dup/pvtTorrent.py +0 -0
  96. {unit3dup-0.8.19 → unit3dup-0.8.21}/unit3dup/pvtTracker.py +0 -0
  97. {unit3dup-0.8.19 → unit3dup-0.8.21}/unit3dup/torrent.py +0 -0
  98. {unit3dup-0.8.19 → unit3dup-0.8.21}/unit3dup/upload.py +0 -0
  99. {unit3dup-0.8.19 → unit3dup-0.8.21}/unit3dup/web/__init__.py +0 -0
  100. {unit3dup-0.8.19 → unit3dup-0.8.21}/unit3dup/web/main.py +0 -0
  101. {unit3dup-0.8.19 → unit3dup-0.8.21}/view/__init__.py +0 -0
  102. {unit3dup-0.8.19 → unit3dup-0.8.21}/view/custom_console.py +0 -0
  103. {unit3dup-0.8.19 → unit3dup-0.8.21}/view/web_console.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: Unit3Dup
3
- Version: 0.8.19
3
+ Version: 0.8.21
4
4
  Summary: An uploader for the Unit3D torrent tracker
5
5
  Author: Parzival
6
6
  License-Expression: MIT
@@ -112,6 +112,28 @@ DOC
112
112
  Link `Unit3DUP <https://unit3dup.readthedocs.io/en/latest/index.html#>`_
113
113
 
114
114
 
115
+ ImageHost
116
+ =========
117
+
118
+ The bot can upload images to the following image hosting platforms:
119
+
120
+ +------------------+----------------------------+
121
+ | **Image Host** | **URL** |
122
+ +==================+============================+
123
+ | ``ImgBB`` | https://imgbb.com |
124
+ +------------------+----------------------------+
125
+ | ``FreeImage`` | https://freeimage.host |
126
+ +------------------+----------------------------+
127
+ | ``PtScreens`` | https://ptscreens.com |
128
+ +------------------+----------------------------+
129
+ | ``LensDump`` | https://lensdump.com |
130
+ +------------------+----------------------------+
131
+ | ``ImgFI`` | https://imgfi.com |
132
+ +------------------+----------------------------+
133
+ | ``PassIMA`` | https://passtheima.ge |
134
+ +------------------+----------------------------+
135
+ | ``ImaRide`` | https://www.imageride.net |
136
+ +------------------+----------------------------+
115
137
 
116
138
  Trackers
117
139
  ========
@@ -131,7 +153,7 @@ united by a shared passion for torrents and more
131
153
  :alt: Unisciti su Telegram
132
154
 
133
155
  .. image:: https://img.shields.io/discord/1214696147600408698?label=Discord&logo=discord&style=flat
134
- :target: https://discord.gg/8hRTjV8Q
156
+ :target: https://discord.gg/Skvune9P
135
157
  :alt: Discord Server
136
158
 
137
159
 
@@ -81,6 +81,28 @@ DOC
81
81
  Link `Unit3DUP <https://unit3dup.readthedocs.io/en/latest/index.html#>`_
82
82
 
83
83
 
84
+ ImageHost
85
+ =========
86
+
87
+ The bot can upload images to the following image hosting platforms:
88
+
89
+ +------------------+----------------------------+
90
+ | **Image Host** | **URL** |
91
+ +==================+============================+
92
+ | ``ImgBB`` | https://imgbb.com |
93
+ +------------------+----------------------------+
94
+ | ``FreeImage`` | https://freeimage.host |
95
+ +------------------+----------------------------+
96
+ | ``PtScreens`` | https://ptscreens.com |
97
+ +------------------+----------------------------+
98
+ | ``LensDump`` | https://lensdump.com |
99
+ +------------------+----------------------------+
100
+ | ``ImgFI`` | https://imgfi.com |
101
+ +------------------+----------------------------+
102
+ | ``PassIMA`` | https://passtheima.ge |
103
+ +------------------+----------------------------+
104
+ | ``ImaRide`` | https://www.imageride.net |
105
+ +------------------+----------------------------+
84
106
 
85
107
  Trackers
86
108
  ========
@@ -100,7 +122,7 @@ united by a shared passion for torrents and more
100
122
  :alt: Unisciti su Telegram
101
123
 
102
124
  .. image:: https://img.shields.io/discord/1214696147600408698?label=Discord&logo=discord&style=flat
103
- :target: https://discord.gg/8hRTjV8Q
125
+ :target: https://discord.gg/Skvune9P
104
126
  :alt: Discord Server
105
127
 
106
128
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: Unit3Dup
3
- Version: 0.8.19
3
+ Version: 0.8.21
4
4
  Summary: An uploader for the Unit3D torrent tracker
5
5
  Author: Parzival
6
6
  License-Expression: MIT
@@ -112,6 +112,28 @@ DOC
112
112
  Link `Unit3DUP <https://unit3dup.readthedocs.io/en/latest/index.html#>`_
113
113
 
114
114
 
115
+ ImageHost
116
+ =========
117
+
118
+ The bot can upload images to the following image hosting platforms:
119
+
120
+ +------------------+----------------------------+
121
+ | **Image Host** | **URL** |
122
+ +==================+============================+
123
+ | ``ImgBB`` | https://imgbb.com |
124
+ +------------------+----------------------------+
125
+ | ``FreeImage`` | https://freeimage.host |
126
+ +------------------+----------------------------+
127
+ | ``PtScreens`` | https://ptscreens.com |
128
+ +------------------+----------------------------+
129
+ | ``LensDump`` | https://lensdump.com |
130
+ +------------------+----------------------------+
131
+ | ``ImgFI`` | https://imgfi.com |
132
+ +------------------+----------------------------+
133
+ | ``PassIMA`` | https://passtheima.ge |
134
+ +------------------+----------------------------+
135
+ | ``ImaRide`` | https://www.imageride.net |
136
+ +------------------+----------------------------+
115
137
 
116
138
  Trackers
117
139
  ========
@@ -131,7 +153,7 @@ united by a shared passion for torrents and more
131
153
  :alt: Unisciti su Telegram
132
154
 
133
155
  .. image:: https://img.shields.io/discord/1214696147600408698?label=Discord&logo=discord&style=flat
134
- :target: https://discord.gg/8hRTjV8Q
156
+ :target: https://discord.gg/Skvune9P
135
157
  :alt: Discord Server
136
158
 
137
159
 
@@ -179,6 +179,21 @@ class PassIMA(ImageUploader):
179
179
  return 'source'
180
180
 
181
181
 
182
+ class ImaRide(ImageUploader):
183
+
184
+ priority= config_settings.user_preferences.IMARIDE_PRIORITY
185
+ def get_endpoint(self) -> str:
186
+ return "https://www.imageride.net/api/1/upload"
187
+
188
+ def get_data(self) -> dict:
189
+ return {
190
+ "key": self.key,
191
+ "title": self.image_name,
192
+ }
193
+
194
+ def get_field_name(self) -> str:
195
+ return 'source'
196
+
182
197
  class ImageUploaderFallback:
183
198
  def __init__(self, uploader):
184
199
  self.uploader = uploader
@@ -231,6 +246,9 @@ class ImageUploaderFallback:
231
246
  if uploader_host == "PassIMA":
232
247
  return response['image']['url']
233
248
 
249
+ if uploader_host == "ImaRide":
250
+ return response['image']['url']
251
+
234
252
  return None
235
253
 
236
254
  class Build:
@@ -251,6 +269,7 @@ class Build:
251
269
  self.PTSCREENS_KEY= config_settings.tracker_config.PTSCREENS_KEY
252
270
  self.IMGFI_KEY = config_settings.tracker_config.IMGFI_KEY
253
271
  self.PASSIMA_KEY = config_settings.tracker_config.PASSIMA_KEY
272
+ self.IMARIDE_KEY = config_settings.tracker_config.IMARIDE_KEY
254
273
  self.extracted_frames = extracted_frames
255
274
 
256
275
 
@@ -271,6 +290,7 @@ class Build:
271
290
  LensDump(img_bytes, self.LENSDUMP_KEY,image_name=image_name),
272
291
  ImgFi(img_bytes, self.IMGFI_KEY,image_name=image_name),
273
292
  PassIMA(img_bytes, self.PASSIMA_KEY, image_name=image_name),
293
+ ImaRide(img_bytes, self.IMARIDE_KEY, image_name=image_name),
274
294
  ]
275
295
 
276
296
  # Sorting list based on priority
@@ -395,11 +395,13 @@ class DbOnline(TmdbAPI):
395
395
  # todo compare against the media title especially for the favorite channel
396
396
  return result[0].items[0].id.videoId
397
397
  else:
398
- user_youtube_id = custom_console.user_input_str(message="Title not found."
399
- " Please digit a valid Youtube ID (0=skip)->")
400
- if user_youtube_id==0:
401
- return "not available"
402
- return user_youtube_id
398
+ if not config_settings.user_preferences.SKIP_YOUTUBE:
399
+ user_youtube_id = custom_console.user_input_str(message="Title not found."
400
+ " Please digit a valid Youtube ID (0=skip)->")
401
+ if user_youtube_id==0:
402
+ return "not available"
403
+ return user_youtube_id
404
+ return None
403
405
 
404
406
  def trailer(self, video_id: int) -> str | None:
405
407
  # Search for tmdb trailer
@@ -13,7 +13,7 @@ from common.utility import ManageTitles
13
13
  from common import trackers
14
14
 
15
15
  config_file = "Unit3Dbot.json"
16
- version = "0.8.19"
16
+ version = "0.8.21"
17
17
 
18
18
  if os.name == "nt":
19
19
  PW_TORRENT_ARCHIVE_PATH: Path = Path(os.getenv("LOCALAPPDATA", ".")) / "Unit3Dup_config" / "pw_torrent_archive"
@@ -69,6 +69,7 @@ class TrackerConfig(BaseModel):
69
69
  PTSCREENS_KEY: str | None = None
70
70
  IMGFI_KEY: str | None = None
71
71
  PASSIMA_KEY: str | None = None
72
+ IMARIDE_KEY: str | None = None
72
73
  YOUTUBE_KEY: str | None = None
73
74
  IGDB_CLIENT_ID: str | None = None
74
75
  IGDB_ID_SECRET: str | None = None
@@ -102,12 +103,15 @@ class UserPreferences(BaseModel):
102
103
  IMGBB_PRIORITY: int = 3
103
104
  IMGFI_PRIORITY: int = 4
104
105
  PASSIMA_PRIORITY: int = 5
106
+ IMARIDE_PRIORITY: int = 6
107
+
105
108
  NUMBER_OF_SCREENSHOTS: int = 4
106
109
  YOUTUBE_FAV_CHANNEL_ID: str | None = None
107
110
  YOUTUBE_CHANNEL_ENABLE: bool = False
108
111
  DUPLICATE_ON: bool = False
109
112
  SKIP_DUPLICATE: bool = False
110
113
  SKIP_TMDB: bool = False
114
+ SKIP_YOUTUBE: bool = False
111
115
  SIZE_TH: int = 50
112
116
  WATCHER_INTERVAL: int = 60
113
117
  WATCHER_PATH: str | None = None
@@ -421,15 +425,16 @@ class Config(BaseModel):
421
425
  else:
422
426
  field = field.upper()
423
427
 
424
- if field in ['DUPLICATE_ON','SKIP_DUPLICATE','SKIP_TMDB','RESIZE_SCSHOT','ANON','WEBP_ENABLED',
425
- 'CACHE_SCR','CACHE_DBONLINE', 'PERSONAL_RELEASE']:
428
+ if field in ['DUPLICATE_ON','SKIP_DUPLICATE','SKIP_TMDB','SKIP_YOUTUBE','RESIZE_SCSHOT','ANON',
429
+ 'WEBP_ENABLED', 'CACHE_SCR','CACHE_DBONLINE', 'PERSONAL_RELEASE']:
426
430
  section[field] = Validate.boolean(value=section[field], field_name=field)
427
431
 
428
432
  if field in ['TORRENT_COMMENT','WATCHER_PATH','DEFAULT_TRACKER']:
429
433
  section[field] = Validate.string(value=section[field], field_name=field)
430
434
 
431
435
  if field in ['NUMBER_OF_SCREENSHOTS','COMPRESS_SCSHOT','IMGBB_PRIORITY','FREE_IMAGE_PRIORITY',
432
- 'LENSDUMP_PRIORITY','PASSIMA_PRIORITY','WATCHER_INTERVAL','SIZE_TH', 'FAST_LOAD']:
436
+ 'LENSDUMP_PRIORITY','PASSIMA_PRIORITY','IMARIDE_PRIORITY', 'WATCHER_INTERVAL','SIZE_TH',
437
+ 'FAST_LOAD']:
433
438
  section[field] = Validate.integer(value=section[field], field_name=field)
434
439
 
435
440
  if field == 'PREFERRED_LANG':
@@ -531,6 +536,7 @@ class Load:
531
536
  "PTSCREENS_KEY": "no_key",
532
537
  "IMGFI_KEY": "no_key",
533
538
  "PASSIMA_KEY": "no_key",
539
+ "IMARIDE_KEY": "no_key",
534
540
  "YOUTUBE_KEY": "no_key",
535
541
  "IGDB_CLIENT_ID": "no_key",
536
542
  "IGDB_ID_SECRET": "no_key",
@@ -562,12 +568,14 @@ class Load:
562
568
  "IMGBB_PRIORITY": 3,
563
569
  "IMGFI_PRIORITY": 4,
564
570
  "PASSIMA_PRIORITY": 5,
571
+ "IMARIDE_PRIORITY": 6,
565
572
  "NUMBER_OF_SCREENSHOTS": 4,
566
573
  "YOUTUBE_FAV_CHANNEL_ID": "UCGCbxpnt25hWPFLSbvwfg_w",
567
574
  "YOUTUBE_CHANNEL_ENABLE": "False",
568
575
  "DUPLICATE_ON": "true",
569
576
  "SKIP_DUPLICATE": "false",
570
577
  "SKIP_TMDB": "false",
578
+ "SKIP_YOUTUBE" :'true',
571
579
  "SIZE_TH": 10,
572
580
  "WATCHER_INTERVAL": 60,
573
581
  "WATCHER_PATH": "no_path",
@@ -189,6 +189,9 @@ class ManageTitles:
189
189
  (r'\b7 \b1\b', '7.1'),
190
190
  (r'\b5 \b1\b', '5.1'),
191
191
  (r'\bDDP5 \b1\b', 'DDP5.1'),
192
+ (r'\bDDP2 \b1\b', 'DDP2.0'),
193
+ (r'\bDD5 \b1\b', 'DD5.1'),
194
+ (r'\bDD2 \b1\b', 'DD2.0'),
192
195
  (r'\b2 \b0\b', '2.0'),
193
196
  (r'\bWEB \bDL\b', 'WEB-DL'),
194
197
  (r'\bWEB \bDLMUX\b', 'WEB-DLMUX'),
@@ -197,7 +200,7 @@ class ManageTitles:
197
200
  (r'\bHEVC \bFHC\b', 'HEVC-FHC'),
198
201
  (r'\bCBR \bCBZ\b', 'CBR-CBZ'),
199
202
  (r'\bH \b264\b', 'H.264'),
200
-
203
+ (r'\bH \b265\b', 'H.265'),
201
204
  ]
202
205
 
203
206
  for tag, replacement in replacements:
@@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta"
5
5
  [project]
6
6
  dynamic = ["dependencies"]
7
7
  name = "Unit3Dup"
8
- version = "0.8.19"
8
+ version = "0.8.21"
9
9
  description = "An uploader for the Unit3D torrent tracker"
10
10
  readme = "README.rst"
11
11
  requires-python = ">=3.10"
@@ -129,6 +129,7 @@ class ContentManager:
129
129
  # Display name on webpage
130
130
  self.display_name, _ = os.path.splitext(os.path.basename(self.file_name))
131
131
  self.display_name = ManageTitles.clean_text(self.display_name)
132
+ self.display_name = re.sub(r'[\[\]()]', '', self.display_name)
132
133
  # current media path
133
134
  self.torrent_path = self.path
134
135
  # Try to get video ID from the string title
@@ -153,6 +154,7 @@ class ContentManager:
153
154
  self.file_name = os.path.join(self.path, files_list[0])
154
155
  # Display name on webpage
155
156
  self.display_name = ManageTitles.clean_text(os.path.basename(self.path))
157
+ self.display_name = re.sub(r'[\[\]()]', '', self.display_name)
156
158
  # current media path
157
159
  self.torrent_path = self.path
158
160
  # Torrent name
@@ -79,8 +79,10 @@ class Video:
79
79
  # Build the description
80
80
  build_description = Build(extracted_frames=extracted_frames_webp+extracted_frames, filename= self.display_name)
81
81
  self.description = build_description.description()
82
- self.description += (f"[b][spoiler=Spoiler: PLAY TRAILER][center][youtube]{self.trailer_key}[/youtube]"
83
- f"[/center][/spoiler][/b]")
82
+
83
+ if self.trailer_key:
84
+ self.description += (f"[b][spoiler=Spoiler: PLAY TRAILER][center][youtube]{self.trailer_key}[/youtube]"
85
+ f"[/center][/spoiler][/b]")
84
86
  self.is_hd = is_hd
85
87
 
86
88
  # Caching
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