Unit3Dup 0.8.7__tar.gz → 0.8.8__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 (110) hide show
  1. {unit3dup-0.8.7 → unit3dup-0.8.8}/PKG-INFO +2 -2
  2. {unit3dup-0.8.7 → unit3dup-0.8.8}/README.rst +1 -1
  3. {unit3dup-0.8.7 → unit3dup-0.8.8}/Unit3Dup.egg-info/PKG-INFO +2 -2
  4. {unit3dup-0.8.7 → unit3dup-0.8.8}/Unit3Dup.egg-info/SOURCES.txt +2 -0
  5. {unit3dup-0.8.7 → unit3dup-0.8.8}/Unit3Dup.egg-info/top_level.txt +1 -0
  6. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/external_services/imageHost.py +20 -1
  7. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/settings.py +50 -6
  8. {unit3dup-0.8.7 → unit3dup-0.8.8}/pyproject.toml +1 -1
  9. unit3dup-0.8.8/unit3dup/web/__init__.py +0 -0
  10. unit3dup-0.8.8/unit3dup/web/main.py +46 -0
  11. {unit3dup-0.8.7 → unit3dup-0.8.8}/LICENSE +0 -0
  12. {unit3dup-0.8.7 → unit3dup-0.8.8}/Unit3Dup.egg-info/dependency_links.txt +0 -0
  13. {unit3dup-0.8.7 → unit3dup-0.8.8}/Unit3Dup.egg-info/entry_points.txt +0 -0
  14. {unit3dup-0.8.7 → unit3dup-0.8.8}/Unit3Dup.egg-info/requires.txt +0 -0
  15. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/__init__.py +0 -0
  16. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/bdinfo_string.py +0 -0
  17. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/bittorrent.py +0 -0
  18. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/command.py +0 -0
  19. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/constants.py +0 -0
  20. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/external_services/Pw/__init__.py +0 -0
  21. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/external_services/Pw/core/__init__.py +0 -0
  22. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/external_services/Pw/core/models/__init__.py +0 -0
  23. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/external_services/Pw/core/models/indexers.py +0 -0
  24. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/external_services/Pw/core/models/search.py +0 -0
  25. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/external_services/Pw/core/models/torrent_client_config.py +0 -0
  26. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/external_services/Pw/core/pw_api.py +0 -0
  27. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/external_services/Pw/pw_manager.py +0 -0
  28. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/external_services/Pw/pw_service.py +0 -0
  29. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/external_services/__init__.py +0 -0
  30. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/external_services/ftpx/__init__.py +0 -0
  31. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/external_services/ftpx/client.py +0 -0
  32. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/external_services/ftpx/core/__init__.py +0 -0
  33. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/external_services/ftpx/core/ftpx_service.py +0 -0
  34. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/external_services/ftpx/core/ftpx_session.py +0 -0
  35. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/external_services/ftpx/core/menu.py +0 -0
  36. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/external_services/ftpx/core/models/__init__.py +0 -0
  37. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/external_services/ftpx/core/models/list.py +0 -0
  38. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/external_services/igdb/__init__.py +0 -0
  39. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/external_services/igdb/client.py +0 -0
  40. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/external_services/igdb/core/__init__.py +0 -0
  41. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/external_services/igdb/core/api.py +0 -0
  42. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/external_services/igdb/core/models/__init__.py +0 -0
  43. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/external_services/igdb/core/models/search.py +0 -0
  44. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/external_services/igdb/core/platformid.py +0 -0
  45. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/external_services/igdb/core/tags.py +0 -0
  46. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/external_services/imdb.py +0 -0
  47. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/external_services/mediaresult.py +0 -0
  48. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/external_services/sessions/__init__.py +0 -0
  49. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/external_services/sessions/agents.py +0 -0
  50. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/external_services/sessions/exceptions.py +0 -0
  51. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/external_services/sessions/session.py +0 -0
  52. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/external_services/theMovieDB/__init__.py +0 -0
  53. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/external_services/theMovieDB/core/__init__.py +0 -0
  54. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/external_services/theMovieDB/core/api.py +0 -0
  55. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/external_services/theMovieDB/core/keywords.py +0 -0
  56. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/external_services/theMovieDB/core/models/__init__.py +0 -0
  57. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/external_services/theMovieDB/core/models/movie/__init__.py +0 -0
  58. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/external_services/theMovieDB/core/models/movie/alternative_titles.py +0 -0
  59. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/external_services/theMovieDB/core/models/movie/details.py +0 -0
  60. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/external_services/theMovieDB/core/models/movie/movie.py +0 -0
  61. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/external_services/theMovieDB/core/models/movie/nowplaying.py +0 -0
  62. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/external_services/theMovieDB/core/models/movie/release_info.py +0 -0
  63. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/external_services/theMovieDB/core/models/tvshow/__init__.py +0 -0
  64. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/external_services/theMovieDB/core/models/tvshow/alternative.py +0 -0
  65. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/external_services/theMovieDB/core/models/tvshow/details.py +0 -0
  66. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/external_services/theMovieDB/core/models/tvshow/on_the_air.py +0 -0
  67. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/external_services/theMovieDB/core/models/tvshow/translations.py +0 -0
  68. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/external_services/theMovieDB/core/models/tvshow/tvshow.py +0 -0
  69. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/external_services/theMovieDB/core/videos.py +0 -0
  70. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/external_services/trailers/__init__.py +0 -0
  71. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/external_services/trailers/api.py +0 -0
  72. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/external_services/trailers/response.py +0 -0
  73. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/extractor.py +0 -0
  74. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/frames.py +0 -0
  75. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/mediainfo.py +0 -0
  76. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/mediainfo_string.py +0 -0
  77. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/title.py +0 -0
  78. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/torrent_clients.py +0 -0
  79. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/trackers/__init__.py +0 -0
  80. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/trackers/data.py +0 -0
  81. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/trackers/itt.py +0 -0
  82. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/trackers/sis.py +0 -0
  83. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/trackers/trackers.py +0 -0
  84. {unit3dup-0.8.7 → unit3dup-0.8.8}/common/utility.py +0 -0
  85. {unit3dup-0.8.7 → unit3dup-0.8.8}/requirements.txt +0 -0
  86. {unit3dup-0.8.7 → unit3dup-0.8.8}/setup.cfg +0 -0
  87. {unit3dup-0.8.7 → unit3dup-0.8.8}/unit3dup/__init__.py +0 -0
  88. {unit3dup-0.8.7 → unit3dup-0.8.8}/unit3dup/__main__.py +0 -0
  89. {unit3dup-0.8.7 → unit3dup-0.8.8}/unit3dup/automode.py +0 -0
  90. {unit3dup-0.8.7 → unit3dup-0.8.8}/unit3dup/bot.py +0 -0
  91. {unit3dup-0.8.7 → unit3dup-0.8.8}/unit3dup/duplicate.py +0 -0
  92. {unit3dup-0.8.7 → unit3dup-0.8.8}/unit3dup/exceptions.py +0 -0
  93. {unit3dup-0.8.7 → unit3dup-0.8.8}/unit3dup/media.py +0 -0
  94. {unit3dup-0.8.7 → unit3dup-0.8.8}/unit3dup/media_manager/ContentManager.py +0 -0
  95. {unit3dup-0.8.7 → unit3dup-0.8.8}/unit3dup/media_manager/DocuManager.py +0 -0
  96. {unit3dup-0.8.7 → unit3dup-0.8.8}/unit3dup/media_manager/GameManager.py +0 -0
  97. {unit3dup-0.8.7 → unit3dup-0.8.8}/unit3dup/media_manager/MediaInfoManager.py +0 -0
  98. {unit3dup-0.8.7 → unit3dup-0.8.8}/unit3dup/media_manager/SeedManager.py +0 -0
  99. {unit3dup-0.8.7 → unit3dup-0.8.8}/unit3dup/media_manager/TorrentManager.py +0 -0
  100. {unit3dup-0.8.7 → unit3dup-0.8.8}/unit3dup/media_manager/VideoManager.py +0 -0
  101. {unit3dup-0.8.7 → unit3dup-0.8.8}/unit3dup/media_manager/__init__.py +0 -0
  102. {unit3dup-0.8.7 → unit3dup-0.8.8}/unit3dup/media_manager/common.py +0 -0
  103. {unit3dup-0.8.7 → unit3dup-0.8.8}/unit3dup/pvtDocu.py +0 -0
  104. {unit3dup-0.8.7 → unit3dup-0.8.8}/unit3dup/pvtTorrent.py +0 -0
  105. {unit3dup-0.8.7 → unit3dup-0.8.8}/unit3dup/pvtTracker.py +0 -0
  106. {unit3dup-0.8.7 → unit3dup-0.8.8}/unit3dup/pvtVideo.py +0 -0
  107. {unit3dup-0.8.7 → unit3dup-0.8.8}/unit3dup/torrent.py +0 -0
  108. {unit3dup-0.8.7 → unit3dup-0.8.8}/unit3dup/upload.py +0 -0
  109. {unit3dup-0.8.7 → unit3dup-0.8.8}/view/__init__.py +0 -0
  110. {unit3dup-0.8.7 → unit3dup-0.8.8}/view/custom_console.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: Unit3Dup
