Compare commits
	
		
			18 Commits
		
	
	
		
			v2.0.0
			...
			d2ebddf473
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| d2ebddf473 | |||
|  | a4fc54afe5 | ||
|  | 728e429979 | ||
|  | b8a31c43de | ||
| 167575fe5d | |||
|  | ca1430b302 | ||
|  | 660a18a70f | ||
|  | 7a6787888c | ||
|  | 65598d97ac | ||
| e2cdca60c3 | |||
|  | 978e9326cc | ||
|  | beee95caa4 | ||
|  | 6ce2add157 | ||
|  | dc533a33b1 | ||
| 5e1c963b72 | |||
|  | cf64321e49 | ||
| a0ce03335d | |||
|  | b6346ac335 | 
| @@ -3,7 +3,6 @@ LICENSE | |||||||
| *.log | *.log | ||||||
| README.md | README.md | ||||||
| requirements.txt | requirements.txt | ||||||
| test_* |  | ||||||
| Dockerfile | Dockerfile | ||||||
| *docker-test* | *docker-test* | ||||||
| *.log | *.log | ||||||
| @@ -11,6 +10,12 @@ Dockerfile | |||||||
| *.csv | *.csv | ||||||
| *.toml | *.toml | ||||||
| *.git* | *.git* | ||||||
|  | .dockerignore | ||||||
|  | .DS_Store | ||||||
|  | .vscode/* | ||||||
|  | thunder-tests/* | ||||||
|  | .drone.yml | ||||||
|  |  | ||||||
| # Byte-compiled / optimized / DLL files | # Byte-compiled / optimized / DLL files | ||||||
| __pycache__/ | __pycache__/ | ||||||
| *.py[cod] | *.py[cod] | ||||||
|   | |||||||
							
								
								
									
										59
									
								
								.drone.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								.drone.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,59 @@ | |||||||
|  | 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 | ||||||
|  |     event: | ||||||
|  |       - push | ||||||
|  |       - pull_request | ||||||
|  | - 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* | ||||||
|  |     event: | ||||||
|  |       - push | ||||||
|  |       - pull_request | ||||||
|  | - name: test-main | ||||||
|  |   image: git.jbranan.com/jblu/qbit-maid:latest | ||||||
|  |   commands: | ||||||
|  |   - python test_qbitmaid.py | ||||||
|  |   - python test_dragnet.py | ||||||
|  |   when: | ||||||
|  |     branch: | ||||||
|  |       - main | ||||||
|  |     event: | ||||||
|  |       - push | ||||||
|  |       - pull_request | ||||||
|  | - name: test-dev | ||||||
|  |   image: git.jbranan.com/jblu/qbit-maid:dev | ||||||
|  |   commands: | ||||||
|  |   - python test_qbitmaid.py | ||||||
|  |   - python test_dragnet.py | ||||||
|  |   when: | ||||||
|  |     branch: | ||||||
|  |       - dev* | ||||||
|  |     event: | ||||||
|  |       - push | ||||||
|  |       - pull_request | ||||||
| @@ -1,8 +1,8 @@ | |||||||
| FROM python:alpine3.18 | FROM python:alpine3.18 | ||||||
| WORKDIR / | WORKDIR / | ||||||
| COPY . opt | COPY . opt | ||||||
|  | RUN apk add --no-cache supercronic | ||||||
| RUN pip install requests | RUN pip install requests | ||||||
| RUN pip install qbittorrent-api | RUN pip install qbittorrent-api | ||||||
| RUN crontab /opt/crontab |  | ||||||
| RUN chmod +x /opt/entrypoint.sh | RUN chmod +x /opt/entrypoint.sh | ||||||
| CMD ["/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 | #!/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 csv | ||||||
| import requests as r | import requests as r | ||||||
| import os | import os | ||||||
| import sys | r.packages.urllib3.disable_warnings() | ||||||
|  |  | ||||||
| class Qbt: | class Qbt: | ||||||
|     def __init__(self): |     def __init__(self): | ||||||
|         """Main object, should be calling functions from qlist.py, qlogging.py and qprocess.py""" |         """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 |         # Open the config. Needs a json file with the data in config.json.example | ||||||
|         self.st = datetime.datetime.now() |         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: |             with open(config_file_path, 'rb') as c: | ||||||
|                 self.config = load(c) |                 self.config = load(c) | ||||||
|         if os.path.exists('./config.toml'): |         if os.path.exists('./config.toml'): | ||||||
| @@ -80,6 +82,10 @@ class Qbt: | |||||||
|         #ignored_tags |         #ignored_tags | ||||||
|         self.ignored_tags = self.config["ignored_domains"] |         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 |         # Calling log and notify functions | ||||||
|         tor_log(self) |         tor_log(self) | ||||||
|         tor_notify(self) |         tor_notify(self) | ||||||
| @@ -121,6 +127,8 @@ class Qbt: | |||||||
|             tor_notify_summary(self) |             tor_notify_summary(self) | ||||||
|         if self.use_apprise: |         if self.use_apprise: | ||||||
|             tor_notify_apprise(self, r, apprise_notify) |             tor_notify_apprise(self, r, apprise_notify) | ||||||
|  |         if self.use_healthcheck: | ||||||
|  |             send_ping(self, r, self.healthcheck_url) | ||||||
| # Run | # Run | ||||||
| if  __name__== "__main__": | if  __name__== "__main__": | ||||||
|     Qbt() |     Qbt() | ||||||
| @@ -85,3 +85,9 @@ def get_script_runtime(self): | |||||||
|         self.extm = f"Execution time: [{elapsed_time}]" |         self.extm = f"Execution time: [{elapsed_time}]" | ||||||
|     if self.use_apprise: |     if self.use_apprise: | ||||||
|         self.extm = f"Execution time: [{elapsed_time}]" |         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