Skip to main content

Web UI + CLI di pre-flight per tracker Unit3D, companion di Unit3DWebUp (audio ITA, nomenclatura ItaTorrents, hardlink, upload)

Project description

unit3dprep

Python FastAPI React TypeScript Vite GitHub Actions GitHub Pages

PyPI Docker Hub

Web UI + CLI di pre-flight per tracker Unit3D, accoppiata via HTTP a Unit3DWebUp come backend di upload. Verifica tracce audio italiane, rinomina secondo la nomenclatura ItaTorrents, crea hardlink in ~/seedings/ e orchestra il flusso setenv → scan → maketorrent → upload → seed su Unit3DWebUp con log live via WebSocket/SSE.

Configurazione unificata: un singolo file .env condiviso tra unit3dprep e Unit3DWebUp (path ENVPATH/U3DP_ENV_PATH). Le modifiche fatte da Settings vengono propagate al bot via POST /setenv senza riavvio.

Auto-update integrato per app (GitHub Releases) e Unit3DWebUp (PyPI): pulsante "Aggiorna" in Settings → Versione, log pip/git live-streamed via SSE, restart systemd e reload del browser con popup changelog. La Web UI è disponibile in italiano e inglese (selettore nella TopBar).

Controllo duplicati pre-upload: prima di costruire il .torrent il bridge interroga l'API ITT per tmdbId e match esatto sulla dimensione in byte. Se trova un duplicato mostra un pannello con i dettagli + "Carica comunque / Annulla"; l'annullamento traccia "duplicato skippato" nello storico e nasconde l'item dalla Media Library. Replica il vecchio unit3dup CLI (Unit3DWebUp 0.0.25 non implementa duplicate detection). Disabilitabile con W_DUPLICATE_CHECK=false.

Media Library

Documentazione completa → https://davidesidoti.github.io/unit3dprep/


Quick start

# 1. unit3dprep + Unit3DWebUp nello stesso venv (o due venv separati)
pip install -e .
pip install Unit3DwebUp

# 2. Genera secret e password hash
python generate_hash.py

# 3. Variabili minime in ~/.bashrc
export U3DP_PASSWORD_HASH='$2b$12$...'      # apici singoli — il $ NON va espanso
export U3DP_SECRET="..."
export TMDB_API_KEY="..."
export U3DP_PORT="8765"
export ENVPATH="$HOME/.config/unit3dprep"   # condiviso con Unit3DWebUp

# 4. Avvia Unit3DWebUp (richiede Redis su 127.0.0.1:6379 e ffmpeg)
ENVPATH=$HOME/.config/unit3dprep uvicorn unit3dwup.start:app --host 127.0.0.1 --port 8000 &

# 5. Avvia unit3dprep
unit3dprep-web

Apri http://127.0.0.1:8765, fai login, completa Settings → tracker/qBit/image host. Le credenziali vengono salvate in $ENVPATH/.env con la nomenclatura canonica TRACKER__* / TORRENT__* / PREFS__* e sincronizzate live a Unit3DWebUp. Per il deploy systemd dei due servizi vedi deploy/systemd/.

Docker (all-in-one)

Redis + Unit3DWebUp + unit3dprep in un singolo container:

git clone https://github.com/davidesidoti/unit3dprep.git
cd unit3dprep
cp config.env.example config.env   # compila U3DP_PASSWORD_HASH / U3DP_SECRET / TMDB_API_KEY
docker compose build
docker compose up -d
# apri http://127.0.0.1:8765

🐳 Immagine pubblicata su Docker Hub: hashdeveloper512/unit3dprep. Per saltare la build locale, in docker-compose.yml usa image: hashdeveloper512/unit3dprep:latest al posto di build: .docker compose up -d la scarica.

Serve Compose v2 (docker compose). La vecchia docker-compose v1 (1.29.2) crasha su up con Docker Engine 25+ (KeyError: 'ContainerConfig'). Se docker compose version non funziona, installa il plugin v2 (binario utente, senza repo): vedi Deploy › Docker › §1.

Guida completa: Deploy › Docker.


Guide

English mirror: aggiungi /en/ al path (es. /en/installation/).


Documentazione locale

pip install -r requirements-docs.txt
mkdocs serve

Poi apri http://127.0.0.1:8000.


Link

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

unit3dprep-1.0.5.tar.gz (481.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

unit3dprep-1.0.5-py3-none-any.whl (481.1 kB view details)

Uploaded Python 3

File details

Details for the file unit3dprep-1.0.5.tar.gz.

File metadata

  • Download URL: unit3dprep-1.0.5.tar.gz
  • Upload date:
  • Size: 481.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for unit3dprep-1.0.5.tar.gz
Algorithm Hash digest
SHA256 0ea46449a5bb59aa9867d1241688fc11edc1eaf8e00a9ea6b5045e5fd53b4901
MD5 8fb29970a5ff056f23f7b2989ae996cd
BLAKE2b-256 87ab5c278f5da1f990aabeb629fa0f7b370021fa7194e246e972791742cc376b

See more details on using hashes here.

Provenance

The following attestation bundles were made for unit3dprep-1.0.5.tar.gz:

Publisher: publish-pypi.yml on davidesidoti/unit3dprep

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file unit3dprep-1.0.5-py3-none-any.whl.

File metadata

  • Download URL: unit3dprep-1.0.5-py3-none-any.whl
  • Upload date:
  • Size: 481.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for unit3dprep-1.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 6e07c8e71cf3defc395e25918b9ae7d169ce28a81b68e13bc2441e37b51f0d25
MD5 a28f725a593a172583ad27f959fba969
BLAKE2b-256 5b890e465683a32c68b95f0e6402d345193e20f353e474d1ccfab28a4802b86c

See more details on using hashes here.

Provenance

The following attestation bundles were made for unit3dprep-1.0.5-py3-none-any.whl:

Publisher: publish-pypi.yml on davidesidoti/unit3dprep

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page