Unit3DwebUp 0.0.14__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 (58) hide show
  1. unit3dwebup-0.0.14/PKG-INFO +191 -0
  2. unit3dwebup-0.0.14/README.md +164 -0
  3. unit3dwebup-0.0.14/Unit3DwebUp.egg-info/PKG-INFO +191 -0
  4. unit3dwebup-0.0.14/Unit3DwebUp.egg-info/SOURCES.txt +56 -0
  5. unit3dwebup-0.0.14/Unit3DwebUp.egg-info/dependency_links.txt +1 -0
  6. unit3dwebup-0.0.14/Unit3DwebUp.egg-info/entry_points.txt +2 -0
  7. unit3dwebup-0.0.14/Unit3DwebUp.egg-info/requires.txt +17 -0
  8. unit3dwebup-0.0.14/Unit3DwebUp.egg-info/top_level.txt +9 -0
  9. unit3dwebup-0.0.14/config/__init__.py +4 -0
  10. unit3dwebup-0.0.14/config/api_data.py +28 -0
  11. unit3dwebup-0.0.14/config/constants.py +34 -0
  12. unit3dwebup-0.0.14/config/host_data.py +47 -0
  13. unit3dwebup-0.0.14/config/itt.py +154 -0
  14. unit3dwebup-0.0.14/config/logger.py +37 -0
  15. unit3dwebup-0.0.14/config/settings.py +212 -0
  16. unit3dwebup-0.0.14/config/sis.py +137 -0
  17. unit3dwebup-0.0.14/config/tags.py +395 -0
  18. unit3dwebup-0.0.14/config/trackers.py +47 -0
  19. unit3dwebup-0.0.14/external/__init__.py +0 -0
  20. unit3dwebup-0.0.14/external/async_http_client_service.py +48 -0
  21. unit3dwebup-0.0.14/external/websocket.py +41 -0
  22. unit3dwebup-0.0.14/models/__init__.py +0 -0
  23. unit3dwebup-0.0.14/models/interfaces.py +39 -0
  24. unit3dwebup-0.0.14/models/keywords.py +13 -0
  25. unit3dwebup-0.0.14/models/media.py +597 -0
  26. unit3dwebup-0.0.14/models/media_info.py +142 -0
  27. unit3dwebup-0.0.14/models/movie.py +287 -0
  28. unit3dwebup-0.0.14/models/tv.py +266 -0
  29. unit3dwebup-0.0.14/models/tvdb_search.py +102 -0
  30. unit3dwebup-0.0.14/models/videos.py +26 -0
  31. unit3dwebup-0.0.14/pyproject.toml +48 -0
  32. unit3dwebup-0.0.14/repositories/__init__.py +0 -0
  33. unit3dwebup-0.0.14/repositories/db_online.py +82 -0
  34. unit3dwebup-0.0.14/repositories/interfaces.py +59 -0
  35. unit3dwebup-0.0.14/repositories/job_repos.py +166 -0
  36. unit3dwebup-0.0.14/repositories/media_info_factory.py +28 -0
  37. unit3dwebup-0.0.14/services/__init__.py +0 -0
  38. unit3dwebup-0.0.14/services/auto_async_service.py +237 -0
  39. unit3dwebup-0.0.14/services/create_torrent_service.py +94 -0
  40. unit3dwebup-0.0.14/services/interfaces.py +72 -0
  41. unit3dwebup-0.0.14/services/itt_tracker_helper.py +463 -0
  42. unit3dwebup-0.0.14/services/itt_tracker_service.py +85 -0
  43. unit3dwebup-0.0.14/services/lifespan_service.py +58 -0
  44. unit3dwebup-0.0.14/services/media_service.py +114 -0
  45. unit3dwebup-0.0.14/services/tags_service.py +389 -0
  46. unit3dwebup-0.0.14/services/tmdb.py +246 -0
  47. unit3dwebup-0.0.14/services/torrent_client_service.py +92 -0
  48. unit3dwebup-0.0.14/services/torrent_service.py +107 -0
  49. unit3dwebup-0.0.14/services/tvdb.py +65 -0
  50. unit3dwebup-0.0.14/services/utility.py +433 -0
  51. unit3dwebup-0.0.14/services/video_service.py +356 -0
  52. unit3dwebup-0.0.14/setup.cfg +4 -0
  53. unit3dwebup-0.0.14/use_case/__init__.py +0 -0
  54. unit3dwebup-0.0.14/use_case/make_torrent_usecase.py +67 -0
  55. unit3dwebup-0.0.14/use_case/process_all_usecase.py +43 -0
  56. unit3dwebup-0.0.14/use_case/scan_media_usecase.py +133 -0
  57. unit3dwebup-0.0.14/use_case/seed_usecase.py +117 -0
  58. unit3dwebup-0.0.14/use_case/upload_usecase.py +77 -0
