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.2.tar.gz (498.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.2-py3-none-any.whl (499.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: unit3dprep-1.1.2.tar.gz
  • Upload date:
  • Size: 498.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.2.tar.gz
Algorithm Hash digest
SHA256 ebd15d5370b8e8bb444e7f1c0cc07f552e8e8b899ba7fefa8b4df939710aef60
MD5 8b899cb1a0b315798fe1ffc5bca72a67
BLAKE2b-256 354f19971e2fb61f89d74b271e7c258a3e726d4557f88d43c3b3cfd7f091d28f

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: unit3dprep-1.1.2-py3-none-any.whl
  • Upload date:
  • Size: 499.4 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 1f5e47e832dcd8485d368b8a3d2a66f93d643f3d237cdb0e4931ba8b1695e557
MD5 36040df83101da96122a4b44386c8995
BLAKE2b-256 460abaa6d95a0dc7a7f49921222d824f15631781da6324f7d6345c0ffc33d83c

See more details on using hashes here.

Provenance

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