Compare commits
	
		
			16 Commits
		
	
	
		
			v2.0.0
			...
			728e429979
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 728e429979 | ||
|  | b8a31c43de | ||
| 167575fe5d | |||
|  | ca1430b302 | ||
|  | 660a18a70f | ||
|  | 7a6787888c | ||
|  | 65598d97ac | ||
| e2cdca60c3 | |||
|  | 978e9326cc | ||
|  | beee95caa4 | ||
|  | 6ce2add157 | ||
|  | dc533a33b1 | ||
| 5e1c963b72 | |||
|  | cf64321e49 | ||
| a0ce03335d | |||
|  | b6346ac335 | 
| @@ -11,6 +11,12 @@ Dockerfile | ||||
| *.csv | ||||
| *.toml | ||||
| *.git* | ||||
| .dockerignore | ||||
| .DS_Store | ||||
| .vscode/* | ||||
| thunder-tests/* | ||||
| .drone.yml | ||||
|  | ||||
| # Byte-compiled / optimized / DLL files | ||||
| __pycache__/ | ||||
| *.py[cod] | ||||
|   | ||||
							
								
								
									
										32
									
								
								.drone.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								.drone.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,32 @@ | ||||
| kind: pipeline | ||||
| name: default | ||||
|  | ||||
| steps: | ||||
| - name: docker | ||||
|   image: plugins/docker | ||||
|   settings: | ||||
|     registry: git.jbranan.com | ||||
|     dry_run: false | ||||
|     username: jblu | ||||
|     password:  | ||||
|       from_secret: gittea_drone | ||||
|     repo: git.jbranan.com/jblu/qbit-maid | ||||
|     tags: | ||||
|     - latest | ||||
|   when: | ||||
|     branch: | ||||
|       - main | ||||
| - name: docker-test | ||||
|   image: plugins/docker | ||||
|   settings: | ||||
|     registry: git.jbranan.com | ||||
|     dry_run: false | ||||
|     username: jblu | ||||
|     password:  | ||||
|       from_secret: gittea_drone | ||||
|     repo: git.jbranan.com/jblu/qbit-maid | ||||
|     tags: | ||||
|     - dev | ||||
|   when: | ||||
|     branch: | ||||
|       - dev* | ||||
| @@ -1,8 +1,8 @@ | ||||
| FROM python:alpine3.18 | ||||
| WORKDIR / | ||||
| COPY . opt | ||||
| RUN apk add --no-cache supercronic | ||||
| RUN pip install requests | ||||
| RUN pip install qbittorrent-api | ||||
| RUN crontab /opt/crontab | ||||
| RUN chmod +x /opt/entrypoint.sh | ||||
| CMD ["/opt/entrypoint.sh"] | ||||
							
								
								
									
										1
									
								
								crontab
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								crontab
									
									
									
									
									
								
							| @@ -1 +0,0 @@ | ||||
| 0 1 * * * . /etc/environment; python /opt/qbit-maid.py >> /logfile | ||||
| @@ -1,5 +1,7 @@ | ||||
| #!/bin/sh | ||||
|  | ||||
| printenv | grep -v "no_proxy" >> /etc/environment | ||||
| CRON_CONFIG_FILE="/opt/crontab" | ||||
|  | ||||
| crond -f | ||||
| echo "${CRON} python /opt/qbit-maid.py" > $CRON_CONFIG_FILE | ||||
|  | ||||
| exec supercronic -passthrough-logs -quiet $CRON_CONFIG_FILE | ||||
							
								
								
									
										12
									
								
								qbit-maid.py
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								qbit-maid.py
									
									
									
									
									
								
							| @@ -12,14 +12,16 @@ from collections import Counter | ||||
| import csv | ||||
| import requests as r | ||||
| import os | ||||
| import sys | ||||
| r.packages.urllib3.disable_warnings() | ||||
|  | ||||
| class Qbt: | ||||
|     def __init__(self): | ||||
|         """Main object, should be calling functions from qlist.py, qlogging.py and qprocess.py""" | ||||
|         # Open the config. Needs a json file with the data in config.json.example | ||||
|         self.st = datetime.datetime.now() | ||||
|          | ||||
|         config_file_path=os.environ["toml_path"] | ||||
|         if os.getenv("toml_path"): | ||||
|             config_file_path=os.getenv("toml_path") | ||||
|             with open(config_file_path, 'rb') as c: | ||||
|                 self.config = load(c) | ||||
|         if os.path.exists('./config.toml'): | ||||
| @@ -80,6 +82,10 @@ class Qbt: | ||||
|         #ignored_tags | ||||
|         self.ignored_tags = self.config["ignored_domains"] | ||||
|  | ||||
|         #healthcheck | ||||
|         self.use_healthcheck = self.config["healthcheck"]["use_healthcheck"] | ||||
|         self.healthcheck_url = self.config["healthcheck"]["healthcheck_url"] | ||||
|  | ||||
|         # Calling log and notify functions | ||||
|         tor_log(self) | ||||
|         tor_notify(self) | ||||
| @@ -121,6 +127,8 @@ class Qbt: | ||||
|             tor_notify_summary(self) | ||||
|         if self.use_apprise: | ||||
|             tor_notify_apprise(self, r, apprise_notify) | ||||
|         if self.use_healthcheck: | ||||
|             send_ping(self, r, self.healthcheck_url) | ||||
| # Run | ||||
| if  __name__== "__main__": | ||||
|     Qbt() | ||||
| @@ -85,3 +85,9 @@ def get_script_runtime(self): | ||||
|         self.extm = f"Execution time: [{elapsed_time}]" | ||||
|     if self.use_apprise: | ||||
|         self.extm = f"Execution time: [{elapsed_time}]" | ||||
|  | ||||
| def send_ping(self, req_obj, healthcheck_url): | ||||
|     try: | ||||
|         req_obj.get(healthcheck_url, timeout=10) | ||||
|     except req_obj.RequestException as e: | ||||
|         self.tl.info(f"Ping failed: {e}") | ||||
		Reference in New Issue
	
	Block a user