catch webhook errors

This commit is contained in:
meisnate12 2021-11-28 02:14:35 -05:00
parent d223da35cf
commit 7fac92652c
4 changed files with 30 additions and 14 deletions

View file

@ -2123,13 +2123,19 @@ class CollectionBuilder:
(self.details["collection_removal_webhooks"] and len(self.notification_removals) > 0) (self.details["collection_removal_webhooks"] and len(self.notification_removals) > 0)
): ):
self.obj.reload() self.obj.reload()
self.library.Webhooks.collection_hooks( try:
self.details["collection_creation_webhooks"] + self.details["collection_addition_webhooks"] + self.details["collection_removal_webhooks"], self.library.Webhooks.collection_hooks(
self.obj, self.details["collection_creation_webhooks"] +
created=self.created, self.details["collection_addition_webhooks"] +
additions=self.notification_additions, self.details["collection_removal_webhooks"],
removals=self.notification_removals self.obj,
) created=self.created,
additions=self.notification_additions,
removals=self.notification_removals
)
except Failed as e:
util.print_stacktrace()
logger.error(f"Webhooks Error: {e}")
def run_collections_again(self): def run_collections_again(self):
self.obj = self.library.get_collection(self.name) self.obj = self.library.get_collection(self.name)

View file

@ -125,7 +125,8 @@ class Config:
else: endline = "" else: endline = ""
yaml.round_trip_dump(loaded_config, open(self.config_path, "w"), indent=None, block_seq_indent=2) yaml.round_trip_dump(loaded_config, open(self.config_path, "w"), indent=None, block_seq_indent=2)
elif data[attribute] is None: elif data[attribute] is None:
if default_is_none is True: return None if default_is_none and var_type == "list": return []
elif default_is_none: return None
else: message = f"{text} is blank" else: message = f"{text} is blank"
elif var_type == "url": elif var_type == "url":
if data[attribute].endswith(("\\", "/")): return data[attribute][:-1] if data[attribute].endswith(("\\", "/")): return data[attribute][:-1]
@ -229,7 +230,11 @@ class Config:
logger.warning("notifiarr attribute not found") logger.warning("notifiarr attribute not found")
self.Webhooks = Webhooks(self, self.webhooks, notifiarr=self.NotifiarrFactory) self.Webhooks = Webhooks(self, self.webhooks, notifiarr=self.NotifiarrFactory)
self.Webhooks.start_time_hooks(self.run_start_time) try:
self.Webhooks.start_time_hooks(self.run_start_time)
except Failed as e:
util.print_stacktrace()
logger.error(f"Webhooks Error: {e}")
self.errors = [] self.errors = []
@ -604,7 +609,11 @@ class Config:
def notify(self, text, library=None, collection=None, critical=True): def notify(self, text, library=None, collection=None, critical=True):
for error in util.get_list(text, split=False): for error in util.get_list(text, split=False):
self.Webhooks.error_hooks(error, library=library, collection=collection, critical=critical) try:
self.Webhooks.error_hooks(error, library=library, collection=collection, critical=critical)
except Failed as e:
util.print_stacktrace()
logger.error(f"Webhooks Error: {e}")
def get_html(self, url, headers=None, params=None): def get_html(self, url, headers=None, params=None):
return html.fromstring(self.get(url, headers=headers, params=params).content) return html.fromstring(self.get(url, headers=headers, params=params).content)

View file

@ -183,9 +183,6 @@ class Library(ABC):
self.config.Cache.update_image_map(item.ratingKey, f"{self.image_table_name}_backgrounds", item.art, background.compare) self.config.Cache.update_image_map(item.ratingKey, f"{self.image_table_name}_backgrounds", item.art, background.compare)
def notify(self, text, collection=None, critical=True): def notify(self, text, collection=None, critical=True):
for error in util.get_list(text, split=False):
self.Webhooks.error_hooks(error, library=self, collection=collection, critical=critical)
self.config.notify(text, library=self, collection=collection, critical=critical) self.config.notify(text, library=self, collection=collection, critical=critical)
@abstractmethod @abstractmethod

View file

@ -154,7 +154,11 @@ def start(attrs):
logger.info("") logger.info("")
run_time = str(datetime.now() - start_time).split('.')[0] run_time = str(datetime.now() - start_time).split('.')[0]
if config: if config:
config.Webhooks.end_time_hooks(start_time, run_time, stats) try:
config.Webhooks.end_time_hooks(start_time, run_time, stats)
except Failed as e:
util.print_stacktrace()
logger.error(f"Webhooks Error: {e}")
util.separator(f"Finished {start_type}Run\nRun Time: {run_time}") util.separator(f"Finished {start_type}Run\nRun Time: {run_time}")
logger.removeHandler(file_handler) logger.removeHandler(file_handler)