[9] add event to webhooks

This commit is contained in:
meisnate12 2022-12-28 15:32:13 -05:00
parent f2efa8cfd7
commit 73081cca1f
5 changed files with 21 additions and 7 deletions

View file

@ -3,6 +3,9 @@
# New Features # New Features
Added new collection_order `custom.desc` ([FR](https://features.metamanager.wiki/features/p/reverse-sort-collectionorder-custom)) Added new collection_order `custom.desc` ([FR](https://features.metamanager.wiki/features/p/reverse-sort-collectionorder-custom))
Added webp Image Support ([FR](https://features.metamanager.wiki/features/p/support-webp-image-extensions)) Added webp Image Support ([FR](https://features.metamanager.wiki/features/p/support-webp-image-extensions))
Added Spanish Defaults Translation
Added Delete Webhooks
# Bug Fixes # Bug Fixes
Fixed Italian Translation Fixed Italian Defaults Translation
Fixed TMDb Modified Filters

View file

@ -1 +1 @@
1.18.1-develop8 1.18.1-develop9

View file

@ -37,6 +37,7 @@ The Error notification will be sent whenever an error occurs. The payload that i
```yaml ```yaml
{ {
"event": "error", // Event
"error": str, // Error Message "error": str, // Error Message
"critical": bool // Critical Error "critical": bool // Critical Error
} }
@ -46,6 +47,7 @@ The Error notification will be sent whenever an error occurs. The payload that i
```yaml ```yaml
{ {
"event": "error", // Event
"error": str, // Error Message "error": str, // Error Message
"critical": bool, // Critical Error "critical": bool, // Critical Error
"server_name": str, // Server Name "server_name": str, // Server Name
@ -57,6 +59,7 @@ The Error notification will be sent whenever an error occurs. The payload that i
```yaml ```yaml
{ {
"event": "error", // Event
"error": str, // Error Message "error": str, // Error Message
"critical": bool, // Critical Error "critical": bool, // Critical Error
"server_name": str, // Server Name "server_name": str, // Server Name
@ -69,6 +72,7 @@ The Error notification will be sent whenever an error occurs. The payload that i
```yaml ```yaml
{ {
"event": "error", // Event
"error": str, // Error Message "error": str, // Error Message
"critical": bool, // Critical Error "critical": bool, // Critical Error
"server_name": str, // Server Name "server_name": str, // Server Name
@ -85,6 +89,7 @@ The Version notification will be sent at the beginning of a run if there is a ne
```yaml ```yaml
{ {
"event": "version", // Event
"current": str, // Current Version "current": str, // Current Version
"latest": str, // Latest Version "latest": str, // Latest Version
"notes": str // Sends the lateset release notes or new commits to develop since your version "notes": str // Sends the lateset release notes or new commits to develop since your version
@ -99,6 +104,7 @@ The Run Start notification will be sent at the beginning of every run.
```yaml ```yaml
{ {
"event": "run_start", // Event
"start_time": str, // Time Run is started Format "YY-mm-dd HH:MM:SS" "start_time": str, // Time Run is started Format "YY-mm-dd HH:MM:SS"
} }
``` ```
@ -111,6 +117,7 @@ The Run End notification will be sent at the end of every run with statistics.
```yaml ```yaml
{ {
"event": "run_end", // Event
"start_time": str, // Time Run started Format "YY-mm-dd HH:MM:SS" "start_time": str, // Time Run started Format "YY-mm-dd HH:MM:SS"
"end_time": str, // Time Run ended Format "YY-mm-dd HH:MM:SS" "end_time": str, // Time Run ended Format "YY-mm-dd HH:MM:SS"
"run_time": str, // Time Run took to complete Format "HH:MM" "run_time": str, // Time Run took to complete Format "HH:MM"
@ -136,6 +143,7 @@ The Delete Notification will be sent whenever a collection/playlist is deleted c
```yaml ```yaml
{ {
"event": "delete", // Event
"message": str, // Status Message "message": str, // Status Message
"server_name": str, // Server Name "server_name": str, // Server Name
"library_name": str, // Library Name (Only if a Collection is deleted) "library_name": str, // Library Name (Only if a Collection is deleted)
@ -150,6 +158,7 @@ The Changes Notification will be sent after each collection/playlist containing
```yaml ```yaml
{ {
"event": "changes", // Event
"server_name": str, // Server Name "server_name": str, // Server Name
"library_name": str, // Library Name "library_name": str, // Library Name
"collection": str, // Collection Name only in payload for a collection "collection": str, // Collection Name only in payload for a collection

View file

@ -70,7 +70,7 @@ class Webhooks:
def start_time_hooks(self, start_time): def start_time_hooks(self, start_time):
if self.run_start_webhooks: if self.run_start_webhooks:
self._request(self.run_start_webhooks, {"start_time": start_time.strftime("%Y-%m-%d %H:%M:%S")}) self._request(self.run_start_webhooks, {"event": "run_start", "start_time": start_time.strftime("%Y-%m-%d %H:%M:%S")})
def version_hooks(self, version, latest_version): def version_hooks(self, version, latest_version):
if self.version_webhooks: if self.version_webhooks:
@ -79,11 +79,12 @@ class Webhooks:
notes = self.config.GitHub.latest_release_notes() notes = self.config.GitHub.latest_release_notes()
elif version[2] and version[2] < latest_version[2]: elif version[2] and version[2] < latest_version[2]:
notes = self.config.GitHub.get_commits(version[2], nightly=self.config.check_nightly) notes = self.config.GitHub.get_commits(version[2], nightly=self.config.check_nightly)
self._request(self.version_webhooks, {"current": version[0], "latest": latest_version[0], "notes": notes}) self._request(self.version_webhooks, {"event": "version", "current": version[0], "latest": latest_version[0], "notes": notes})
def end_time_hooks(self, start_time, end_time, run_time, stats): def end_time_hooks(self, start_time, end_time, run_time, stats):
if self.run_end_webhooks: if self.run_end_webhooks:
self._request(self.run_end_webhooks, { self._request(self.run_end_webhooks, {
"event": "run_end",
"start_time": start_time.strftime("%Y-%m-%d %H:%M:%S"), "start_time": start_time.strftime("%Y-%m-%d %H:%M:%S"),
"end_time": end_time.strftime("%Y-%m-%d %H:%M:%S"), "end_time": end_time.strftime("%Y-%m-%d %H:%M:%S"),
"run_time": run_time, "run_time": run_time,
@ -99,7 +100,7 @@ class Webhooks:
def error_hooks(self, text, server=None, library=None, collection=None, playlist=None, critical=True): def error_hooks(self, text, server=None, library=None, collection=None, playlist=None, critical=True):
if self.error_webhooks: if self.error_webhooks:
json = {"error": str(text), "critical": critical} json = {"event": "error", "error": str(text), "critical": critical}
if server: json["server_name"] = str(server) if server: json["server_name"] = str(server)
if library: json["library_name"] = str(library) if library: json["library_name"] = str(library)
if collection: json["collection"] = str(collection) if collection: json["collection"] = str(collection)
@ -108,7 +109,7 @@ class Webhooks:
def delete_hooks(self, message, server=None, library=None): def delete_hooks(self, message, server=None, library=None):
if self.delete_webhooks: if self.delete_webhooks:
json = {"message": message} json = {"event": "delete", "message": message}
if server: json["server_name"] = str(server) if server: json["server_name"] = str(server)
if library: json["library_name"] = str(library) if library: json["library_name"] = str(library)
self._request(self.delete_webhooks, json) self._request(self.delete_webhooks, json)
@ -123,6 +124,7 @@ class Webhooks:
if not playlist and not background_url and collection.art and next((f for f in collection.fields if f.name == "art"), None): if not playlist and not background_url and collection.art and next((f for f in collection.fields if f.name == "art"), None):
art = self.config.get_image_encoded(f"{self.library.url}{collection.art}?X-Plex-Token={self.library.token}") art = self.config.get_image_encoded(f"{self.library.url}{collection.art}?X-Plex-Token={self.library.token}")
self._request(webhooks, { self._request(webhooks, {
"event": "changes",
"server_name": self.library.PlexServer.friendlyName, "server_name": self.library.PlexServer.friendlyName,
"library_name": self.library.name, "library_name": self.library.name,
"playlist" if playlist else "collection": collection.title, "playlist" if playlist else "collection": collection.title,

View file

@ -634,7 +634,7 @@ def run_collection(config, library, metadata, requested_collections):
else: else:
raise Failed(e) raise Failed(e)
if not builder.found_items and builder.ignore_blank_results: if not builder.found_items and not builder.ignore_blank_results:
raise NonExisting(f"{builder.Type} Warning: No items found") raise NonExisting(f"{builder.Type} Warning: No items found")
builder.display_filters() builder.display_filters()