From afc3064a82d3976fac06746b44ac4c9a914ece4e Mon Sep 17 00:00:00 2001 From: meisnate12 Date: Tue, 18 Apr 2023 14:22:32 -0400 Subject: [PATCH] [19] fix run_end webhooks --- VERSION | 2 +- modules/webhooks.py | 73 +++++++++++++++++++++++---------------------- 2 files changed, 38 insertions(+), 37 deletions(-) diff --git a/VERSION b/VERSION index 87ab12d4..1d7d3d8f 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.19.0-develop18 +1.19.0-develop19 diff --git a/modules/webhooks.py b/modules/webhooks.py index 74cd5cf9..71f912b9 100644 --- a/modules/webhooks.py +++ b/modules/webhooks.py @@ -36,38 +36,37 @@ class Webhooks: elif webhook.startswith("https://hooks.slack.com/services"): json = self.slack(json) response = self.config.post(webhook, json=json) - if response: - try: - response_json = response.json() - logger.trace(f"Response: {response_json}") - if webhook == "notifiarr" and self.notifiarr and response.status_code == 400: - def remove_from_config(text, hook_cat): - if response_json["details"]["response"] == text: - yaml = YAML(self.config.config_path) - changed = False - if hook_cat in yaml.data and yaml.data["webhooks"][hook_cat]: - if isinstance(yaml.data["webhooks"][hook_cat], list) and "notifiarr" in yaml.data["webhooks"][hook_cat]: - changed = True - yaml.data["webhooks"][hook_cat].pop("notifiarr") - elif yaml.data["webhooks"][hook_cat] == "notifiarr": - changed = True - yaml.data["webhooks"][hook_cat] = None - if changed: - yaml.save() - remove_from_config("PMM updated trigger is not enabled", "changes") - remove_from_config("PMM created trigger is not enabled", "changes") - remove_from_config("PMM deleted trigger is not enabled", "changes") - remove_from_config("PMM failure trigger is not enabled", "error") - remove_from_config("PMM start/complete trigger is not enabled", "run_start") - remove_from_config("PMM start/complete trigger is not enabled", "run_end") - remove_from_config("PMM app updates trigger is not enabled", "version") - if "result" in response_json and response_json["result"] == "error" and "details" in response_json and "response" in response_json["details"]: - raise Failed(f"Notifiarr Error: {response_json['details']['response']}") - if response.status_code >= 400 or ("result" in response_json and response_json["result"] == "error"): - raise Failed(f"({response.status_code} [{response.reason}]) {response_json}") - except JSONDecodeError: - if response.status_code >= 400: - raise Failed(f"({response.status_code} [{response.reason}])") + try: + response_json = response.json() + logger.trace(f"Response: {response_json}") + if webhook == "notifiarr" and self.notifiarr and response.status_code == 400: + def remove_from_config(text, hook_cat): + if response_json["details"]["response"] == text: + yaml = YAML(self.config.config_path) + changed = False + if hook_cat in yaml.data and yaml.data["webhooks"][hook_cat]: + if isinstance(yaml.data["webhooks"][hook_cat], list) and "notifiarr" in yaml.data["webhooks"][hook_cat]: + changed = True + yaml.data["webhooks"][hook_cat].pop("notifiarr") + elif yaml.data["webhooks"][hook_cat] == "notifiarr": + changed = True + yaml.data["webhooks"][hook_cat] = None + if changed: + yaml.save() + remove_from_config("PMM updated trigger is not enabled", "changes") + remove_from_config("PMM created trigger is not enabled", "changes") + remove_from_config("PMM deleted trigger is not enabled", "changes") + remove_from_config("PMM failure trigger is not enabled", "error") + remove_from_config("PMM start/complete trigger is not enabled", "run_start") + remove_from_config("PMM start/complete trigger is not enabled", "run_end") + remove_from_config("PMM app updates trigger is not enabled", "version") + if "result" in response_json and response_json["result"] == "error" and "details" in response_json and "response" in response_json["details"]: + raise Failed(f"Notifiarr Error: {response_json['details']['response']}") + if response.status_code >= 400 or ("result" in response_json and response_json["result"] == "error"): + raise Failed(f"({response.status_code} [{response.reason}]) {response_json}") + except JSONDecodeError: + if response.status_code >= 400: + raise Failed(f"({response.status_code} [{response.reason}])") def start_time_hooks(self, start_time): if self.run_start_webhooks: @@ -245,7 +244,11 @@ class Webhooks: rows = [ [("Start Time", json["start_time"]), ("End Time", json["end_time"]), ("Run Time", json["run_time"])], [("Collections", None)], - [("Created", json["collections_created"]), ("Modified", json["collections_modified"]), ("Deleted", json["collections_deleted"])] + [ + ("Created", json["collections_created"] if json["collections_created"] else "0"), + ("Modified", json["collections_modified"] if json["collections_modified"] else "0"), + ("Deleted", json["collections_deleted"] if json["collections_deleted"] else "0") + ] ] if json["added_to_radarr"]: rows.append([(f"{json['added_to_radarr']} Movies Added To Radarr", None)]) @@ -316,9 +319,7 @@ class Webhooks: for row in rows: for col in row: col_name, col_value = col - field = {"name": col_name} - if col_value: - field["value"] = col_value + field = {"name": col_name, "value": col_value if col_value else ""} if len(row) > 1: field["inline"] = True fields.append(field)