Added flag to track images/video or not. Added separate templates for image/video.
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:
@@ -7,8 +7,10 @@
|
|||||||
#
|
#
|
||||||
# Features:
|
# Features:
|
||||||
# - Monitor specific albums by name (whitelist)
|
# - Monitor specific albums by name (whitelist)
|
||||||
|
# - Filter by asset type (track images only, videos only, or both)
|
||||||
# - Send notifications to multiple targets simultaneously
|
# - Send notifications to multiple targets simultaneously
|
||||||
# - Customizable notification messages with template variables
|
# - Customizable notification messages with template variables
|
||||||
|
# - Separate templates for image and video assets
|
||||||
# - Optional: include people detected in photos
|
# - Optional: include people detected in photos
|
||||||
# - Optional: include detailed asset list with per-item formatting
|
# - Optional: include detailed asset list with per-item formatting
|
||||||
# - Support for multiple change types (assets added, removed, changed)
|
# - Support for multiple change types (assets added, removed, changed)
|
||||||
@@ -44,8 +46,8 @@
|
|||||||
# - `{people}` - Comma-separated list of people detected
|
# - `{people}` - Comma-separated list of people detected
|
||||||
# - `{assets}` - Formatted list of added assets (using asset item template)
|
# - `{assets}` - Formatted list of added assets (using asset item template)
|
||||||
#
|
#
|
||||||
# Asset Item Template Variables:
|
# Asset Item Template Variables (for image/video templates):
|
||||||
# These variables can be used in the asset item template:
|
# These variables can be used in the image and video asset templates:
|
||||||
# - `{filename}` - Original filename of the asset
|
# - `{filename}` - Original filename of the asset
|
||||||
# - `{description}` - User-provided description of the asset
|
# - `{description}` - User-provided description of the asset
|
||||||
# - `{type}` - Asset type (IMAGE or VIDEO)
|
# - `{type}` - Asset type (IMAGE or VIDEO)
|
||||||
@@ -101,6 +103,20 @@ blueprint:
|
|||||||
selector:
|
selector:
|
||||||
boolean:
|
boolean:
|
||||||
|
|
||||||
|
track_images:
|
||||||
|
name: Track Images
|
||||||
|
description: "Include IMAGE assets in notifications"
|
||||||
|
default: true
|
||||||
|
selector:
|
||||||
|
boolean:
|
||||||
|
|
||||||
|
track_videos:
|
||||||
|
name: Track Videos
|
||||||
|
description: "Include VIDEO assets in notifications"
|
||||||
|
default: true
|
||||||
|
selector:
|
||||||
|
boolean:
|
||||||
|
|
||||||
# -------------------------------------------------------------------------
|
# -------------------------------------------------------------------------
|
||||||
# Notification Configuration
|
# Notification Configuration
|
||||||
# -------------------------------------------------------------------------
|
# -------------------------------------------------------------------------
|
||||||
@@ -180,12 +196,22 @@ blueprint:
|
|||||||
text:
|
text:
|
||||||
multiline: true
|
multiline: true
|
||||||
|
|
||||||
message_asset_item:
|
message_asset_image:
|
||||||
name: "Asset Item Template"
|
name: "Image Asset Template"
|
||||||
description: >
|
description: >
|
||||||
Template for each asset in the list.
|
Template for IMAGE assets in the list.
|
||||||
Variables: `{filename}`, `{description}`, `{type}`, `{created}`, `{owner}`, `{url}`, `{people}`
|
Variables: `{filename}`, `{description}`, `{type}`, `{created}`, `{owner}`, `{url}`, `{people}`
|
||||||
default: "\n • {filename} ({type})"
|
default: "\n • 🖼️ {filename}"
|
||||||
|
selector:
|
||||||
|
text:
|
||||||
|
multiline: true
|
||||||
|
|
||||||
|
message_asset_video:
|
||||||
|
name: "Video Asset Template"
|
||||||
|
description: >
|
||||||
|
Template for VIDEO assets in the list.
|
||||||
|
Variables: `{filename}`, `{description}`, `{type}`, `{created}`, `{owner}`, `{url}`, `{people}`
|
||||||
|
default: "\n • 🎬 {filename}"
|
||||||
selector:
|
selector:
|
||||||
text:
|
text:
|
||||||
multiline: true
|
multiline: true
|
||||||
@@ -264,6 +290,8 @@ variables:
|
|||||||
max_assets_to_show: !input max_assets_to_show
|
max_assets_to_show: !input max_assets_to_show
|
||||||
track_assets_added: !input track_assets_added
|
track_assets_added: !input track_assets_added
|
||||||
track_assets_removed: !input track_assets_removed
|
track_assets_removed: !input track_assets_removed
|
||||||
|
track_images: !input track_images
|
||||||
|
track_videos: !input track_videos
|
||||||
enable_debug_notifications: !input enable_debug_notifications
|
enable_debug_notifications: !input enable_debug_notifications
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
@@ -272,7 +300,8 @@ variables:
|
|||||||
message_assets_added_template: !input message_assets_added
|
message_assets_added_template: !input message_assets_added
|
||||||
message_assets_removed_template: !input message_assets_removed
|
message_assets_removed_template: !input message_assets_removed
|
||||||
message_people_format_template: !input message_people_format
|
message_people_format_template: !input message_people_format
|
||||||
message_asset_item_template: !input message_asset_item
|
message_asset_image_template: !input message_asset_image
|
||||||
|
message_asset_video_template: !input message_asset_video
|
||||||
message_assets_format_template: !input message_assets_format
|
message_assets_format_template: !input message_assets_format
|
||||||
message_assets_more_template: !input message_assets_more
|
message_assets_more_template: !input message_assets_more
|
||||||
|
|
||||||
@@ -304,14 +333,28 @@ variables:
|
|||||||
{{ '' }}
|
{{ '' }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
# Filter assets based on track_images/track_videos settings
|
||||||
|
filtered_assets: >
|
||||||
|
{% set ns = namespace(assets = []) %}
|
||||||
|
{% for asset in event_added_assets %}
|
||||||
|
{% if (asset.asset_type == 'IMAGE' and track_images) or (asset.asset_type == 'VIDEO' and track_videos) %}
|
||||||
|
{% set ns.assets = ns.assets + [asset] %}
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
{{ ns.assets }}
|
||||||
|
|
||||||
|
# Count of filtered assets (for notifications)
|
||||||
|
filtered_added_count: "{{ filtered_assets | length }}"
|
||||||
|
|
||||||
# Format assets list for notification
|
# Format assets list for notification
|
||||||
assets_list: >
|
assets_list: >
|
||||||
{% if include_asset_details and event_added_assets | length > 0 %}
|
{% if include_asset_details and filtered_assets | length > 0 %}
|
||||||
{% set ns = namespace(items = '') %}
|
{% set ns = namespace(items = '') %}
|
||||||
{% set max_items = max_assets_to_show if max_assets_to_show > 0 else event_added_assets | length %}
|
{% set max_items = max_assets_to_show if max_assets_to_show > 0 else filtered_assets | length %}
|
||||||
{% set assets_to_show = event_added_assets[:max_items] %}
|
{% set assets_to_show = filtered_assets[:max_items] %}
|
||||||
{% for asset in assets_to_show %}
|
{% for asset in assets_to_show %}
|
||||||
{% set item = message_asset_item_template
|
{% set asset_template = message_asset_video_template if asset.asset_type == 'VIDEO' else message_asset_image_template %}
|
||||||
|
{% set item = asset_template
|
||||||
| replace('{filename}', asset.asset_filename | default('Unknown'))
|
| replace('{filename}', asset.asset_filename | default('Unknown'))
|
||||||
| replace('{description}', asset.asset_description | default(''))
|
| replace('{description}', asset.asset_description | default(''))
|
||||||
| replace('{type}', asset.asset_type | default('Unknown'))
|
| replace('{type}', asset.asset_type | default('Unknown'))
|
||||||
@@ -321,7 +364,7 @@ variables:
|
|||||||
| replace('{people}', (asset.people | default([])) | join(', ')) %}
|
| replace('{people}', (asset.people | default([])) | join(', ')) %}
|
||||||
{% set ns.items = ns.items ~ item %}
|
{% set ns.items = ns.items ~ item %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% set more_count = event_added_assets | length - max_items %}
|
{% set more_count = filtered_assets | length - max_items %}
|
||||||
{% if more_count > 0 %}
|
{% if more_count > 0 %}
|
||||||
{% set ns.items = ns.items ~ message_assets_more_template | replace('{more_count}', more_count | string) %}
|
{% set ns.items = ns.items ~ message_assets_more_template | replace('{more_count}', more_count | string) %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@@ -331,13 +374,20 @@ variables:
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
# Determine if this event type should trigger a notification
|
# Determine if this event type should trigger a notification
|
||||||
|
# For added assets, check filtered count (respects track_images/track_videos)
|
||||||
should_notify: >
|
should_notify: >
|
||||||
{% if trigger.id == 'assets_added' and track_assets_added and event_added_count > 0 %}
|
{% if trigger.id == 'assets_added' and track_assets_added and filtered_added_count | int > 0 %}
|
||||||
{{ true }}
|
{{ true }}
|
||||||
{% elif trigger.id == 'assets_removed' and track_assets_removed and event_removed_count > 0 %}
|
{% elif trigger.id == 'assets_removed' and track_assets_removed and event_removed_count > 0 %}
|
||||||
{{ true }}
|
{{ true }}
|
||||||
{% elif trigger.id == 'changed' and (track_assets_added or track_assets_removed) %}
|
{% elif trigger.id == 'changed' and (track_assets_added or track_assets_removed) %}
|
||||||
{{ true }}
|
{% if track_assets_added and filtered_added_count | int > 0 %}
|
||||||
|
{{ true }}
|
||||||
|
{% elif track_assets_removed and event_removed_count > 0 %}
|
||||||
|
{{ true }}
|
||||||
|
{% else %}
|
||||||
|
{{ false }}
|
||||||
|
{% endif %}
|
||||||
{% else %}
|
{% else %}
|
||||||
{{ false }}
|
{{ false }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@@ -376,12 +426,15 @@ action:
|
|||||||
Album ID: {{ event_album_id }}
|
Album ID: {{ event_album_id }}
|
||||||
Album URL: {{ event_album_url }}
|
Album URL: {{ event_album_url }}
|
||||||
Change Type: {{ event_change_type }}
|
Change Type: {{ event_change_type }}
|
||||||
Added Count: {{ event_added_count }}
|
Added Count (raw): {{ event_added_count }}
|
||||||
|
Added Count (filtered): {{ filtered_added_count }}
|
||||||
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 Tracked: {{ is_album_tracked }}
|
||||||
Should Notify: {{ should_notify }}
|
Should Notify: {{ should_notify }}
|
||||||
|
Track Images: {{ track_images }}
|
||||||
|
Track Videos: {{ track_videos }}
|
||||||
Include Asset Details: {{ include_asset_details }}
|
Include Asset Details: {{ include_asset_details }}
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
@@ -393,14 +446,14 @@ action:
|
|||||||
# ---------------------------------------------------------------------
|
# ---------------------------------------------------------------------
|
||||||
- conditions:
|
- conditions:
|
||||||
- condition: template
|
- condition: template
|
||||||
value_template: "{{ trigger.id == 'assets_added' and track_assets_added and event_added_count > 0 }}"
|
value_template: "{{ trigger.id == 'assets_added' and track_assets_added and filtered_added_count | int > 0 }}"
|
||||||
sequence:
|
sequence:
|
||||||
- variables:
|
- variables:
|
||||||
message: >
|
message: >
|
||||||
{% set tpl = message_assets_added_template %}
|
{% set tpl = message_assets_added_template %}
|
||||||
{{ tpl | replace('{album_name}', event_album_name)
|
{{ tpl | replace('{album_name}', event_album_name)
|
||||||
| replace('{album_url}', event_album_url)
|
| replace('{album_url}', event_album_url)
|
||||||
| replace('{added_count}', event_added_count | string)
|
| replace('{added_count}', filtered_added_count | string)
|
||||||
| replace('{people}', people_list)
|
| replace('{people}', people_list)
|
||||||
| replace('{assets}', assets_list) }}
|
| replace('{assets}', assets_list) }}
|
||||||
|
|
||||||
@@ -441,14 +494,14 @@ action:
|
|||||||
- choose:
|
- choose:
|
||||||
- conditions:
|
- conditions:
|
||||||
- condition: template
|
- condition: template
|
||||||
value_template: "{{ track_assets_added and event_added_count > 0 }}"
|
value_template: "{{ track_assets_added and filtered_added_count | int > 0 }}"
|
||||||
sequence:
|
sequence:
|
||||||
- variables:
|
- variables:
|
||||||
message: >
|
message: >
|
||||||
{% set tpl = message_assets_added_template %}
|
{% set tpl = message_assets_added_template %}
|
||||||
{{ tpl | replace('{album_name}', event_album_name)
|
{{ tpl | replace('{album_name}', event_album_name)
|
||||||
| replace('{album_url}', event_album_url)
|
| replace('{album_url}', event_album_url)
|
||||||
| replace('{added_count}', event_added_count | string)
|
| replace('{added_count}', filtered_added_count | string)
|
||||||
| replace('{people}', people_list)
|
| replace('{people}', people_list)
|
||||||
| replace('{assets}', assets_list) }}
|
| replace('{assets}', assets_list) }}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user