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.
- unit3dwebup-0.0.14/PKG-INFO +191 -0
- unit3dwebup-0.0.14/README.md +164 -0
- unit3dwebup-0.0.14/Unit3DwebUp.egg-info/PKG-INFO +191 -0
- unit3dwebup-0.0.14/Unit3DwebUp.egg-info/SOURCES.txt +56 -0
- unit3dwebup-0.0.14/Unit3DwebUp.egg-info/dependency_links.txt +1 -0
- unit3dwebup-0.0.14/Unit3DwebUp.egg-info/entry_points.txt +2 -0
- unit3dwebup-0.0.14/Unit3DwebUp.egg-info/requires.txt +17 -0
- unit3dwebup-0.0.14/Unit3DwebUp.egg-info/top_level.txt +9 -0
- unit3dwebup-0.0.14/config/__init__.py +4 -0
- unit3dwebup-0.0.14/config/api_data.py +28 -0
- unit3dwebup-0.0.14/config/constants.py +34 -0
- unit3dwebup-0.0.14/config/host_data.py +47 -0
- unit3dwebup-0.0.14/config/itt.py +154 -0
- unit3dwebup-0.0.14/config/logger.py +37 -0
- unit3dwebup-0.0.14/config/settings.py +212 -0
- unit3dwebup-0.0.14/config/sis.py +137 -0
- unit3dwebup-0.0.14/config/tags.py +395 -0
- unit3dwebup-0.0.14/config/trackers.py +47 -0
- unit3dwebup-0.0.14/external/__init__.py +0 -0
- unit3dwebup-0.0.14/external/async_http_client_service.py +48 -0
- unit3dwebup-0.0.14/external/websocket.py +41 -0
- unit3dwebup-0.0.14/models/__init__.py +0 -0
- unit3dwebup-0.0.14/models/interfaces.py +39 -0
- unit3dwebup-0.0.14/models/keywords.py +13 -0
- unit3dwebup-0.0.14/models/media.py +597 -0
- unit3dwebup-0.0.14/models/media_info.py +142 -0
- unit3dwebup-0.0.14/models/movie.py +287 -0
- unit3dwebup-0.0.14/models/tv.py +266 -0
- unit3dwebup-0.0.14/models/tvdb_search.py +102 -0
- unit3dwebup-0.0.14/models/videos.py +26 -0
- unit3dwebup-0.0.14/pyproject.toml +48 -0
- unit3dwebup-0.0.14/repositories/__init__.py +0 -0
- unit3dwebup-0.0.14/repositories/db_online.py +82 -0
- unit3dwebup-0.0.14/repositories/interfaces.py +59 -0
- unit3dwebup-0.0.14/repositories/job_repos.py +166 -0
- unit3dwebup-0.0.14/repositories/media_info_factory.py +28 -0
- unit3dwebup-0.0.14/services/__init__.py +0 -0
- unit3dwebup-0.0.14/services/auto_async_service.py +237 -0
- unit3dwebup-0.0.14/services/create_torrent_service.py +94 -0
- unit3dwebup-0.0.14/services/interfaces.py +72 -0
- unit3dwebup-0.0.14/services/itt_tracker_helper.py +463 -0
- unit3dwebup-0.0.14/services/itt_tracker_service.py +85 -0
- unit3dwebup-0.0.14/services/lifespan_service.py +58 -0
- unit3dwebup-0.0.14/services/media_service.py +114 -0
- unit3dwebup-0.0.14/services/tags_service.py +389 -0
- unit3dwebup-0.0.14/services/tmdb.py +246 -0
- unit3dwebup-0.0.14/services/torrent_client_service.py +92 -0
- unit3dwebup-0.0.14/services/torrent_service.py +107 -0
- unit3dwebup-0.0.14/services/tvdb.py +65 -0
- unit3dwebup-0.0.14/services/utility.py +433 -0
- unit3dwebup-0.0.14/services/video_service.py +356 -0
- unit3dwebup-0.0.14/setup.cfg +4 -0
- unit3dwebup-0.0.14/use_case/__init__.py +0 -0
- unit3dwebup-0.0.14/use_case/make_torrent_usecase.py +67 -0
- unit3dwebup-0.0.14/use_case/process_all_usecase.py +43 -0
- unit3dwebup-0.0.14/use_case/scan_media_usecase.py +133 -0
- unit3dwebup-0.0.14/use_case/seed_usecase.py +117 -0
- 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
|
+

|
|
31
|
+

|
|
32
|
+

|
|
33
|
+

|
|
34
|
+

|
|
35
|
+

|
|
36
|
+

|
|
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
|
+

|
|
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
|
+

|
|
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
|
+

|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
# Unit3DupWeb
|
|
2
|
+
|
|
3
|
+

|
|
4
|
+

|
|
5
|
+

|
|
6
|
+

|
|
7
|
+

|
|
8
|
+

|
|
9
|
+

|
|
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
|
+

|
|
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
|
+

|
|
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
|
+

|
|
@@ -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
|
+

|
|
31
|
+

|
|
32
|
+

|
|
33
|
+

|
|
34
|
+

|
|
35
|
+

|
|
36
|
+

|
|
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
|
+

|
|
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
|
+

|
|
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
|
+

|
|
@@ -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 @@
|
|
|
1
|
+
|
|
@@ -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,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
|