qbit-maid/README.md

101 lines
3.4 KiB
Markdown
Raw Permalink Normal View History

2022-07-29 16:02:19 -05:00
# qbit-maid
## Warning: This application removes torrents that are over the minimum age and that are not part of the ignored categories, domains or tags. Please use the delete_torrents feature set to false when first testing its functionality.
2022-07-29 16:02:19 -05:00
The objective is to remove torrents based on the following criteria:
- tracker domain name
- age
- ratio
- state
```mermaid
graph TD;
qbit-maid.py-->qlogging.py;
qbit-maid.py-->qlist.py;
qbit-maid.py-->qprocess.py;
qlogging.py-->qbit-maid.py;
qlist.py-->qbit-maid.py;
qprocess.py-->qbit-maid.py;
```
| File | Purpose |
| --- | --- |
| qbit-maid.py | Client to the qbit api and calls functions from the other files |
| qlist.py | Builds out torrent lists |
| qlogging.py | Logging and push notification communication |
| qprocess.py | Submits qualifying torrents for deletion |
| test_qbitmaid.py | Unit tests |
| ignored_categories.json | whitelist for categorys to ignore |
| ignored_tags.json | whitelist for torrent tags to ignore |
| ignored_trackers.json | whitelist of fqdn names to ignore |
2022-07-29 16:02:19 -05:00
You will need a config.json in the root directory.
| Key | Value |
| --- | --- |
| host | string, ip or hostname of qbittorrent server |
| port | number, port of admin gui(used for api aswell) |
| username | admin account for qbittorrent |
| password | password for admin account |
| loglevel | is what log messages are written to the log file. INFO or DEBUG are valid entries(case sensitive) |
| protected_tag | used to mark torrents to handle with care |
| non_protected_tag | we don't care about these torrents |
| logpath | will write a log in root directory if left as is other wise specify other path using forward slashes |
| age | number, seconds for how long we keep torrents from IPTORRENTS |
| minimum_age | age in seconds torrents should reached before they are removed |
| use_pushover | true or false to enable or disable pushover notification summary |
| use_log | true or false to enable or disable writing to alog file |
| po_key | pushover key |
| po_token | pushover api token |
| delete_torrents | true or false to enable or disable deletion. Useful for dry-runs |
| enable_dragnet | true or false to enable dragnet functionality. Useful for debugging |
2022-07-29 16:02:19 -05:00
It should look something like this:
Config.json
```
{
"host": "192.168.1.1",
"port": 8080,
"username": "admin",
"password": "admin",
"loglevel": "INFO",
"logpath": "./qc.log",
"protected_tag": "ipt",
"non_protected_tag": "public",
"age": 2419200,
"minimum_age": 432000,
"use_pushover": false,
"use_log": true,
"po_key": "",
"po_token": "",
"delete_torrents": false
2022-09-02 18:28:03 -05:00
"enable_dragnet": false,
"dragnet_outfile": "./orphaned.csv"
2022-07-29 16:02:19 -05:00
}
```
You will need a ignored_categories.json in the root directory. This will ignore any of the categories found in the values of the entries.
2022-07-29 16:02:19 -05:00
```
{
"example": "general",
"example2": "sonarr"
}
```
You will need a ignored_domains.json in the root directory. This will ignore any torrents from these trackers.
```
{
"iptorrents-empirehost": "ssl.empirehost.me",
"iptorrents-stackoverflow": "localhost.stackoverflow.tech",
"iptorrents-bgp": "routing.bgp.technology"
}
```
2022-07-29 16:02:19 -05:00
You will need a ignored_tags.json in the root directory. This will ignore any torrents with these tags.
```
{
"first":"first",
"second":"second",
"third":"third"
}
```