3
- Version: 0.8.7
3
+ Version: 0.8.8
4
4
  Summary: An uploader for the Unit3D torrent tracker
5
5
  Author: Parzival
6
6
  License-Expression: MIT
@@ -75,7 +75,7 @@ pip install unit3dup
75
75
 
76
76
  Upgrade
77
77
  -------
78
- pip install --upgrade unit3dup
78
+ pip install unit3dup --upgrade
79
79
 
80
80
  Ubuntu/Debian Dependencies
81
81
  --------------------------
@@ -44,7 +44,7 @@ pip install unit3dup
44
44
 
45
45
  Upgrade
46
46
  -------
47
- pip install --upgrade unit3dup
47
+ pip install unit3dup --upgrade
48
48
 
49
49
  Ubuntu/Debian Dependencies
50
50
  --------------------------
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: Unit3Dup
3
- Version: 0.8.7
3
+ Version: 0.8.8
4
4
  Summary: An uploader for the Unit3D torrent tracker
5
5
  Author: Parzival
6
6
  License-Expression: MIT
@@ -75,7 +75,7 @@ pip install unit3dup
75
75
 
76
76
  Upgrade
77
77
  -------
78
- pip install --upgrade unit3dup
78
+ pip install unit3dup --upgrade
79
79
 
80
80
  Ubuntu/Debian Dependencies
