Test only with safe env.
Can delete some torrent(s) from your seedbox definitly. You're now warned.
Permet de supprimer automatiquement des torrents de qBittorrent, en fonction d'un score prenant en compte divers paramètres. Il contrôle l'espace disque de la seedbox a interval régulier, pour le maintenir à un % défini ou laisser un espace libre défini par l'utilisateur. Le choix des torrents à supprimer en priorité est fait en fonction de leur temps de seed, de leur ratio d'upload et de leurs étiquettes. Cela respecte donc les H&R des tracker priver. Des exceptions sont possibles grâce a l'ajout manuel d'étiquettes sur les torrent concerné dans qBittorrent.
Allows you to automatically remove torrents from qBittorrent, based on a score that takes into account various parameters. It controls the disk space of the seedbox at regular intervals, to maintain it at a defined % or leave a free space defined by the user. The choice of torrents to delete in priority is made according to their seed time, their upload ratio and their tags. This respects the H&R of private trackers. Exceptions are possible thanks to the manual addition of tags on the concerned torrents in qBittorrent.
Le script à pour l'instant vocation à tourner dans un environnement python dockerisé sur serveur, mais il est tout a fait possible de ne l'executer qu'une seule fois comme tout script python.
The script is for the moment intended to run in a dockerized python environment. But he can ben launched in a one shot side.
config/GeneralSetting.yml et config/TorrentsSelectionSetting.ymlpip3 install -r requirements.txt
python3 main.py
Créez un repertoire config/ et un répertoire log/ qui vont être montés dans votre docker.
Récupérez les fichiers config/GeneralSetting.yml et config/TorrentsSelectionSetting.yml et placez le dans le dossier :/config
curl -LJO https://raw.githubusercontent.com/LimeDrive/qb-auto-delt/master/config/GeneralSetting.yml
curl -LJO https://raw.githubusercontent.com/LimeDrive/qb-auto-delt/master/config/TorrentsSelectionSetting.yml
Editez les pour les adapter à votre configuration. Voir détaile plus bas.
Lancez le containeur docker en montant les volumes comme dans l'exemple donné ci-dessous :
-v /PATH/TO/LOCAL/log:/qb-auto-delt/log-v /PATH/TO/LOCAL/config:/qb-auto-delt/config:ro---
version: "3.9"
services:
QbAutoDelt:
container_name: qbautodelt
image: limedrive/qbautodelt:latest
environment:
- PYTHON_QBITTORRENTAPI_DO_NOT_VERIFY_WEBUI_CERTIFICATE=true
volumes:
- 'path/to/config/:/qb-auto-delt/config:ro'
- 'path/to/log:/qb-auto-delt/log'
restart: unless-stopped
docker run -d \
--name=qbautodelt
-e PYTHON_QBITTORRENTAPI_DO_NOT_VERIFY_WEBUI_CERTIFICATE=true \
-v path/to/config/:/qb-auto-delt/config:ro \
-v path/to/log:/qb-auto-delt/log \
--restart unless-stopped \
limedrive/qbautodelt:latest
Pour configurer vos préférences, éditez les fichiers :
config/GeneralSetting.yml et config/TorrentsSelectionSetting.yml
Pour tout changements dans
GeneralSetting.ymlil vous faudra relancé le script / docker.
Les changement dans
TorrentsSelectionSetting.ymlsont prit en compte imédiatement.
GeneralSetting.ymlqBittorrent:
host: "127.0.0.1:8080"
user: "admin"
password: "adminadmin"
| Options | Exemples | Description |
|---|---|---|
| host: | "127.0.0.1:8080" | <hostIP>:<port> |
| user: | "admin" | <WebUI User Name> |
| pass: | "adminamin" | <WebUI Password> |
Avec votre installation docker, il est possible et conseillé de mettre les containeurs qBittorrent et Qbautodelt sur le même network docker (bridge): Pour faire cela, renseignez dans le host l'adresse locale de votre docker et le port de la manière suivante : "qbittorrent:8080"
GeneralSetting.ymlSeul True est disponible si vous utilisez ce script pour une instance distante (ex: Seedbox) il est conseillé d'utiliser True en docker également, sans quoi vous aurez besoin de monter en volume, votre dossier de téléchargement afin que le script puisse calculer l'espace disque restant
ControlMethode: True
| Options | Methode | Description |
|---|---|---|
| True | GiB | Déclenchement de la suppression quand il ne reste plus que xx GiB d'espace libre sur votre disque |
| False | % | Déclenchement de la suppression quand vous dépassez un certain taux d'occupation de l'espace disque disponible (%) |
Si ControlMethode: False
disk_Usage_By_Percent:
max: 80
path: "./"
| Options | Exemples | Description |
|---|---|---|
| max: | 80 | Limite en % d'espace disque avant le déclenchement du script de supression |
| path: | "./" | Path a surveiller, ce peut être la racine de votre partition, ou le path de votre montage du dossier de téléchargement si vous utilisez docker. |
Si ControlMethode: True
disk_Usage_By_GiB:
val: 35
| Options | Exemples | Description |
|---|---|---|
| val: | 35 | limite en GiB d'espace disque restant avant le déclenchement du script de suppression |
GeneralSetting.yml (utile pour tester vos réglages)Utilisable uniquement si vous lancé le script sans docker. Permet de tester en toute sécurité la sélection résultant de vos réglages, et le compotement du module de suppression.
Utilisateur docker. Bien verifier que l'option soit désactivée (False): Autrement le programme plante ^^
safe: False
| Options | States | Description |
|---|---|---|
| True | Activé | Demande à l'utilisateur une confimation en console |
| False | Désactivé | Ne demande pas de confirmation, et supprime si tous les paramètres sont réunis |
GeneralSetting.ymlinterval: 15
| Options | Exemples | Description |
|---|---|---|
| interval: | 15 | Le script va se ré-exécuter automatiquement toutes les 15 minutes |
GeneralSetting.ymlSachez que la reconaissance des torrents publics sera moins précise, tout comme le temps de seed réel ( donc prévoir de la marge pour les H&R )...
fix: False
| Options | States | Description |
|---|---|---|
| True | Activé | Fix de compatibilité activé |
| False | Désactivé | <default> |
GeneralSetting.ymlA désactiver pour docker. Dans l'absolu, ce n'est pas gênant, mais les service comme portainer qui envoient des logs en temps réel n'apprécient pas vraiment.
countdown: False
| Options | States | Description |
|---|---|---|
| True | Activé | Pour les utilisateurs sur console |
| False | Désactivé | <default> |
GeneralSetting.yml<BETA>L'option Public est destiné a ceux qui ont un service de syncronisation (rclone ou rsync) en place qui aura aux préalable fait une copy de vos fichier sur cloud ou sur un espace de stockage automatiquement.
Pour la suppression par tags ou catégorie veillez a sauvegarder vos fichiers avant de tagger le torrent manuellement.
autoSupp:
public: False
priority: True
minSeedTime: 2
public:| Options | States | Description |
|---|---|---|
| True | Activé | Va automatiquement supprimer les torrent publics |
| False | Désactivé | <default> |
priority:| Options | States | Description |
|---|---|---|
| True | Activé | Va automatiquement supprimer les torrents qui ont un tag ou une catégorie prioritaire |
| False | Désactivé | <default> |
minSeedTime: 2| Options | Exemples | Description |
|---|---|---|
| minSeedTime: | 2 | Temps de seed en heure minimum du torrent avant de prendre en compte l'auto-supression |
GeneralSetting.ymlUtilise un Webhook pour envoyer les notifications émanant du serveur vers un salon textuel.
discord:
use: False # True = Oui/Yes, False = Non/No
webhook: "https://discord.com/api/webhooks/8345$$$$$$$$92500/Hq0K$$$$$$$$$$$$$$$2-5"
| Options | States | Description |
|---|---|---|
| True | Activé | Envoie les notifications |
| False | Désactivé | <default> |
| Options | Exemples | Description |
|---|---|---|
| webhook: | "url" | Lien du Webhook. Se référer a google pour savoir comment l'obtenir :) |
TorrentsSelectionSetting.ymlmin_SeedTime: 80
publicPriority: False
countSeeder: 30
min_Ratio: 0
| Options | Exemples | Description |
|---|---|---|
| min_SeedTime: | 80 | Temps de seed minimum en heure du torrent avant de le prendre en compte |
| Options | States | Description |
|---|---|---|
| True | Activé | Fait passer en priorité les torrents publics, peut importe s'ils matchent avec les autres paramètres définis |
| False | Désactivé | <default> |
| Options | Exemples | Description |
|---|---|---|
| countSeeder: | 30 | Nombre minimum de seeders restant sur le torrent avant de le prendre en compte pour la suppression |
| Options | Exemples | Description |
|---|---|---|
| min_Ratio: | 0 | Ratio minimum sur le torrent avant de le prendre en compte pour la suppression |
TorrentsSelectionSetting.ymlLes étiquettes aka Tags doivent être définies manuellement. Elle sont sensibles à la casse (minuscules/majuscules) donc "MonTags" est différent de "montags". Et doivent être encadrés de " "
Torrents_Tags:
priority:
- "PUBLIC"
- "TODELETE"
prefer:
- "PRIO"
- "TOBAD"
exclud:
- "DONOT"
- "PERSO"
Torrents_Category:
priority:
- "Remux"
- "Trash"
prefer:
- "radarr"
- "tv-sonarr"
exclud:
- "KeepFolder"
- "Perso"
| Options | Def. |
|---|---|
| Torrents_Tags: | Pour définir les Tag |
| Torrents_Category: | Pour définir les Catégories |
priority:Est utilisée notament par le processus de suppression automatique.
prefer:N'est pas pris en compte dans la suppression automatique.
exclud:Surplombe tout, que le torrent soit public ou non et que la suppression automatique soit activée ou non, le torrent ne sera PAS sélectionné ni supprimé par le script
TorrentsSelectionSetting.ymlScoring_Caculation:
seed_Time_Score: 0.5
ratio_Score: 2
popularity_Score: 0.1
| Options | Exemples | Description |
|---|---|---|
| seed_Time_Score: | 0.5 | Multiplicateur du temps de seed, 1 jour de seed et score 0,5 point |
| Options | Exemples | Description |
|---|---|---|
| ratio_Score: | 2 | Multiplicateur du ratio, 2 de ratio est score 4 point |
| Options | Exemples | Description |
|---|---|---|
| popularity_Score: | 0.1 | Multiplicateur sur le nombre de seeder actif sur le Torrent, 50 seeder actif et score 5 point |
# Exemples to use this setting Base are always = 10
## Torrent with ratio 3 seeding since 7 days and with 100 active seeder
### 10 + (7 x 0,5) + ( 3 x 2 ) + ( 100 x 0.1 ) = 29,5
## Torrent with ratio 3 on seeding since 20 days and with 50 active seeder
### 10 + (20 x 0,5) + ( 3 x 2 ) + ( 50 x 0.1 ) = 31 ### SeedTime Wine
## Torrent with ratio 6 on seeding since 7 days and with 100 active seeder
### 10 + (7 x 0,5) + ( 6 x 2 ) + ( 100 x 0.1 ) = 35,5 ### ratio Wine
## Torrent with ratio 3 on seeding since 7 days and with 400 active seeder
### 10 + (7 x 0,5) + ( 1 x 2 ) + ( 400 x 0.1 ) = 55,5 ### Active Seeder Wine
Le log qui enregistre le processus de sélection des torrents à supprimer se trouve dans le fichier :
log/torrentSlection.log
Le log de suivi général se trouve dans le fichier :
log/qbAutoDelt.log
INFO :: 2021-04-21 xx:xx:xx,xxx - __main__ - Conection with qBittorrent tested OK : v4.3.4.1
INFO :: 2021-04-21 xx:xx:xx,xxx - __main__ - Conection with qBt Web Api tested OK : 2.8.1
INFO :: 2021-04-21 xx:xx:xx,xxx - __main__ - Disk Space use at 33% - Your allow to fill up 47% before deleting Script start runing
INFO :: 2021-04-21 xx:xx:xx,xxx - __main__ - Script will recheck your disk space in - 600 - seconds
INFO :: 2021-04-21 xx:xx:xx,xxx - __main__ - Disk Space use at 84% - Over -04%, deleting script start.
INFO :: 2021-04-21 xx:xx:xx,xxx - __main__ - Script delete: covid19_vestiaires_v050520.pdf, 459.6 KiB free up.
Content type
Image
Digest
Size
53.2 MB
Last updated
over 5 years ago
docker pull limedrive/qbautodelt