|
|
|
@ -36,37 +36,38 @@ class Webhooks:
|
|
|
|
|
elif webhook.startswith("https://hooks.slack.com/services"):
|
|
|
|
|
json = self.slack(json)
|
|
|
|
|
response = self.config.post(webhook, json=json)
|
|
|
|
|
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}])")
|
|
|
|
|
if response is not None:
|
|
|
|
|
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:
|
|
|
|
|