@@ -0,0 +1,191 @@
1
+ Metadata-Version: 2.4
2
+ Name: Unit3DwebUp
3
+ Version: 0.0.14
4
+ Summary: A Unit3D uploader with a web interface
5
+ Author: Parzival
6
+ License-Expression: GPL-3.0-only
7
+ Project-URL: Homepage, https://github.com/31December99/Unit3DupWeb
8
+ Requires-Python: >=3.12
9
+ Description-Content-Type: text/markdown
10
+ Requires-Dist: aiohttp==3.13.3
11
+ Requires-Dist: fastapi==0.129.0
12
+ Requires-Dist: guessit==3.8.0
13
+ Requires-Dist: numpy==2.4.2
14
+ Requires-Dist: pathvalidate==3.3.1
15
+ Requires-Dist: pillow==12.1.1
16
+ Requires-Dist: pydantic==2.12.5
17
+ Requires-Dist: pydantic_core==2.41.5
18
+ Requires-Dist: pymediainfo==7.0.1
19
+ Requires-Dist: pydantic-settings==2.12.0
20
+ Requires-Dist: qbittorrent-api==2025.11.1
21
+ Requires-Dist: python-dotenv==1.2.1
22
+ Requires-Dist: redis==7.1.1
23
+ Requires-Dist: thefuzz==0.22.1
24
+ Requires-Dist: torf==4.3.1
25
+ Requires-Dist: watchdog==6.0.0
26
+ Requires-Dist: uvicorn[standard]==0.40.0
27
+
28
+ # Unit3DupWeb
29
+
30
+ ![version](https://img.shields.io/pypi/v/unit3dupWeb.svg)
31
+ ![online](https://img.shields.io/badge/Online-green)
32
+ ![status](https://img.shields.io/badge/Status-Active-brightgreen)
33
+ ![python](https://img.shields.io/badge/Python-3.12+-blue)
34
+ ![ubuntu](https://img.shields.io/badge/Ubuntu-22+-blue)
35
+ ![debian](https://img.shields.io/badge/Debian-12+-blue)
36
+ ![windows](https://img.shields.io/badge/Windows-11-blue)
37
+
38
+ ---
39
+
40
+ # Auto Torrent Generator and Uploader
41
+
42
+ Reworked from the original [Unit3Dup](https://github.com/31December99/Unit3Dup)
43
+
44
+ This code is under testing.
45
+
46
+ ![Home](images/home.png)
47
+
48
+ ---
49
+
50
+ ## Demo video
51
+
52
+ [Here](https://streamable.com/agoizj)
53
+
54
+ ---
55
+
56
+ ## What it does
57
+
58
+ * Scan folder and subfolders
59
+ * Compiles metadata to create a torrent
60
+ * Extracts screenshots from video
61
+ * Adds webp images to torrent page description
62
+ * Searches IDs on TMDB, IMDb, TVDB
63
+ * Adds trailer from TMDB or YouTube
64
+ * Seeds in qBittorrent
65
+ * Generates metadata from video
66
+ * Creates and uploads torrents/pages
67
+
68
+ ---
69
+
70
+ ## NOT YET TESTED
71
+
72
+ * Extracts cover from PDF documents
73
+ * Reseeding multiple torrents
74
+ * Cross-OS seeding
75
+ * Custom season titles
76
+ * MediaInfo-based metadata generation
77
+ * Extract first page of PDFs via xpdf and upload it
78
+ * Windows support improvements
79
+
80
+ ---
81
+
82
+ ## NOT YET IMPLEMENTED
83
+
84
+ * Game metadata generation
85
+ * Transmission / rTorrent seeding
86
+
87
+ ---
88
+
89
+ ## Install from Docker Hub
90
+
91
+ * Complete `.env.example`
92
+ * Rename to `.env`
93
+ * Run:
94
+
95
+ ```bash
96
+ docker-compose pull
97
+ ```
98
+
99
+ ---
100
+
101
+ ## How it works
102
+
103
+ The backend provides FastAPI endpoints.
104
+
105
+ For each video file, a job_id is generated from the hash of its path.
106
+
107
+ * job_ids form a job_list (page view)
108
+ * each page has a job_list_id based on scan path hash
109
+
110
+ WebSocket is used for:
111
+
112
+ * progress updates
113
+ * logs to frontend
114
+
115
+ ### Scan process
116
+
117
+ * Search files/folders
118
+ * Extract title
119
+ * Query TMDB (movie/series)
120
+ * Query TVDB and get IMDb ID
121
+ * Create screenshots
122
+ * Build description with MediaInfo + screenshots
123
+
124
+ ### Editing
125
+
126
+ If poster has issues (TMDB/IMDb mismatch):
127
+
128
+ * click poster
129
+ * edit fields
130
+ * create torrent / upload / seed
131
+
132
+ ---
133
+
134
+ ## Frontend build
135
+
136
+ ```bash
137
+ flutter pub get
138
+ flutter build web --release --wasm
139
+ ```
140
+
141
+ ---
142
+
143
+ ## Backend build
144
+
145
+ ```bash
146
+ docker-compose -f build.yml build --no-cache
147
+ docker-compose up
148
+ ```
149
+
150
+ ---
151
+
152
+ ## Docker Hub
153
+
154
+ ```bash
155
+ docker login
156
+
157
+ docker tag unit3dwebup-backend:latest parzival2025/backend_app:x.y.z
158
+ docker tag unit3dwebup-frontend:latest parzival2025/frontend_app:x.y.z
159
+
160
+ docker push parzival2025/backend_app:x.y.z
161
+ docker push parzival2025/frontend_app:x.y.z
162
+ ```
163
+
164
+ ---
165
+
166
+ ## Trackers
167
+
168
+ The Italian tracker community: people with technical and social backgrounds
169
+ united by torrents.
170
+
171
+ | Tracker | Description |
172
+ | ------- | ---------------------------------------------------- |
173
+ | ITT | [https://itatorrents.xyz/](https://itatorrents.xyz/) |
174
+
175
+ ---
176
+
177
+ ## Discord
178
+
179
+ [Join Discord](https://discord.gg/8RpwN2Khcz)
180
+
181
+ ![Discord](https://img.shields.io/discord/1214696147600408698?label=Discord\&logo=discord\&style=flat)
182
+
183
+ ---
184
+
185
+ ## AstraeLabs
186
+
187
+ [GitHub Project](https://github.com/AstraeLabs/VibraVid)
188
+
189
+ Open-source script for downloading movies, TV shows, and anime.
190
+
191
+ ![AstraeLabs](https://img.shields.io/badge/AstraeLabs-blue.svg)
@@ -0,0 +1,164 @@
1
+ # Unit3DupWeb
2
+
3
+ ![version](https://img.shields.io/pypi/v/unit3dupWeb.svg)
4
+ ![online](https://img.shields.io/badge/Online-green)
5
+ ![status](https://img.shields.io/badge/Status-Active-brightgreen)
6
+ ![python](https://img.shields.io/badge/Python-3.12+-blue)
7
+ ![ubuntu](https://img.shields.io/badge/Ubuntu-22+-blue)
8
+ ![debian](https://img.shields.io/badge/Debian-12+-blue)
9
+ ![windows](https://img.shields.io/badge/Windows-11-blue)
10
+
11
+ ---
12
+
13
+ # Auto Torrent Generator and Uploader
14
+
15
+ Reworked from the original [Unit3Dup](https://github.com/31December99/Unit3Dup)
16
+
17
+ This code is under testing.
18
+
19
+ ![Home](images/home.png)
20
+
21
+ ---
22
+
23
+ ## Demo video
24
+
25
+ [Here](https://streamable.com/agoizj)
26
+
27
+ ---
28
+
29
+ ## What it does
30
+
31
+ * Scan folder and subfolders
32
+ * Compiles metadata to create a torrent
33
+ * Extracts screenshots from video
34
+ * Adds webp images to torrent page description
35
+ * Searches IDs on TMDB, IMDb, TVDB
36
+ * Adds trailer from TMDB or YouTube
37
+ * Seeds in qBittorrent
38
+ * Generates metadata from video
39
+ * Creates and uploads torrents/pages
40
+
41
+ ---
42
+
43
+ ## NOT YET TESTED
44
+
45
+ * Extracts cover from PDF documents
46
+ * Reseeding multiple torrents
47
+ * Cross-OS seeding
48
+ * Custom season titles
49
+ * MediaInfo-based metadata generation
50
+ * Extract first page of PDFs via xpdf and upload it
51
+ * Windows support improvements
52
+
53
+ ---
54
+
55
+ ## NOT YET IMPLEMENTED
56
+
57
+ * Game metadata generation
58
+ * Transmission / rTorrent seeding
59
+
60
+ ---
61
+
62
+ ## Install from Docker Hub
63
+
64
+ * Complete `.env.example`
65
+ * Rename to `.env`
66
+ * Run:
67
+
68
+ ```bash
69
+ docker-compose pull
70
+ ```
71
+
72
+ ---
73
+
74
+ ## How it works
75
+
76
+ The backend provides FastAPI endpoints.
77
+
78
+ For each video file, a job_id is generated from the hash of its path.
79
+
80
+ * job_ids form a job_list (page view)
81
+ * each page has a job_list_id based on scan path hash
82
+
83
+ WebSocket is used for:
84
+
85
+ * progress updates
86
+ * logs to frontend
87
+
88
+ ### Scan process
89
+
90
+ * Search files/folders
91
+ * Extract title
92
+ * Query TMDB (movie/series)
93
+ * Query TVDB and get IMDb ID
94
+ * Create screenshots
95
+ * Build description with MediaInfo + screenshots
96
+
97
+ ### Editing
98
+
99
+ If poster has issues (TMDB/IMDb mismatch):
100
+
101
+ * click poster
102
+ * edit fields
103
+ * create torrent / upload / seed
104
+
105
+ ---
106
+
107
+ ## Frontend build
108
+
109
+ ```bash
110
+ flutter pub get
111
+ flutter build web --release --wasm
112
+ ```
113
+
114
+ ---
115
+
116
+ ## Backend build
117
+
118
+ ```bash
119
+ docker-compose -f build.yml build --no-cache
120
+ docker-compose up
121
+ ```
122
+
123
+ ---
124
+
125
+ ## Docker Hub
126
+
127
+ ```bash
128
+ docker login
129
+
130
+ docker tag unit3dwebup-backend:latest parzival2025/backend_app:x.y.z
131
+ docker tag unit3dwebup-frontend:latest parzival2025/frontend_app:x.y.z
132
+
133
+ docker push parzival2025/backend_app:x.y.z
134
+ docker push parzival2025/frontend_app:x.y.z
135
+ ```
136
+
137
+ ---
138
+
139
+ ## Trackers
140
+
141
+ The Italian tracker community: people with technical and social backgrounds
142
+ united by torrents.
143
+
144
+ | Tracker | Description |
145
+ | ------- | ---------------------------------------------------- |
146
+ | ITT | [https://itatorrents.xyz/](https://itatorrents.xyz/) |
147
+
148
+ ---
149
+
150
+ ## Discord
151
+
152
+ [Join Discord](https://discord.gg/8RpwN2Khcz)
153
+
154
+ ![Discord](https://img.shields.io/discord/1214696147600408698?label=Discord\&logo=discord\&style=flat)
155
+
156
+ ---
157
+
158
+ ## AstraeLabs
159
+
160
+ [GitHub Project](https://github.com/AstraeLabs/VibraVid)
161
+
162
+ Open-source script for downloading movies, TV shows, and anime.
163
+
164
+ ![AstraeLabs](https://img.shields.io/badge/AstraeLabs-blue.svg)
@@ -0,0 +1,191 @@
1
+ Metadata-Version: 2.4
2
+ Name: Unit3DwebUp
3
+ Version: 0.0.14
4
+ Summary: A Unit3D uploader with a web interface
5
+ Author: Parzival
6
+ License-Expression: GPL-3.0-only
7
+ Project-URL: Homepage, https://github.com/31December99/Unit3DupWeb
8
+ Requires-Python: >=3.12
9
+ Description-Content-Type: text/markdown
10
+ Requires-Dist: aiohttp==3.13.3
11
+ Requires-Dist: fastapi==0.129.0
12
+ Requires-Dist: guessit==3.8.0
13
+ Requires-Dist: numpy==2.4.2
14
+ Requires-Dist: pathvalidate==3.3.1
15
+ Requires-Dist: pillow==12.1.1
16
+ Requires-Dist: pydantic==2.12.5
17
+ Requires-Dist: pydantic_core==2.41.5
18
+ Requires-Dist: pymediainfo==7.0.1
19
+ Requires-Dist: pydantic-settings==2.12.0
20
+ Requires-Dist: qbittorrent-api==2025.11.1
21
+ Requires-Dist: python-dotenv==1.2.1
22
+ Requires-Dist: redis==7.1.1
23
+ Requires-Dist: thefuzz==0.22.1
24
+ Requires-Dist: torf==4.3.1
25
+ Requires-Dist: watchdog==6.0.0
26
+ Requires-Dist: uvicorn[standard]==0.40.0
27
+
28
+ # Unit3DupWeb
29
+
30
+ ![version](https://img.shields.io/pypi/v/unit3dupWeb.svg)
31
+ ![online](https://img.shields.io/badge/Online-green)
32
+ ![status](https://img.shields.io/badge/Status-Active-brightgreen)
33
+ ![python](https://img.shields.io/badge/Python-3.12+-blue)
34
+ ![ubuntu](https://img.shields.io/badge/Ubuntu-22+-blue)
35
+ ![debian](https://img.shields.io/badge/Debian-12+-blue)
36
+ ![windows](https://img.shields.io/badge/Windows-11-blue)
37
+
38
+ ---
39
+
40
+ # Auto Torrent Generator and Uploader
41
+
42
+ Reworked from the original [Unit3Dup](https://github.com/31December99/Unit3Dup)
43
+
44
+ This code is under testing.
45
+
46
+ ![Home](images/home.png)
47
+
48
+ ---
49
+
50
+ ## Demo video
51
+
52
+ [Here](https://streamable.com/agoizj)
53
+
54
+ ---
55
+
56
+ ## What it does
57
+
58
+ * Scan folder and subfolders
59
+ * Compiles metadata to create a torrent
60
+ * Extracts screenshots from video
61
+ * Adds webp images to torrent page description
62
+ * Searches IDs on TMDB, IMDb, TVDB
63
+ * Adds trailer from TMDB or YouTube
64
+ * Seeds in qBittorrent
65
+ * Generates metadata from video
66
+ * Creates and uploads torrents/pages
67
+
68
+ ---
69
+
70
+ ## NOT YET TESTED
71
+
72
+ * Extracts cover from PDF documents
73
+ * Reseeding multiple torrents
74
+ * Cross-OS seeding
75
+ * Custom season titles
76
+ * MediaInfo-based metadata generation
77
+ * Extract first page of PDFs via xpdf and upload it
78
+ * Windows support improvements
79
+
80
+ ---
81
+
82
+ ## NOT YET IMPLEMENTED
83
+
84
+ * Game metadata generation
85
+ * Transmission / rTorrent seeding
86
+
87
+ ---
88
+
89
+ ## Install from Docker Hub
90
+
91
+ * Complete `.env.example`
92
+ * Rename to `.env`
93
+ * Run:
94
+
95
+ ```bash
96
+ docker-compose pull
97
+ ```
98
+
99
+ ---
100
+
101
+ ## How it works
102
+
103
+ The backend provides FastAPI endpoints.
104
+
105
+ For each video file, a job_id is generated from the hash of its path.
106
+
107
+ * job_ids form a job_list (page view)
108
+ * each page has a job_list_id based on scan path hash
109
+
110
+ WebSocket is used for:
111
+
112
+ * progress updates
113
+ * logs to frontend
114
+
115
+ ### Scan process
116
+
117
+ * Search files/folders
118
+ * Extract title
119
+ * Query TMDB (movie/series)
120
+ * Query TVDB and get IMDb ID
121
+ * Create screenshots
122
+ * Build description with MediaInfo + screenshots
123
+
124
+ ### Editing
125
+
126
+ If poster has issues (TMDB/IMDb mismatch):
127
+
128
+ * click poster
129
+ * edit fields
130
+ * create torrent / upload / seed
131
+
132
+ ---
133
+
134
+ ## Frontend build
135
+
136
+ ```bash
137
+ flutter pub get
138
+ flutter build web --release --wasm
139
+ ```
140
+
141
+ ---
142
+
143
+ ## Backend build
144
+
145
+ ```bash
146
+ docker-compose -f build.yml build --no-cache
147
+ docker-compose up
148
+ ```
149
+
150
+ ---
151
+
152
+ ## Docker Hub
153
+
154
+ ```bash
155
+ docker login
156
+
157
+ docker tag unit3dwebup-backend:latest parzival2025/backend_app:x.y.z
158
+ docker tag unit3dwebup-frontend:latest parzival2025/frontend_app:x.y.z
159
+
160
+ docker push parzival2025/backend_app:x.y.z
161
+ docker push parzival2025/frontend_app:x.y.z
162
+ ```
163
+
164
+ ---
165
+
166
+ ## Trackers
167
+
168
+ The Italian tracker community: people with technical and social backgrounds
169
+ united by torrents.
170
+
171
+ | Tracker | Description |
172
+ | ------- | ---------------------------------------------------- |
173
+ | ITT | [https://itatorrents.xyz/](https://itatorrents.xyz/) |
174
+
175
+ ---
176
+
177
+ ## Discord
178
+
179
+ [Join Discord](https://discord.gg/8RpwN2Khcz)
180
+
181
+ ![Discord](https://img.shields.io/discord/1214696147600408698?label=Discord\&logo=discord\&style=flat)
182
+
183
+ ---
184
+
185
+ ## AstraeLabs
186
+
187
+ [GitHub Project](https://github.com/AstraeLabs/VibraVid)
188
+
189
+ Open-source script for downloading movies, TV shows, and anime.
190
+
191
+ ![AstraeLabs](https://img.shields.io/badge/AstraeLabs-blue.svg)
@@ -0,0 +1,56 @@
1
+ README.md
2
+ pyproject.toml
3
+ Unit3DwebUp.egg-info/PKG-INFO
4
+ Unit3DwebUp.egg-info/SOURCES.txt
5
+ Unit3DwebUp.egg-info/dependency_links.txt
6
+ Unit3DwebUp.egg-info/entry_points.txt
7
+ Unit3DwebUp.egg-info/requires.txt
8
+ Unit3DwebUp.egg-info/top_level.txt
9
+ config/__init__.py
10
+ config/api_data.py
11
+ config/constants.py
12
+ config/host_data.py
13
+ config/itt.py
14
+ config/logger.py
15
+ config/settings.py
16
+ config/sis.py
17
+ config/tags.py
18
+ config/trackers.py
19
+ external/__init__.py
20
+ external/async_http_client_service.py
21
+ external/websocket.py
22
+ models/__init__.py
23
+ models/interfaces.py
24
+ models/keywords.py
25
+ models/media.py
26
+ models/media_info.py
27
+ models/movie.py
28
+ models/tv.py
29
+ models/tvdb_search.py
30
+ models/videos.py
31
+ repositories/__init__.py
32
+ repositories/db_online.py
33
+ repositories/interfaces.py
34
+ repositories/job_repos.py
35
+ repositories/media_info_factory.py
36
+ services/__init__.py
37
+ services/auto_async_service.py
38
+ services/create_torrent_service.py
39
+ services/interfaces.py
40
+ services/itt_tracker_helper.py
41
+ services/itt_tracker_service.py
42
+ services/lifespan_service.py
43
+ services/media_service.py
44
+ services/tags_service.py
45
+ services/tmdb.py
46
+ services/torrent_client_service.py
47
+ services/torrent_service.py
48
+ services/tvdb.py
49
+ services/utility.py
50
+ services/video_service.py
51
+ use_case/__init__.py
52
+ use_case/make_torrent_usecase.py
53
+ use_case/process_all_usecase.py
54
+ use_case/scan_media_usecase.py
55
+ use_case/seed_usecase.py
56
+ use_case/upload_usecase.py
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ unit3dupweb = start:main
@@ -0,0 +1,17 @@
1
+ aiohttp==3.13.3
2
+ fastapi==0.129.0
3
+ guessit==3.8.0
4
+ numpy==2.4.2
5
+ pathvalidate==3.3.1
6
+ pillow==12.1.1
7
+ pydantic==2.12.5
8
+ pydantic_core==2.41.5
9
+ pymediainfo==7.0.1
10
+ pydantic-settings==2.12.0
11
+ qbittorrent-api==2025.11.1
12
+ python-dotenv==1.2.1
13
+ redis==7.1.1
14
+ thefuzz==0.22.1
15
+ torf==4.3.1
16
+ watchdog==6.0.0
17
+ uvicorn[standard]==0.40.0
@@ -0,0 +1,9 @@
1
+ UI
2
+ config
3
+ dist
4
+ external
5
+ images
6
+ models
7
+ repositories
8
+ services
9
+ use_case
@@ -0,0 +1,4 @@
1
+ from config.itt import itt_data
2
+ from config.sis import sis_data
3
+
4
+ tracker_list = {'ITT': itt_data, 'SIS': sis_data}
@@ -0,0 +1,28 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ # Same as the old code 08.21
4
+ from config.settings import get_settings
5
+
6
+ settings = get_settings()
7
+
8
+ # Get data based on tracker name. For example itt e sis
9
+ trackers_api_data = {
10
+ 'ITT':
11
+ {
12
+ "url": settings.tracker.ITT_URL,
13
+ "api_key": settings.tracker.ITT_APIKEY,
14
+ "pass_key": settings.tracker.ITT_PID,
15
+ "announce": f"{settings.tracker.ITT_URL}/announce/{settings.tracker.ITT_PID}",
16
+ "source": "ItaTorrents",
17
+ }
18
+ ,
19
+ 'SIS':
20
+ {
21
+ "url": settings.tracker.SIS_URL,
22
+ "api_key": settings.tracker.SIS_APIKEY,
23
+ "pass_key": settings.tracker.SIS_PID,
24
+ "announce": f"{settings.tracker.SIS_URL}/announce/{settings.tracker.SIS_PID}",
25
+ "source": "ShareIsland",
26
+ }
27
+
28
+ }
@@ -0,0 +1,34 @@
1
+ # -*- coding: utf-8 -*-
2
+ from enum import IntEnum
3
+
4
+
5
+ class MediaStatus(IntEnum):
6
+ """
7
+ It tracks the status during the creation of a media file
8
+ """
9
+ INDEXED = 0
10
+
11
+ # Searching tmdb,tvdb,imdb
12
+ DB_IDENTIFIED = 1
13
+ DB_NOT_IDENTIFIED = 10
14
+ DB_ERROR = 11
15
+
16
+ # When extracting the screenshots from the video file
17
+ VIDEO_READY = 2
18
+ VIDEO_ERROR = 20
19
+
20
+ # When uploading raw data to the image host
21
+ DESCRIPTION_READY = 3
22
+ DESCRIPTION_ERROR = 30
23
+
24
+ # When generating the torrent file *.torrent
25
+ TORRENT_GENERATED = 4
26
+ TORRENT_ERROR = 40
27
+
28
+ # When uploading torrent files to the tracker
29
+ TRACKER_UPLOADED = 5
30
+ TRACKER_NOT_UPLOADED = 50
31
+
32
+ # When seeding one or more torrent files
33
+ TORRENT_SEED = 7
34
+ TORRENT_SEED_ERROR = 70