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.
Files changed (107) hide show
  1. {unit3dup-0.13.0 → unit3dup-0.13.2}/PKG-INFO +1 -1
  2. {unit3dup-0.13.0 → unit3dup-0.13.2}/Unit3Dup.egg-info/PKG-INFO +1 -1
  3. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/settings.py +2 -2
  4. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/torrent_clients.py +25 -24
  5. {unit3dup-0.13.0 → unit3dup-0.13.2}/pyproject.toml +1 -1
  6. {unit3dup-0.13.0 → unit3dup-0.13.2}/LICENSE +0 -0
  7. {unit3dup-0.13.0 → unit3dup-0.13.2}/README.rst +0 -0
  8. {unit3dup-0.13.0 → unit3dup-0.13.2}/Unit3Dup.egg-info/SOURCES.txt +0 -0
  9. {unit3dup-0.13.0 → unit3dup-0.13.2}/Unit3Dup.egg-info/dependency_links.txt +0 -0
  10. {unit3dup-0.13.0 → unit3dup-0.13.2}/Unit3Dup.egg-info/entry_points.txt +0 -0
  11. {unit3dup-0.13.0 → unit3dup-0.13.2}/Unit3Dup.egg-info/requires.txt +0 -0
  12. {unit3dup-0.13.0 → unit3dup-0.13.2}/Unit3Dup.egg-info/top_level.txt +0 -0
  13. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/__init__.py +0 -0
  14. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/bdinfo_string.py +0 -0
  15. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/bittorrent.py +0 -0
  16. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/command.py +0 -0
  17. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/constants.py +0 -0
  18. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/database.py +0 -0
  19. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/__init__.py +0 -0
  20. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/ftpx/__init__.py +0 -0
  21. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/ftpx/client.py +0 -0
  22. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/ftpx/core/__init__.py +0 -0
  23. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/ftpx/core/ftpx_service.py +0 -0
  24. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/ftpx/core/ftpx_session.py +0 -0
  25. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/ftpx/core/menu.py +0 -0
  26. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/ftpx/core/models/__init__.py +0 -0
  27. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/ftpx/core/models/list.py +0 -0
  28. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/igdb/__init__.py +0 -0
  29. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/igdb/client.py +0 -0
  30. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/igdb/core/__init__.py +0 -0
  31. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/igdb/core/api.py +0 -0
  32. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/igdb/core/models/__init__.py +0 -0
  33. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/igdb/core/models/search.py +0 -0
  34. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/igdb/core/platformid.py +0 -0
  35. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/igdb/core/tags.py +0 -0
  36. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/imageHost.py +0 -0
  37. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/mediaresult.py +0 -0
  38. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/sessions/__init__.py +0 -0
  39. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/sessions/agents.py +0 -0
  40. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/sessions/exceptions.py +0 -0
  41. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/sessions/session.py +0 -0
  42. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/theMovieDB/__init__.py +0 -0
  43. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/theMovieDB/core/__init__.py +0 -0
  44. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/theMovieDB/core/api.py +0 -0
  45. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/theMovieDB/core/keywords.py +0 -0
  46. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/theMovieDB/core/models/__init__.py +0 -0
  47. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/theMovieDB/core/models/movie/__init__.py +0 -0
  48. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/theMovieDB/core/models/movie/alternative.py +0 -0
  49. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/theMovieDB/core/models/movie/details.py +0 -0
  50. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/theMovieDB/core/models/movie/movie.py +0 -0
  51. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/theMovieDB/core/models/movie/nowplaying.py +0 -0
  52. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/theMovieDB/core/models/movie/release_info.py +0 -0
  53. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/theMovieDB/core/models/movie/translations.py +0 -0
  54. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/theMovieDB/core/models/tvshow/__init__.py +0 -0
  55. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/theMovieDB/core/models/tvshow/alternative.py +0 -0
  56. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/theMovieDB/core/models/tvshow/details.py +0 -0
  57. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/theMovieDB/core/models/tvshow/on_the_air.py +0 -0
  58. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/theMovieDB/core/models/tvshow/translations.py +0 -0
  59. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/theMovieDB/core/models/tvshow/tvshow.py +0 -0
  60. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/theMovieDB/core/videos.py +0 -0
  61. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/trailers/__init__.py +0 -0
  62. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/trailers/api.py +0 -0
  63. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/trailers/response.py +0 -0
  64. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/external_services/tvdb.py +0 -0
  65. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/extractor.py +0 -0
  66. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/frames.py +0 -0
  67. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/mediainfo.py +0 -0
  68. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/mediainfo_string.py +0 -0
  69. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/tags.py +0 -0
  70. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/title.py +0 -0
  71. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/trackers/__init__.py +0 -0
  72. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/trackers/ast.py +0 -0
  73. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/trackers/ban_list.py +0 -0
  74. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/trackers/data.py +0 -0
  75. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/trackers/itt.py +0 -0
  76. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/trackers/ptt.py +0 -0
  77. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/trackers/signs_list.py +0 -0
  78. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/trackers/sis.py +0 -0
  79. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/trackers/tags_list.py +0 -0
  80. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/trackers/trackers.py +0 -0
  81. {unit3dup-0.13.0 → unit3dup-0.13.2}/common/utility.py +0 -0
  82. {unit3dup-0.13.0 → unit3dup-0.13.2}/requirements.txt +0 -0
  83. {unit3dup-0.13.0 → unit3dup-0.13.2}/setup.cfg +0 -0
  84. {unit3dup-0.13.0 → unit3dup-0.13.2}/unit3dup/__init__.py +0 -0
  85. {unit3dup-0.13.0 → unit3dup-0.13.2}/unit3dup/__main__.py +0 -0
  86. {unit3dup-0.13.0 → unit3dup-0.13.2}/unit3dup/automode.py +0 -0
  87. {unit3dup-0.13.0 → unit3dup-0.13.2}/unit3dup/bot.py +0 -0
  88. {unit3dup-0.13.0 → unit3dup-0.13.2}/unit3dup/duplicate.py +0 -0
  89. {unit3dup-0.13.0 → unit3dup-0.13.2}/unit3dup/exceptions.py +0 -0
  90. {unit3dup-0.13.0 → unit3dup-0.13.2}/unit3dup/media.py +0 -0
  91. {unit3dup-0.13.0 → unit3dup-0.13.2}/unit3dup/media_manager/ContentManager.py +0 -0
  92. {unit3dup-0.13.0 → unit3dup-0.13.2}/unit3dup/media_manager/DocuManager.py +0 -0
  93. {unit3dup-0.13.0 → unit3dup-0.13.2}/unit3dup/media_manager/GameManager.py +0 -0
  94. {unit3dup-0.13.0 → unit3dup-0.13.2}/unit3dup/media_manager/MediaInfoManager.py +0 -0
  95. {unit3dup-0.13.0 → unit3dup-0.13.2}/unit3dup/media_manager/SeedManager.py +0 -0
  96. {unit3dup-0.13.0 → unit3dup-0.13.2}/unit3dup/media_manager/TorrentManager.py +0 -0
  97. {unit3dup-0.13.0 → unit3dup-0.13.2}/unit3dup/media_manager/VideoManager.py +0 -0
  98. {unit3dup-0.13.0 → unit3dup-0.13.2}/unit3dup/media_manager/__init__.py +0 -0
  99. {unit3dup-0.13.0 → unit3dup-0.13.2}/unit3dup/media_manager/common.py +0 -0
  100. {unit3dup-0.13.0 → unit3dup-0.13.2}/unit3dup/pvtDocu.py +0 -0
  101. {unit3dup-0.13.0 → unit3dup-0.13.2}/unit3dup/pvtTorrent.py +0 -0
  102. {unit3dup-0.13.0 → unit3dup-0.13.2}/unit3dup/pvtTracker.py +0 -0
  103. {unit3dup-0.13.0 → unit3dup-0.13.2}/unit3dup/pvtVideo.py +0 -0
  104. {unit3dup-0.13.0 → unit3dup-0.13.2}/unit3dup/torrent.py +0 -0
  105. {unit3dup-0.13.0 → unit3dup-0.13.2}/unit3dup/upload.py +0 -0
  106. {unit3dup-0.13.0 → unit3dup-0.13.2}/view/__init__.py +0 -0
  107. {unit3dup-0.13.0 → unit3dup-0.13.2}/view/custom_console.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: Unit3Dup
3
- Version: 0.13.0
3
+ Version: 0.13.2
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.13.0
3
+ Version: 0.13.2
4
4
  Summary: An uploader for the Unit3D torrent tracker
5
5
  Author: Parzival
6
6
  License-Expression: MIT
@@ -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.0"
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
- 'TORRENT_CLIENT', 'TAG', 'CATEGORY_MOVIE','CATEGORY_TV', 'RTORR_HOST']:
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
- config_settings.torrent_client_config.SHARED_QBIT_PATH
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
- if not torrent:
189
- with open(archive_path, "rb") as file_buffer:
190
- torrent_data = file_buffer.read()
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
- info = bencode2.bdecode(torrent_data)[b"info"]
193
- info_hash = hashlib.sha1(bencode2.bencode(info)).hexdigest()
194
- file_buffer.seek(0)
195
- self._add_torrent_and_tag(torrent_bytes=file_buffer.read(),save_path=str(torr_location),
196
- info_hash=info_hash, category = content.category)
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):
@@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta"
5
5
  [project]
6
6
  dynamic = ["dependencies"]
7
7
  name = "Unit3Dup"
8
- version = "0.13.0"
8
+ version = "0.13.2"
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