updated documentation #56
	
		
			
	
		
	
	
		
	
		
			All checks were successful
		
		
	
	
		
			
				
	
				continuous-integration/drone/push Build is passing
				
			
		
		
	
	
				
					
				
			
		
			All checks were successful
		
		
	
	continuous-integration/drone/push Build is passing
				
			This commit is contained in:
		
							
								
								
									
										162
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										162
									
								
								README.md
									
									
									
									
									
								
							| @@ -1,6 +1,6 @@ | |||||||
| # 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. | # 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. | ||||||
|  |  | ||||||
| The objective is to remove torrents based on the following criteria: | The objective is to remove torrents based on the following criteria: | ||||||
| - tracker domain name | - tracker domain name | ||||||
| @@ -8,94 +8,88 @@ The objective is to remove torrents based on the following criteria: | |||||||
| - ratio | - ratio | ||||||
| - state | - state | ||||||
|  |  | ||||||
| ```mermaid | ## Install | ||||||
| graph TD; | ### Docker(Recommended) | ||||||
|     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 | | [package ](https://git.jbranan.com/jblu/-/packages/container/qbit-maid/latest) | ||||||
| | --- | --- | |  | ||||||
| | 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 | |  | ||||||
|  |  | ||||||
| You will need a config.json in the root directory. |     docker pull git.jbranan.com/jblu/qbit-maid:latest | ||||||
|  |  | ||||||
| | Key | Value | | #### Docker Run Command: | ||||||
| | --- | --- | |  | ||||||
| | 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 | |  | ||||||
| | log_level | 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 | |  | ||||||
| | log_path | 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 | |  | ||||||
|  |  | ||||||
| It should look something like this: | > Please note it is best practice to escape spaces in variables. That is why there is backslashes in the cron schedule. | ||||||
| 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 |  | ||||||
|     "enable_dragnet": false, |  | ||||||
|     "dragnet_outfile": "./orphaned.csv" |  | ||||||
| } |  | ||||||
| ``` |  | ||||||
|  |  | ||||||
| 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. |     docker run --name qbit-maid -v /opt/qbit-maid:/config/ -e CRON=0\ 1\ *\ *\ * -e toml_path=/config/config.toml git.jbranan.com/jblu/qbit-maid | ||||||
| ``` |  | ||||||
| { |  | ||||||
|     "example": "general", |  | ||||||
|     "example2": "sonarr" |  | ||||||
| } |  | ||||||
| ``` |  | ||||||
|  |  | ||||||
| You will need a ignored_domains.json in the root directory. This will ignore any torrents from these trackers. | #### Docker Compose | ||||||
| ``` |  | ||||||
| { |  | ||||||
| "iptorrents-empirehost": "ssl.empirehost.me", |  | ||||||
| "iptorrents-stackoverflow": "localhost.stackoverflow.tech", |  | ||||||
| "iptorrents-bgp": "routing.bgp.technology" |  | ||||||
| } |  | ||||||
| ``` |  | ||||||
|  |  | ||||||
| You will need a ignored_tags.json in the root directory. This will ignore any torrents with these tags. |  | ||||||
| ``` | ``` | ||||||
| { | version: '3.3' | ||||||
| "first":"first", | services: | ||||||
| "second":"second", |     qbit-maid: | ||||||
| "third":"third" |         image: git.jbranan.com/jblu/qbit-maid | ||||||
| } |         container_name: qbit-maid | ||||||
|  |         volumes: | ||||||
|  |             - /opt/qbit-maid:/config | ||||||
|  |         environment: | ||||||
|  |             - CRON="0 1 * * *" | ||||||
|  |             - toml_path=/config/config.toml | ||||||
|  | ``` | ||||||
|  | ### Via Git | ||||||
|  |     git clone https://git.jbranan.com/jblu/qbit-maid.git | ||||||
|  |  | ||||||
|  | Qbit-maid will look for an environment variable *toml_path* for its configuration.If it doesn't find it, it will look for a config.toml file in it's own directory. | ||||||
|  | ##### config.toml | ||||||
|  | ``` | ||||||
|  | [qbittorrent] | ||||||
|  | host = "192.168.x.x" | ||||||
|  | port = 8080 | ||||||
|  | username = "user" | ||||||
|  | password = "pass" | ||||||
|  |  | ||||||
|  | [logging] | ||||||
|  | use_log = true | ||||||
|  | log_level = "INFO" | ||||||
|  | log_path = "./qc.log" | ||||||
|  |  | ||||||
|  | [app_tags] | ||||||
|  | protected_tag = "ipt" | ||||||
|  | non_protected_tag = "public" | ||||||
|  |  | ||||||
|  | [torrent] | ||||||
|  | age = 2419200 | ||||||
|  | minimum_age = 432000 | ||||||
|  | delete_torrents = false | ||||||
|  |  | ||||||
|  | [pushover] | ||||||
|  | use_pushover = false | ||||||
|  | po_key = "<key>>" | ||||||
|  | po_token = "<token>>" | ||||||
|  |  | ||||||
|  | [apprise] | ||||||
|  | use_apprise = false | ||||||
|  | host = "192.168.x.x" | ||||||
|  | port = 8088 | ||||||
|  | aurls = 'mailto://user:pass@gmail.com' | ||||||
|  |  | ||||||
|  | [dragnet] | ||||||
|  | enable_dragnet = false | ||||||
|  | dragnet_outfile = "./orphaned.csv" | ||||||
|  |  | ||||||
|  | [ignored_categories] | ||||||
|  | tech = "tech" | ||||||
|  | books = "books" | ||||||
|  | general = "general" | ||||||
|  |  | ||||||
|  | [ignored_domains] | ||||||
|  | iptorrents-empirehost = "ssl.empirehost.me" | ||||||
|  | iptorrents-stackoverflow = "localhost.stackoverflow.tech" | ||||||
|  | iptorrents-bgp = "routing.bgp.technology" | ||||||
|  |  | ||||||
|  | [ignored_tags] | ||||||
|  | save = "save" | ||||||
|  |  | ||||||
|  | [healthcheck] | ||||||
|  | use_healthcheck = false | ||||||
|  | healthcheck_url = "https://example.com/ping/<uuid>>" | ||||||
| ``` | ``` | ||||||
| @@ -1,12 +1,12 @@ | |||||||
| [qbittorrent] | [qbittorrent] | ||||||
| host = "192.168.4.11" | host = "192.168.x.x" | ||||||
| port = 8085 | port = 8080 | ||||||
| username = "jman" | username = "user" | ||||||
| password = "nO^touchy@" | password = "pass" | ||||||
|  |  | ||||||
| [logging] | [logging] | ||||||
| use_log = true | use_log = true | ||||||
| log_level = "DEBUG" | log_level = "INFO" | ||||||
| log_path = "./qc.log" | log_path = "./qc.log" | ||||||
|  |  | ||||||
| [app_tags] | [app_tags] | ||||||
| @@ -16,20 +16,21 @@ non_protected_tag = "public" | |||||||
| [torrent] | [torrent] | ||||||
| age = 2419200 | age = 2419200 | ||||||
| minimum_age = 432000 | minimum_age = 432000 | ||||||
| delete_torrents = true | delete_torrents = false | ||||||
|  |  | ||||||
| [pushover] | [pushover] | ||||||
| use_pushover = false | use_pushover = false | ||||||
| po_key = "" | po_key = "<key>>" | ||||||
| po_token = "" | po_token = "<token>>" | ||||||
|  |  | ||||||
| [apprise] | [apprise] | ||||||
|  | use_apprise = false | ||||||
| host = "192.168.x.x" | host = "192.168.x.x" | ||||||
| port = 8088 | port = 8088 | ||||||
| aurls = 'mailto://user:pass@gmail.com' | aurls = 'mailto://user:pass@gmail.com' | ||||||
|  |  | ||||||
| [dragnet] | [dragnet] | ||||||
| enable_dragnet = true | enable_dragnet = false | ||||||
| dragnet_outfile = "./orphaned.csv" | dragnet_outfile = "./orphaned.csv" | ||||||
|  |  | ||||||
| [ignored_categories] | [ignored_categories] | ||||||
| @@ -43,6 +44,8 @@ iptorrents-stackoverflow = "localhost.stackoverflow.tech" | |||||||
| iptorrents-bgp = "routing.bgp.technology" | iptorrents-bgp = "routing.bgp.technology" | ||||||
|  |  | ||||||
| [ignored_tags] | [ignored_tags] | ||||||
| first = "first" | save = "save" | ||||||
| second = "second" |  | ||||||
| third = "third" | [healthcheck] | ||||||
|  | use_healthcheck = true | ||||||
|  | healthcheck_url = "https://example.com/ping/<uuid>>" | ||||||
		Reference in New Issue
	
	Block a user