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.3.tar.gz (498.8 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.3-py3-none-any.whl (499.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: unit3dprep-1.1.3.tar.gz
  • Upload date:
  • Size: 498.8 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.3.tar.gz
Algorithm Hash digest
SHA256 0b3eca9e417e37afdec734a60ccce58d22bb371b795132c9ded8427ed8bf7446
MD5 bc838efc4be6bbd5e04dd9972f6eb2e0
BLAKE2b-256 fccb9ef969662981da3cd6a33a0e4900636cb3e7bdd82ee61d7fb46d1668e1d0

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: unit3dprep-1.1.3-py3-none-any.whl
  • Upload date:
  • Size: 499.8 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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 6f5027c620bae94f1fff0f2ed3c627f8c639ea26befd5d3f9001626d4e35de92
MD5 3d042de2637c7da71b1ab84377d482ce
BLAKE2b-256 9ade2418ee9760187a9735f993e7f9b0e6e0931afa2c3b97ec9d0b7275334de4

See more details on using hashes here.

Provenance

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