81
81
  --------------------------
@@ -102,5 +102,7 @@ unit3dup/media_manager/TorrentManager.py
102
102
  unit3dup/media_manager/VideoManager.py
103
103
  unit3dup/media_manager/__init__.py
104
104
  unit3dup/media_manager/common.py
105
+ unit3dup/web/__init__.py
106
+ unit3dup/web/main.py
105
107
  view/__init__.py
106
108
  view/custom_console.py
@@ -3,5 +3,6 @@ common
3
3
  dist
4
4
  docs
5
5
  tests
6
+ tracker_cache
6
7
  unit3dup
7
8
  view
@@ -5,7 +5,6 @@ import json
5
5
  import time
6
6
  import requests
7
7
 
8
- from PIL import Image
9
8
  from abc import ABC, abstractmethod
10
9
  from common import config_settings
11
10
  from view import custom_console
@@ -163,6 +162,20 @@ class ImgFi(ImageUploader):
163
162
  def get_field_name(self) -> str:
164
163
  return 'source'
165
164
 
165
+ class PassIMA(ImageUploader):
166
+
167
+ priority= config_settings.user_preferences.PASSIMA_PRIORITY
168
+ def get_endpoint(self) -> str:
169
+ return "https://passtheima.ge/api/1/upload"
170
+
171
+ def get_data(self) -> dict:
172
+ return {
173
+ "key": self.key,
174
+ "title": self.image_name,
175
+ }
176
+
177
+ def get_field_name(self) -> str:
178
+ return 'source'
166
179
 
167
180
 
168
181
  class ImageUploaderFallback:
@@ -213,6 +226,10 @@ class ImageUploaderFallback:
213
226
 
214
227
  if uploader_host == "ImgFi":
215
228
  return response['image']['url']
229
+
230
+ if uploader_host == "PassIMA":
231
+ return response['image']['url']
232
+
216
233
  return None
217
234
 
218
235
  class Build:
@@ -232,6 +249,7 @@ class Build:
232
249
  self.LENSDUMP_KEY= config_settings.tracker_config.LENSDUMP_KEY
233
250
  self.PTSCREENS_KEY= config_settings.tracker_config.PTSCREENS_KEY
234
251
  self.IMGFI_KEY = config_settings.tracker_config.IMGFI_KEY
