Unit3Dup 0.13.0__tar.gz → 0.13.2__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.13.0 → unit3dup-0.13.2}/PKG-INFO +1 -1
- {unit3dup-0.13.0 → unit3dup-0.13.2}/Unit3Dup.egg-info/PKG-INFO +1 -1
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/settings.py +2 -2
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/torrent_clients.py +25 -24
- {unit3dup-0.13.0 → unit3dup-0.13.2}/pyproject.toml +1 -1
- {unit3dup-0.13.0 → unit3dup-0.13.2}/LICENSE +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/README.rst +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/Unit3Dup.egg-info/SOURCES.txt +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/Unit3Dup.egg-info/dependency_links.txt +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/Unit3Dup.egg-info/entry_points.txt +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/Unit3Dup.egg-info/requires.txt +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/Unit3Dup.egg-info/top_level.txt +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/__init__.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/bdinfo_string.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/bittorrent.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/command.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/constants.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/database.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/__init__.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/ftpx/__init__.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/ftpx/client.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/ftpx/core/__init__.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/ftpx/core/ftpx_service.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/ftpx/core/ftpx_session.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/ftpx/core/menu.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/ftpx/core/models/__init__.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/ftpx/core/models/list.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/igdb/__init__.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/igdb/client.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/igdb/core/__init__.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/igdb/core/api.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/igdb/core/models/__init__.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/igdb/core/models/search.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/igdb/core/platformid.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/igdb/core/tags.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/imageHost.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/mediaresult.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/sessions/__init__.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/sessions/agents.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/sessions/exceptions.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/sessions/session.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/theMovieDB/__init__.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/theMovieDB/core/__init__.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/theMovieDB/core/api.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/theMovieDB/core/keywords.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/theMovieDB/core/models/__init__.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/theMovieDB/core/models/movie/__init__.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/theMovieDB/core/models/movie/alternative.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/theMovieDB/core/models/movie/details.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/theMovieDB/core/models/movie/movie.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/theMovieDB/core/models/movie/nowplaying.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/theMovieDB/core/models/movie/release_info.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/theMovieDB/core/models/movie/translations.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/theMovieDB/core/models/tvshow/__init__.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/theMovieDB/core/models/tvshow/alternative.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/theMovieDB/core/models/tvshow/details.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/theMovieDB/core/models/tvshow/on_the_air.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/theMovieDB/core/models/tvshow/translations.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/theMovieDB/core/models/tvshow/tvshow.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/theMovieDB/core/videos.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/trailers/__init__.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/trailers/api.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/trailers/response.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/tvdb.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/extractor.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/frames.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/mediainfo.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/mediainfo_string.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/tags.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/title.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/trackers/__init__.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/trackers/ast.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/trackers/ban_list.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/trackers/data.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/trackers/itt.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/trackers/ptt.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/trackers/signs_list.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/trackers/sis.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/trackers/tags_list.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/trackers/trackers.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/common/utility.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/requirements.txt +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/setup.cfg +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/unit3dup/__init__.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/unit3dup/__main__.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/unit3dup/automode.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/unit3dup/bot.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/unit3dup/duplicate.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/unit3dup/exceptions.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/unit3dup/media.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/unit3dup/media_manager/ContentManager.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/unit3dup/media_manager/DocuManager.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/unit3dup/media_manager/GameManager.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/unit3dup/media_manager/MediaInfoManager.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/unit3dup/media_manager/SeedManager.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/unit3dup/media_manager/TorrentManager.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/unit3dup/media_manager/VideoManager.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/unit3dup/media_manager/__init__.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/unit3dup/media_manager/common.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/unit3dup/pvtDocu.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/unit3dup/pvtTorrent.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/unit3dup/pvtTracker.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/unit3dup/pvtVideo.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/unit3dup/torrent.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/unit3dup/upload.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/view/__init__.py +0 -0
- {unit3dup-0.13.0 → unit3dup-0.13.2}/view/custom_console.py +0 -0
|
@@ -24,7 +24,7 @@ user_tags_file = "tags_list.json"
|
|
|
24
24
|
user_sign_file = "sign_list.json"
|
|
25
25
|
bane_file = "ban_list.json"
|
|
26
26
|
|
|
27
|
-
version = "0.13.
|
|
27
|
+
version = "0.13.2"
|
|
28
28
|
|
|
29
29
|
if os.name == "nt":
|
|
30
30
|
WATCHER_DESTINATION_PATH: Path = Path(
|
|
@@ -454,7 +454,7 @@ class Config(BaseModel):
|
|
|
454
454
|
section[field] = Validate.integer(value=section[field], field_name=field)
|
|
455
455
|
|
|
456
456
|
if field in ['QBIT_PASS', 'TRASM_PASS', 'RTORR_PASS', 'QBIT_USER', 'TRASM_USER', 'RTORR_USER',
|
|
457
|
-
|
|
457
|
+
'TORRENT_CLIENT', 'TAG', 'RTORR_HOST']:
|
|
458
458
|
section[field] = Validate.string(value=section[field], field_name=field)
|
|
459
459
|
|
|
460
460
|
if field in ['SHARED_TRASM_PATH', 'SHARED_QBIT_PATH', 'SHARED_RTORR_PATH']:
|
|
@@ -150,9 +150,9 @@ class QbittorrentClient(TorrClient):
|
|
|
150
150
|
f"{self.__class__.__name__} Please verify your configuration"
|
|
151
151
|
)
|
|
152
152
|
|
|
153
|
-
def _add_torrent_and_tag(self, torrent_bytes: bytes, save_path: str, info_hash: str,category: str) -> None:
|
|
153
|
+
def _add_torrent_and_tag(self, torrent_bytes: bytes, save_path: str, info_hash: str, category: str) -> None:
|
|
154
154
|
|
|
155
|
-
self.client.torrents_add(torrent_files=torrent_bytes,save_path=save_path)
|
|
155
|
+
self.client.torrents_add(torrent_files=torrent_bytes, save_path=save_path)
|
|
156
156
|
|
|
157
157
|
# wait for torrent to be registered
|
|
158
158
|
for _ in range(20):
|
|
@@ -164,9 +164,9 @@ class QbittorrentClient(TorrClient):
|
|
|
164
164
|
pass
|
|
165
165
|
time.sleep(0.25)
|
|
166
166
|
|
|
167
|
-
if category=='movie':
|
|
167
|
+
if category == 'movie':
|
|
168
168
|
category = config_settings.torrent_client_config.CATEGORY_MOVIE
|
|
169
|
-
if category=='tv':
|
|
169
|
+
if category == 'tv':
|
|
170
170
|
category = config_settings.torrent_client_config.CATEGORY_MOVIE
|
|
171
171
|
|
|
172
172
|
try:
|
|
@@ -176,32 +176,33 @@ class QbittorrentClient(TorrClient):
|
|
|
176
176
|
|
|
177
177
|
self.client.torrents_add_tags(tags=config_settings.torrent_client_config.TAG, torrent_hashes=info_hash)
|
|
178
178
|
|
|
179
|
-
def send_to_client(self, tracker_data_response: str, torrent: Mytorrent, content: Media,archive_path: str):
|
|
179
|
+
def send_to_client(self, tracker_data_response: str, torrent: Mytorrent, content: Media, archive_path: str):
|
|
180
180
|
|
|
181
|
+
# Check if shared path exists
|
|
181
182
|
if config_settings.torrent_client_config.SHARED_QBIT_PATH:
|
|
182
|
-
torr_location =
|
|
183
|
-
|
|
184
|
-
|
|
183
|
+
torr_location = config_settings.torrent_client_config.SHARED_QBIT_PATH
|
|
184
|
+
|
|
185
|
+
# append the category Serie to the shared path
|
|
186
|
+
if 'tv' in content.category.lower():
|
|
187
|
+
torr_location = os.path.join(torr_location, config_settings.torrent_client_config.CATEGORY_TV)
|
|
188
|
+
|
|
189
|
+
# append the category Movie to the shared path
|
|
190
|
+
if 'movie' in content.category.lower():
|
|
191
|
+
torr_location = os.path.join(torr_location, config_settings.torrent_client_config.CATEGORY_MOVIE)
|
|
185
192
|
else:
|
|
193
|
+
# otherwise set torr_location using the cli path
|
|
186
194
|
torr_location = os.path.dirname(content.torrent_path)
|
|
187
195
|
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
196
|
+
# We have to read the info_hash from the downloaded torrent file
|
|
197
|
+
# because the tracker randomizes it so it's not the same as the torf instance
|
|
198
|
+
with open(archive_path, "rb") as file_buffer:
|
|
199
|
+
torrent_data = file_buffer.read()
|
|
191
200
|
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
else:
|
|
198
|
-
info = torrent.mytorr.metainfo["info"]
|
|
199
|
-
info_hash = hashlib.sha1(
|
|
200
|
-
bencode2.bencode(info)
|
|
201
|
-
).hexdigest()
|
|
202
|
-
with open(archive_path, "rb") as file_buffer:
|
|
203
|
-
self._add_torrent_and_tag(torrent_bytes=file_buffer.read(),save_path=str(torr_location),
|
|
204
|
-
info_hash=info_hash, category = content.category)
|
|
201
|
+
info = bencode2.bdecode(torrent_data)[b"info"]
|
|
202
|
+
info_hash = hashlib.sha1(bencode2.bencode(info)).hexdigest()
|
|
203
|
+
file_buffer.seek(0)
|
|
204
|
+
self._add_torrent_and_tag(torrent_bytes=file_buffer.read(), save_path=str(torr_location),
|
|
205
|
+
info_hash=info_hash, category=content.category)
|
|
205
206
|
|
|
206
207
|
|
|
207
208
|
class RTorrentClient(TorrClient):
|
|
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.13.0 → unit3dup-0.13.2}/common/external_services/theMovieDB/core/models/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/theMovieDB/core/models/movie/details.py
RENAMED
|
File without changes
|
{unit3dup-0.13.0 → unit3dup-0.13.2}/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.13.0 → unit3dup-0.13.2}/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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|