Unit3Dup 0.8.20__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.20 → unit3dup-0.8.21}/PKG-INFO +1 -1
  2. {unit3dup-0.8.20 → unit3dup-0.8.21}/Unit3Dup.egg-info/PKG-INFO +1 -1
  3. {unit3dup-0.8.20 → unit3dup-0.8.21}/common/external_services/theMovieDB/core/api.py +7 -5
  4. {unit3dup-0.8.20 → unit3dup-0.8.21}/common/settings.py +5 -3
  5. {unit3dup-0.8.20 → unit3dup-0.8.21}/pyproject.toml +1 -1
  6. {unit3dup-0.8.20 → unit3dup-0.8.21}/unit3dup/media_manager/ContentManager.py +2 -0
  7. {unit3dup-0.8.20 → unit3dup-0.8.21}/unit3dup/pvtVideo.py +4 -2
  8. {unit3dup-0.8.20 → unit3dup-0.8.21}/LICENSE +0 -0
  9. {unit3dup-0.8.20 → unit3dup-0.8.21}/README.rst +0 -0
  10. {unit3dup-0.8.20 → unit3dup-0.8.21}/Unit3Dup.egg-info/SOURCES.txt +0 -0
  11. {unit3dup-0.8.20 → unit3dup-0.8.21}/Unit3Dup.egg-info/dependency_links.txt +0 -0
  12. {unit3dup-0.8.20 → unit3dup-0.8.21}/Unit3Dup.egg-info/entry_points.txt +0 -0
  13. {unit3dup-0.8.20 → unit3dup-0.8.21}/Unit3Dup.egg-info/requires.txt +0 -0
  14. {unit3dup-0.8.20 → unit3dup-0.8.21}/Unit3Dup.egg-info/top_level.txt +0 -0
  15. {unit3dup-0.8.20 → unit3dup-0.8.21}/common/__init__.py +0 -0
  16. {unit3dup-0.8.20 → unit3dup-0.8.21}/common/bdinfo_string.py +0 -0
  17. {unit3dup-0.8.20 → unit3dup-0.8.21}/common/bittorrent.py +0 -0
  18. {unit3dup-0.8.20 → unit3dup-0.8.21}/common/command.py +0 -0
  19. {unit3dup-0.8.20 → unit3dup-0.8.21}/common/constants.py +0 -0
  20. {unit3dup-0.8.20 → unit3dup-0.8.21}/common/database.py +0 -0
  21. {unit3dup-0.8.20 → unit3dup-0.8.21}/common/external_services/__init__.py +0 -0
  22. {unit3dup-0.8.20 → unit3dup-0.8.21}/common/external_services/ftpx/__init__.py +0 -0
  23. {unit3dup-0.8.20 → unit3dup-0.8.21}/common/external_services/ftpx/client.py +0 -0
  24. {unit3dup-0.8.20 → unit3dup-0.8.21}/common/external_services/ftpx/core/__init__.py +0 -0
  25. {unit3dup-0.8.20 → unit3dup-0.8.21}/common/external_services/ftpx/core/ftpx_service.py +0 -0
  26. {unit3dup-0.8.20 → unit3dup-0.8.21}/common/external_services/ftpx/core/ftpx_session.py +0 -0
  27. {unit3dup-0.8.20 → unit3dup-0.8.21}/common/external_services/ftpx/core/menu.py +0 -0
  28. {unit3dup-0.8.20 → unit3dup-0.8.21}/common/external_services/ftpx/core/models/__init__.py +0 -0
  29. {unit3dup-0.8.20 → unit3dup-0.8.21}/common/external_services/ftpx/core/models/list.py +0 -0
  30. {unit3dup-0.8.20 → unit3dup-0.8.21}/common/external_services/igdb/__init__.py +0 -0
  31. {unit3dup-0.8.20 → unit3dup-0.8.21}/common/external_services/igdb/client.py +0 -0
  32. {unit3dup-0.8.20 → unit3dup-0.8.21}/common/external_services/igdb/core/__init__.py +0 -0
  33. {unit3dup-0.8.20 → unit3dup-0.8.21}/common/external_services/igdb/core/api.py +0 -0
  34. {unit3dup-0.8.20 → unit3dup-0.8.21}/common/external_services/igdb/core/models/__init__.py +0 -0
  35. {unit3dup-0.8.20 → unit3dup-0.8.21}/common/external_services/igdb/core/models/search.py +0 -0
  36. {unit3dup-0.8.20 → unit3dup-0.8.21}/common/external_services/igdb/core/platformid.py +0 -0
  37. {unit3dup-0.8.20 → unit3dup-0.8.21}/common/external_services/igdb/core/tags.py +0 -0
  38. {unit3dup-0.8.20 → unit3dup-0.8.21}/common/external_services/imageHost.py +0 -0
  39. {unit3dup-0.8.20 → unit3dup-0.8.21}/common/external_services/imdb.py +0 -0
  40. {unit3dup-0.8.20 → unit3dup-0.8.21}/common/external_services/mediaresult.py +0 -0
  41. {unit3dup-0.8.20 → unit3dup-0.8.21}/common/external_services/sessions/__init__.py +0 -0
  42. {unit3dup-0.8.20 → unit3dup-0.8.21}/common/external_services/sessions/agents.py +0 -0
  43. {unit3dup-0.8.20 → unit3dup-0.8.21}/common/external_services/sessions/exceptions.py +0 -0
  44. {unit3dup-0.8.20 → unit3dup-0.8.21}/common/external_services/sessions/session.py +0 -0
  45. {unit3dup-0.8.20 → unit3dup-0.8.21}/common/external_services/theMovieDB/__init__.py +0 -0
  46. {unit3dup-0.8.20 → unit3dup-0.8.21}/common/external_services/theMovieDB/core/__init__.py +0 -0
  47. {unit3dup-0.8.20 → unit3dup-0.8.21}/common/external_services/theMovieDB/core/keywords.py +0 -0
  48. {unit3dup-0.8.20 → unit3dup-0.8.21}/common/external_services/theMovieDB/core/models/__init__.py +0 -0
  49. {unit3dup-0.8.20 → unit3dup-0.8.21}/common/external_services/theMovieDB/core/models/movie/__init__.py +0 -0
  50. {unit3dup-0.8.20 → unit3dup-0.8.21}/common/external_services/theMovieDB/core/models/movie/alternative_titles.py +0 -0
  51. {unit3dup-0.8.20 → unit3dup-0.8.21}/common/external_services/theMovieDB/core/models/movie/details.py +0 -0
  52. {unit3dup-0.8.20 → unit3dup-0.8.21}/common/external_services/theMovieDB/core/models/movie/movie.py +0 -0
  53. {unit3dup-0.8.20 → unit3dup-0.8.21}/common/external_services/theMovieDB/core/models/movie/nowplaying.py +0 -0
  54. {unit3dup-0.8.20 → unit3dup-0.8.21}/common/external_services/theMovieDB/core/models/movie/release_info.py +0 -0
  55. {unit3dup-0.8.20 → unit3dup-0.8.21}/common/external_services/theMovieDB/core/models/tvshow/__init__.py +0 -0
  56. {unit3dup-0.8.20 → unit3dup-0.8.21}/common/external_services/theMovieDB/core/models/tvshow/alternative.py +0 -0
  57. {unit3dup-0.8.20 → unit3dup-0.8.21}/common/external_services/theMovieDB/core/models/tvshow/details.py +0 -0
  58. {unit3dup-0.8.20 → unit3dup-0.8.21}/common/external_services/theMovieDB/core/models/tvshow/on_the_air.py +0 -0
  59. {unit3dup-0.8.20 → unit3dup-0.8.21}/common/external_services/theMovieDB/core/models/tvshow/translations.py +0 -0
  60. {unit3dup-0.8.20 → unit3dup-0.8.21}/common/external_services/theMovieDB/core/models/tvshow/tvshow.py +0 -0
  61. {unit3dup-0.8.20 → unit3dup-0.8.21}/common/external_services/theMovieDB/core/videos.py +0 -0
  62. {unit3dup-0.8.20 → unit3dup-0.8.21}/common/external_services/trailers/__init__.py +0 -0
  63. {unit3dup-0.8.20 → unit3dup-0.8.21}/common/external_services/trailers/api.py +0 -0
  64. {unit3dup-0.8.20 → unit3dup-0.8.21}/common/external_services/trailers/response.py +0 -0
  65. {unit3dup-0.8.20 → unit3dup-0.8.21}/common/extractor.py +0 -0
  66. {unit3dup-0.8.20 → unit3dup-0.8.21}/common/frames.py +0 -0
  67. {unit3dup-0.8.20 → unit3dup-0.8.21}/common/mediainfo.py +0 -0
  68. {unit3dup-0.8.20 → unit3dup-0.8.21}/common/mediainfo_string.py +0 -0
  69. {unit3dup-0.8.20 → unit3dup-0.8.21}/common/title.py +0 -0
  70. {unit3dup-0.8.20 → unit3dup-0.8.21}/common/torrent_clients.py +0 -0
  71. {unit3dup-0.8.20 → unit3dup-0.8.21}/common/trackers/__init__.py +0 -0
  72. {unit3dup-0.8.20 → unit3dup-0.8.21}/common/trackers/data.py +0 -0
  73. {unit3dup-0.8.20 → unit3dup-0.8.21}/common/trackers/itt.py +0 -0
  74. {unit3dup-0.8.20 → unit3dup-0.8.21}/common/trackers/sis.py +0 -0
  75. {unit3dup-0.8.20 → unit3dup-0.8.21}/common/trackers/trackers.py +0 -0
  76. {unit3dup-0.8.20 → unit3dup-0.8.21}/common/utility.py +0 -0
  77. {unit3dup-0.8.20 → unit3dup-0.8.21}/requirements.txt +0 -0
  78. {unit3dup-0.8.20 → unit3dup-0.8.21}/setup.cfg +0 -0
  79. {unit3dup-0.8.20 → unit3dup-0.8.21}/unit3dup/__init__.py +0 -0
  80. {unit3dup-0.8.20 → unit3dup-0.8.21}/unit3dup/__main__.py +0 -0
  81. {unit3dup-0.8.20 → unit3dup-0.8.21}/unit3dup/automode.py +0 -0
  82. {unit3dup-0.8.20 → unit3dup-0.8.21}/unit3dup/bot.py +0 -0
  83. {unit3dup-0.8.20 → unit3dup-0.8.21}/unit3dup/duplicate.py +0 -0
  84. {unit3dup-0.8.20 → unit3dup-0.8.21}/unit3dup/exceptions.py +0 -0
  85. {unit3dup-0.8.20 → unit3dup-0.8.21}/unit3dup/media.py +0 -0
  86. {unit3dup-0.8.20 → unit3dup-0.8.21}/unit3dup/media_manager/DocuManager.py +0 -0
  87. {unit3dup-0.8.20 → unit3dup-0.8.21}/unit3dup/media_manager/GameManager.py +0 -0
  88. {unit3dup-0.8.20 → unit3dup-0.8.21}/unit3dup/media_manager/MediaInfoManager.py +0 -0
  89. {unit3dup-0.8.20 → unit3dup-0.8.21}/unit3dup/media_manager/SeedManager.py +0 -0
  90. {unit3dup-0.8.20 → unit3dup-0.8.21}/unit3dup/media_manager/TorrentManager.py +0 -0
  91. {unit3dup-0.8.20 → unit3dup-0.8.21}/unit3dup/media_manager/VideoManager.py +0 -0
  92. {unit3dup-0.8.20 → unit3dup-0.8.21}/unit3dup/media_manager/__init__.py +0 -0
  93. {unit3dup-0.8.20 → unit3dup-0.8.21}/unit3dup/media_manager/common.py +0 -0
  94. {unit3dup-0.8.20 → unit3dup-0.8.21}/unit3dup/pvtDocu.py +0 -0
  95. {unit3dup-0.8.20 → unit3dup-0.8.21}/unit3dup/pvtTorrent.py +0 -0
  96. {unit3dup-0.8.20 → unit3dup-0.8.21}/unit3dup/pvtTracker.py +0 -0
  97. {unit3dup-0.8.20 → unit3dup-0.8.21}/unit3dup/torrent.py +0 -0
  98. {unit3dup-0.8.20 → unit3dup-0.8.21}/unit3dup/upload.py +0 -0
  99. {unit3dup-0.8.20 → unit3dup-0.8.21}/unit3dup/web/__init__.py +0 -0
  100. {unit3dup-0.8.20 → unit3dup-0.8.21}/unit3dup/web/main.py +0 -0
  101. {unit3dup-0.8.20 → unit3dup-0.8.21}/view/__init__.py +0 -0
  102. {unit3dup-0.8.20 → unit3dup-0.8.21}/view/custom_console.py +0 -0
  103. {unit3dup-0.8.20 → 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.20
3
+ Version: 0.8.21
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.8.20
3
+ Version: 0.8.21
4
4
  Summary: An uploader for the Unit3D torrent tracker
5
5
  Author: Parzival
6
6
  License-Expression: MIT
@@ -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.20"
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"
@@ -111,6 +111,7 @@ class UserPreferences(BaseModel):
111
111
  DUPLICATE_ON: bool = False
112
112
  SKIP_DUPLICATE: bool = False
113
113
  SKIP_TMDB: bool = False
114
+ SKIP_YOUTUBE: bool = False
114
115
  SIZE_TH: int = 50
115
116
  WATCHER_INTERVAL: int = 60
116
117
  WATCHER_PATH: str | None = None
@@ -424,8 +425,8 @@ class Config(BaseModel):
424
425
  else:
425
426
  field = field.upper()
426
427
 
427
- if field in ['DUPLICATE_ON','SKIP_DUPLICATE','SKIP_TMDB','RESIZE_SCSHOT','ANON','WEBP_ENABLED',
428
- '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']:
429
430
  section[field] = Validate.boolean(value=section[field], field_name=field)
430
431
 
431
432
  if field in ['TORRENT_COMMENT','WATCHER_PATH','DEFAULT_TRACKER']:
@@ -574,6 +575,7 @@ class Load:
574
575
  "DUPLICATE_ON": "true",
575
576
  "SKIP_DUPLICATE": "false",
576
577
  "SKIP_TMDB": "false",
578
+ "SKIP_YOUTUBE" :'true',
577
579
  "SIZE_TH": 10,
578
580
  "WATCHER_INTERVAL": 60,
579
581
  "WATCHER_PATH": "no_path",
@@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta"
5
5
  [project]
6
6
  dynamic = ["dependencies"]
7
7
  name = "Unit3Dup"
8
- version = "0.8.20"
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
File without changes
File without changes