252
+ self.PASSIMA_KEY = config_settings.tracker_config.PASSIMA_KEY
235
253
  self.extracted_frames = extracted_frames
236
254
 
237
255
 
@@ -251,6 +269,7 @@ class Build:
251
269
  PtScreens(img_bytes, self.PTSCREENS_KEY,image_name=image_name),
252
270
  LensDump(img_bytes, self.LENSDUMP_KEY,image_name=image_name),
253
271
  ImgFi(img_bytes, self.IMGFI_KEY,image_name=image_name),
272
+ PassIMA(img_bytes, self.PASSIMA_KEY, image_name=image_name),
254
273
  ]
255
274
 
256
275
  # Sorting list based on priority
@@ -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.7"
16
+ version = "0.8.8"
17
17
 
18
18
  if os.name == "nt":
19
19
  PW_TORRENT_ARCHIVE_PATH: Path = Path(os.getenv("LOCALAPPDATA", ".")) / "Unit3Dup_config" / "pw_torrent_archive"
@@ -46,6 +46,14 @@ def get_default_path(field: str)-> str:
46
46
  return str(default_paths[field])
47
47
 
48
48
 
49
+
50
+ class Ccolors:
51
+ OKCYAN = '\033[96m'
52
+ OKGREEN = '\033[92m'
53
+ WARNING = '\033[93m'
54
+ FAIL = '\033[91m'
55
+ ENDC = '\033[0m'
56
+
49
57
  class TrackerConfig(BaseModel):
50
58
  ITT_URL: str
51
59
  ITT_APIKEY: str | None = None
@@ -60,6 +68,7 @@ class TrackerConfig(BaseModel):
60
68
  LENSDUMP_KEY: str | None = None
61
69
  PTSCREENS_KEY: str | None = None
62
70
  IMGFI_KEY: str | None = None
71
+ PASSIMA_KEY: str | None = None
63
72
  YOUTUBE_KEY: str | None = None
64
73
  IGDB_CLIENT_ID: str | None = None
65
74
  IGDB_ID_SECRET: str | None = None
@@ -92,6 +101,7 @@ class UserPreferences(BaseModel):
92
101
  FREE_IMAGE_PRIORITY: int = 2
93
102
  IMGBB_PRIORITY: int = 3
94
103
  IMGFI_PRIORITY: int = 4
104
+ PASSIMA_PRIORITY: int = 5
95
105
  NUMBER_OF_SCREENSHOTS: int = 4
96
106
  YOUTUBE_FAV_CHANNEL_ID: str | None = None
97
107
  YOUTUBE_CHANNEL_ENABLE: bool = False
@@ -419,7 +429,7 @@ class Config(BaseModel):
419
429
  section[field] = Validate.string(value=section[field], field_name=field)
420
430
 
421
431
  if field in ['NUMBER_OF_SCREENSHOTS','COMPRESS_SCSHOT','IMGBB_PRIORITY','FREE_IMAGE_PRIORITY',
422
- 'LENSDUMP_PRIORITY','WATCHER_INTERVAL','SIZE_TH', 'FAST_LOAD']:
432
+ 'LENSDUMP_PRIORITY','PASSIMA_PRIORITY','WATCHER_INTERVAL','SIZE_TH', 'FAST_LOAD']:
423
433
  section[field] = Validate.integer(value=section[field], field_name=field)
424
434
 
425
435
  if field == 'PREFERRED_LANG':
@@ -502,6 +512,7 @@ class Load:
502
512
  "LENSDUMP_KEY": "no_key",
503
513
  "PTSCREENS_KEY": "no_key",
504
514
  "IMGFI_KEY": "no_key",
515
+ "PASSIMA_KEY": "no_key",
505
516
  "YOUTUBE_KEY": "no_key",
506
517
  "IGDB_CLIENT_ID": "no_key",
507
518
  "IGDB_ID_SECRET": "no_key",
@@ -532,6 +543,7 @@ class Load:
532
543
  "FREE_IMAGE_PRIORITY": 2,
533
544
  "IMGBB_PRIORITY": 3,
534
545
  "IMGFI_PRIORITY": 4,
546
+ "PASSIMA_PRIORITY": 5,
535
547
  "NUMBER_OF_SCREENSHOTS": 4,
536
548
  "YOUTUBE_FAV_CHANNEL_ID": "UCGCbxpnt25hWPFLSbvwfg_w",
