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.1.1.tar.gz (495.4 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.1.1-py3-none-any.whl (496.3 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for unit3dprep-1.1.1.tar.gz
Algorithm Hash digest
SHA256 6f29817f59b43af701a19d43c0791736282220da42fc424777429f20e099b92e
MD5 2186092f7ffbc71fe9406c463f87e370
BLAKE2b-256 6f55a43e6bcdb0e41abd8f7356d3f96e397f25ae3b0a6c50d44d3422085ff918

See more details on using hashes here.

Provenance

The following attestation bundles were made for unit3dprep-1.1.1.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.1.1-py3-none-any.whl.

File metadata

  • Download URL: unit3dprep-1.1.1-py3-none-any.whl
  • Upload date:
  • Size: 496.3 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.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 80096d685e7d9b12bcac41a37c31714c8f3659e5f3514d6532743e5d7b41d678
MD5 ffda8e617c7754e8043ab91945893901
BLAKE2b-256 32e519a255447e3bdea647ec6ddd46b875ecc6ef33061ea76f4d0d256f6e8f20

See more details on using hashes here.

Provenance

The following attestation bundles were made for unit3dprep-1.1.1-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