diff --git a/.drone.yml b/.drone.yml index afae4a7..b6529da 100644 --- a/.drone.yml +++ b/.drone.yml @@ -1,59 +1,55 @@ -kind: pipeline -name: default -steps: -- name: docker - image: plugins/docker - settings: - registry: git.jonb.io - dry_run: false - username: jblu - password: - from_secret: gittea_drone - repo: git.jonb.io/jblu/qbit-maid - tags: - - latest - when: - branch: - - main - event: - - push - - pull_request -- name: docker-test - image: plugins/docker - settings: - registry: git.jonb.io - dry_run: false - username: jblu - password: - from_secret: gittea_drone - repo: git.jonb.io/jblu/qbit-maid - tags: - - dev - when: - branch: - - dev* - event: - - push - - pull_request -- name: test-main - image: git.jonb.io/jblu/qbit-maid:latest - commands: - - python test_qbitmaid.py - - python test_write_csv.py - when: - branch: - - main - event: - - push - - pull_request -- name: test-dev - image: git.jonb.io/jblu/qbit-maid:dev - commands: - - python test_qbitmaid.py - - python test_write_csv.py - when: - branch: - - dev* - event: - - push - - pull_request \ No newline at end of file +kind: pipeline +name: default +steps: +- name: docker + image: plugins/docker + settings: + registry: git.jonb.io + dry_run: false + username: jblu + password: + from_secret: gittea_drone + repo: git.jonb.io/jblu/qbit-maid + tags: + - latest + when: + branch: + - main + event: + - push +- name: docker-test + image: plugins/docker + settings: + registry: git.jonb.io + dry_run: false + username: jblu + password: + from_secret: gittea_drone + repo: git.jonb.io/jblu/qbit-maid + tags: + - dev + when: + branch: + - dev* + event: + - push +- name: test-main + image: git.jonb.io/jblu/qbit-maid:latest + commands: + - python test_qbitmaid.py + - python test_write_csv.py + when: + branch: + - main + event: + - push +- name: test-dev + image: git.jonb.io/jblu/qbit-maid:dev + commands: + - python test_qbitmaid.py + - python test_write_csv.py + when: + branch: + - dev* + event: + - push \ No newline at end of file diff --git a/qbit-maid.py b/qbit-maid.py index 6c5dbd1..03fa1f3 100755 --- a/qbit-maid.py +++ b/qbit-maid.py @@ -94,6 +94,11 @@ class Qbt: tor_log(self) tor_notify(self) self.t = time + + #start healthcheck job + if self.use_healthcheck: + send_ping(self, r, self.healthcheck_url.rstrip("/") + "/start" ) + # Pulling domain names to treat carefully self.tracker_list = [] self.up_tor_counter = 0 diff --git a/qlogging.py b/qlogging.py index 9c6d0ba..87ec74a 100755 --- a/qlogging.py +++ b/qlogging.py @@ -88,7 +88,7 @@ def get_script_runtime(self): def send_ping(self, req_obj, healthcheck_url): try: - req_obj.get(healthcheck_url, timeout=10) + req_obj.get(healthcheck_url, timeout=5) except req_obj.RequestException as e: self.tl.info(f"Ping failed: {e}") diff --git a/test_qbitmaid.py b/test_qbitmaid.py index 36e20c4..e11c572 100755 --- a/test_qbitmaid.py +++ b/test_qbitmaid.py @@ -1,6 +1,8 @@ import unittest +import requests as r from qlist import is_preme,is_cat_ignored,is_tracker_blank,is_protected_tracker,is_not_protected_tracker,is_tag_blank,is_ignored_tag from qprocess import is_downloading,is_protected_under_ratio,is_old_tor,is_protected_over_ratio,is_not_protected_tor +from qlogging import send_ping class TestQbitmaid(unittest.TestCase): def test_ispreme_sanity(self): @@ -94,6 +96,17 @@ class TestQbitmaid(unittest.TestCase): def test_isignoredtag(self): self.assertTrue(is_ignored_tag(['save'], 'save,public,ipt')) + def test_sendpingstart_sanity(self): + send_ping(self, r, "https://thunder.jonb.io/ping/921625e5-5b76-4f45-a0c3-56145e16f3bb" + "/start") + url = "https://thunder.jonb.io/ping/921625e5-5b76-4f45-a0c3-56145e16f3bb" + send_ping(self, r, url) + + def test_sendping_start(self): + url = "https://thunder.jonb.io/ping/921625e5-5b76-4f45-a0c3-56145e16f3bb/" + send_ping(self, r, url.strip("/") + "/start") + send_ping(self, r, "https://thunder.jonb.io/ping/921625e5-5b76-4f45-a0c3-56145e16f3bb") + + # def test__sanity(self): # pass diff --git a/test_write_csv.py b/test_write_csv.py index 4a2b195..380fa58 100644 --- a/test_write_csv.py +++ b/test_write_csv.py @@ -1,41 +1,41 @@ -from qprocess import write_csv -import csv -import unittest -import os -# Torrent Items needed for testing -# canidate['state'] {canidate["ratio"]} {torrent["tags"]} torrent["seeding_time"] {torrent["category"]} {torrent["name"][0:20]} {canidate["time_active"]} -class TestWriteCSV(unittest.TestCase): - def test_write_csv_dragnet(self): - self.cv = csv - outfile = './test_dragnet_outfile.csv' - state = 'downloading' - ratio = 1.05 - tags = 'ipt' - added = 1 - age = 240000 - time = 123456 - thash = 'asfasdf23412adfqwer' - tname = 'thisismynamehahahah' - trname = 'https://localhost.stackoverflow.tech/317332f1c125bc9c1b9b14fb8e054908/announce' - header = ['state','ratio','tags','added','age','time','thash','tname','trname'] - row = [state,ratio,tags,added,age,time,thash,tname,trname] - write_csv(self.cv,outfile,header,row) - self.assertTrue(os.path.exists(outfile)) - - def test_write_csv_telemetry(self): - self.cv = csv - outfile = './test_telemetry_outfile.csv' - state = 'downloading' - ratio = 1.05 - tags = 'ipt' - added = 1 - thash = 'asfasdf23412adfqwer' - tname = 'thisismynamehahahah' - trname = 'https://localhost.stackoverflow.tech/317332f1c125bc9c1b9b14fb8e054908/announce' - header = ['state','ratio','tags','added','hash','name','tracker'] - row = [state,ratio,tags,added,thash,tname,trname] - write_csv(self.cv,outfile,header,row) - self.assertTrue(os.path.exists(outfile)) - -if __name__ == '__main__': +from qprocess import write_csv +import csv +import unittest +import os +# Torrent Items needed for testing +# canidate['state'] {canidate["ratio"]} {torrent["tags"]} torrent["seeding_time"] {torrent["category"]} {torrent["name"][0:20]} {canidate["time_active"]} +class TestWriteCSV(unittest.TestCase): + def test_write_csv_dragnet(self): + self.cv = csv + outfile = './test_dragnet_outfile.csv' + state = 'downloading' + ratio = 1.05 + tags = 'ipt' + added = 1 + age = 240000 + time = 123456 + thash = 'asfasdf23412adfqwer' + tname = 'thisismynamehahahah' + trname = 'https://localhost.stackoverflow.tech/317332f1c125bc9c1b9b14fb8e054908/announce' + header = ['state','ratio','tags','added','age','time','thash','tname','trname'] + row = [state,ratio,tags,added,age,time,thash,tname,trname] + write_csv(self.cv,outfile,header,row) + self.assertTrue(os.path.exists(outfile)) + + def test_write_csv_telemetry(self): + self.cv = csv + outfile = './test_telemetry_outfile.csv' + state = 'downloading' + ratio = 1.05 + tags = 'ipt' + added = 1 + thash = 'asfasdf23412adfqwer' + tname = 'thisismynamehahahah' + trname = 'https://localhost.stackoverflow.tech/317332f1c125bc9c1b9b14fb8e054908/announce' + header = ['state','ratio','tags','added','hash','name','tracker'] + row = [state,ratio,tags,added,thash,tname,trname] + write_csv(self.cv,outfile,header,row) + self.assertTrue(os.path.exists(outfile)) + +if __name__ == '__main__': unittest.main() \ No newline at end of file