537
549
  "YOUTUBE_CHANNEL_ENABLE": "False",
@@ -741,10 +753,11 @@ class JsonConfig:
741
753
  return json.loads(json_data)
742
754
 
743
755
  except json.JSONDecodeError as e:
744
- print(f"Config Loading error.. {e}")
745
- print(r"Try to Check '\\ characters. Example: ")
746
- print(r"C:\myfolder -> not correct ")
747
- print(r"C:/myfolder -> CORRECT ")
756
+ print(f"* Please fix the error{Ccolors.WARNING} near Line {e.lineno}{Ccolors.ENDC}"
757
+ f" and {Ccolors.WARNING}Column {e.colno}{Ccolors.ENDC} in the config file: *\n")
758
+ print(f"{e.msg}\n")
759
+ # Seek And...
760
+ self.aim(line=e.lineno,col=e.colno)
748
761
  exit(1)
749
762
  except FileNotFoundError:
750
763
  print(f"Configuration '{self.default_json_path}' not found")
@@ -797,3 +810,34 @@ class JsonConfig:
797
810
 
798
811
  print(message)
799
812
 
813
+ def aim(self, line: int, col: int):
814
+ """
815
+ Try to identify the exact location of json error
816
+ Args:
817
+ line: Error line from the try block
818
+ col: Error line from the try block
819
+ Returns:
820
+ None
821
+ """
822
+
823
+ # Open the configuration file
824
+ with open(self.default_json_path, 'r') as file:
825
+ lines = file.readlines()
826
+
827
+ # Test the line value
828
+ if line <= len(lines):
829
+ # Create a "context" around the error....
830
+ line_context1 = lines[line -2].rstrip('\n')
831
+ line_context2 = lines[line + 1].rstrip('\n')
832
+
833
+ # Try to identify the position
834
+ line_text = lines[line - 1].rstrip('\n')
835
+ print(f"{line_context1}")
836
+ print(f"{Ccolors.WARNING}>>> {line_text}{Ccolors.ENDC}")
837
+
838
+ # Put the cursor under the error
839
+ cursor = ' ' * (col-1) + '^'
840
+ print(f"{Ccolors.WARNING} {cursor}{Ccolors.ENDC}")
841
+ print(f"{line_context2}")
842
+ else:
843
+ print("Line number is out of range !")
@@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta"
5
5
  [project]
6
6
  dynamic = ["dependencies"]
7
7
  name = "Unit3Dup"
8
- version = "0.8.7"
8
+ version = "0.8.8"
9
9
  description = "An uploader for the Unit3D torrent tracker"
10
10
  readme = "README.rst"
11
11
  requires-python = ">=3.10"
File without changes
@@ -0,0 +1,46 @@
1
+ from fastapi import FastAPI, APIRouter
2
+ from random import randint
3
+ from common.torrent_clients import TransmissionClient, QbittorrentClient, RTorrentClient
4
+ from common.command import CommandLine
5
+ from common.settings import Load,DEFAULT_JSON_PATH
6
+
7
+ from unit3dup.torrent import View
8
+ from unit3dup import pvtTracker
9
+ from unit3dup.bot import Bot
10
+ from view import custom_console
11
+
12
+
13
+ import uvicorn
14
+ import argparse
15
+ from random import randint
16
+
17
+ app = FastAPI()
18
+
19
+ # Classe che gestisce gli endpoint
20
+ class WebApp:
21
+ def __init__(self, config: Load):
22
+ self.router = APIRouter()
23
+ self.numb = randint(0, 100)
24
+ self._setup_routes()
25
+
26
+ def _setup_routes(self):
27
+ # Add the endpoints
28
+ self.router.add_api_route("/", self.root, methods=["GET"])
29
+ self.router.add_api_route("/upload/{name}", self.upload, methods=["GET"])
30
+
31
+ async def root(self):
32
+ return {"message": f"Hello World {self.numb}"}
33
+
34
+ async def upload(self, name: str):
35
+
36
+
37
+
38
+ return {"message": f"Hello {name}, numb is {self.numb}"}
39
+
40
+
41
+ def web():
42
+ web_app = WebApp(config=Load().load_config())
43
+ app.include_router(web_app.router)
44
+ uvicorn.run("unit3dup.web.main:app", host="127.0.0.1", port=8000, reload=True)
45
+
46
+
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