Add hub tracking logic
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 4s
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 4s
This commit is contained in:
@@ -6,6 +6,7 @@
|
|||||||
# Designed to be used in pair with `Immich Album Watcher` integration.
|
# Designed to be used in pair with `Immich Album Watcher` integration.
|
||||||
#
|
#
|
||||||
# Features:
|
# Features:
|
||||||
|
# - Filter by hub/instance name (for multi-hub setups)
|
||||||
# - Monitor specific albums by name (whitelist)
|
# - Monitor specific albums by name (whitelist)
|
||||||
# - Filter by asset type (track images only, videos only, or both)
|
# - Filter by asset type (track images only, videos only, or both)
|
||||||
# - Send notifications to multiple targets simultaneously
|
# - Send notifications to multiple targets simultaneously
|
||||||
@@ -16,6 +17,7 @@
|
|||||||
# - Support for multiple change types (assets added, removed, changed)
|
# - Support for multiple change types (assets added, removed, changed)
|
||||||
#
|
#
|
||||||
# Event Data from Immich:
|
# Event Data from Immich:
|
||||||
|
# - `hub_name`: Name of the Immich hub/instance that sent the event
|
||||||
# - `album_id`: Album ID
|
# - `album_id`: Album ID
|
||||||
# - `album_name`: Album name
|
# - `album_name`: Album name
|
||||||
# - `album_url`: Public URL to view the album (only if album has shared link)
|
# - `album_url`: Public URL to view the album (only if album has shared link)
|
||||||
@@ -72,12 +74,23 @@ blueprint:
|
|||||||
input:
|
input:
|
||||||
|
|
||||||
# -------------------------------------------------------------------------
|
# -------------------------------------------------------------------------
|
||||||
# Album Configuration
|
# Hub & Album Configuration
|
||||||
# -------------------------------------------------------------------------
|
# -------------------------------------------------------------------------
|
||||||
albums_group:
|
albums_group:
|
||||||
name: "Albums"
|
name: "Hub & Albums"
|
||||||
collapsed: false
|
collapsed: false
|
||||||
input:
|
input:
|
||||||
|
hub_names:
|
||||||
|
name: Hub Names to Track
|
||||||
|
description: >
|
||||||
|
List of Immich hub/instance names to monitor.
|
||||||
|
Only events from matching hubs will trigger notifications.
|
||||||
|
Leave empty to track all hubs.
|
||||||
|
default: []
|
||||||
|
selector:
|
||||||
|
text:
|
||||||
|
multiple: true
|
||||||
|
|
||||||
album_names:
|
album_names:
|
||||||
name: Album Names to Track
|
name: Album Names to Track
|
||||||
description: >
|
description: >
|
||||||
@@ -283,6 +296,7 @@ variables:
|
|||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# Input Variables
|
# Input Variables
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
|
hub_names: !input hub_names
|
||||||
album_names: !input album_names
|
album_names: !input album_names
|
||||||
notify_targets: !input notify_targets
|
notify_targets: !input notify_targets
|
||||||
include_people: !input include_people
|
include_people: !input include_people
|
||||||
@@ -308,6 +322,7 @@ variables:
|
|||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# Event Data
|
# Event Data
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
|
event_hub_name: "{{ trigger.event.data.hub_name | default('') }}"
|
||||||
event_album_name: "{{ trigger.event.data.album_name | default('Unknown Album') }}"
|
event_album_name: "{{ trigger.event.data.album_name | default('Unknown Album') }}"
|
||||||
event_album_id: "{{ trigger.event.data.album_id | default('') }}"
|
event_album_id: "{{ trigger.event.data.album_id | default('') }}"
|
||||||
event_album_url: "{{ trigger.event.data.album_url | default('') }}"
|
event_album_url: "{{ trigger.event.data.album_url | default('') }}"
|
||||||
@@ -320,6 +335,10 @@ variables:
|
|||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# Computed Values
|
# Computed Values
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
|
# Check if this hub should be tracked (empty list = track all)
|
||||||
|
is_hub_tracked: >
|
||||||
|
{{ hub_names | length == 0 or event_hub_name in hub_names }}
|
||||||
|
|
||||||
# Check if this album should be tracked (empty list = track all)
|
# Check if this album should be tracked (empty list = track all)
|
||||||
is_album_tracked: >
|
is_album_tracked: >
|
||||||
{{ album_names | length == 0 or event_album_name in album_names }}
|
{{ album_names | length == 0 or event_album_name in album_names }}
|
||||||
@@ -396,6 +415,10 @@ variables:
|
|||||||
# CONDITIONS
|
# CONDITIONS
|
||||||
# =============================================================================
|
# =============================================================================
|
||||||
condition:
|
condition:
|
||||||
|
# Only proceed if the hub is in our tracking list
|
||||||
|
- condition: template
|
||||||
|
value_template: "{{ is_hub_tracked }}"
|
||||||
|
|
||||||
# Only proceed if the album is in our tracking list
|
# Only proceed if the album is in our tracking list
|
||||||
- condition: template
|
- condition: template
|
||||||
value_template: "{{ is_album_tracked }}"
|
value_template: "{{ is_album_tracked }}"
|
||||||
@@ -422,6 +445,7 @@ action:
|
|||||||
title: "Immich Album Watcher Debug"
|
title: "Immich Album Watcher Debug"
|
||||||
message: >
|
message: >
|
||||||
Trigger ID: {{ trigger.id }}
|
Trigger ID: {{ trigger.id }}
|
||||||
|
Hub: {{ event_hub_name }}
|
||||||
Album: {{ event_album_name }}
|
Album: {{ event_album_name }}
|
||||||
Album ID: {{ event_album_id }}
|
Album ID: {{ event_album_id }}
|
||||||
Album URL: {{ event_album_url }}
|
Album URL: {{ event_album_url }}
|
||||||
@@ -431,7 +455,8 @@ action:
|
|||||||
Removed Count: {{ event_removed_count }}
|
Removed Count: {{ event_removed_count }}
|
||||||
Added Assets: {{ event_added_assets | length }}
|
Added Assets: {{ event_added_assets | length }}
|
||||||
People: {{ event_people | join(', ') }}
|
People: {{ event_people | join(', ') }}
|
||||||
Is Tracked: {{ is_album_tracked }}
|
Is Hub Tracked: {{ is_hub_tracked }}
|
||||||
|
Is Album Tracked: {{ is_album_tracked }}
|
||||||
Should Notify: {{ should_notify }}
|
Should Notify: {{ should_notify }}
|
||||||
Track Images: {{ track_images }}
|
Track Images: {{ track_images }}
|
||||||
Track Videos: {{ track_videos }}
|
Track Videos: {{ track_videos }}
|
||||||
|
|||||||
Reference in New Issue
Block a user