Skip to content

Commit 1824e88

Browse files
committed
feat(webhook): add jellyfinMediaId and jellyfinUserId to webhook notification
Add jellyfinMediaId and jellyfinUserId to webhook notification in order to enable a webhook to be configured to mark an item as favorite for the requesting user via the jellyfin API. #1949
1 parent f2bd0ab commit 1824e88

File tree

3 files changed

+16
-7
lines changed
  • docs/using-jellyseerr/notifications
  • server/lib/notifications/agents
  • src/components/Settings/Notifications/NotificationsWebhook

3 files changed

+16
-7
lines changed

docs/using-jellyseerr/notifications/webhook.md

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -84,13 +84,14 @@ The `{{media}}` will be `null` if there is no relevant media object for the noti
8484

8585
These following special variables are only included in media-related notifications, such as requests.
8686

87-
| Variable | Value |
88-
| -------------------- | -------------------------------------------------------------------------------------------------------------- |
89-
| `{{media_type}}` | The media type (`movie` or `tv`) |
90-
| `{{media_tmdbid}}` | The media's TMDB ID |
91-
| `{{media_tvdbid}}` | The media's TheTVDB ID |
92-
| `{{media_status}}` | The media's availability status (`UNKNOWN`, `PENDING`, `PROCESSING`, `PARTIALLY_AVAILABLE`, or `AVAILABLE`) |
93-
| `{{media_status4k}}` | The media's 4K availability status (`UNKNOWN`, `PENDING`, `PROCESSING`, `PARTIALLY_AVAILABLE`, or `AVAILABLE`) |
87+
| Variable | Value |
88+
| ------------------------------| -------------------------------------------------------------------------------------------------------------- |
89+
| `{{media_type}}` | The media type (`movie` or `tv`) |
90+
| `{{media_tmdbid}}` | The media's TMDB ID |
91+
| `{{media_tvdbid}}` | The media's TheTVDB ID |
92+
| `{{media_status}}` | The media's availability status (`UNKNOWN`, `PENDING`, `PROCESSING`, `PARTIALLY_AVAILABLE`, or `AVAILABLE`) |
93+
| `{{media_status4k}}` | The media's 4K availability status (`UNKNOWN`, `PENDING`, `PROCESSING`, `PARTIALLY_AVAILABLE`, or `AVAILABLE`) |
94+
| `{{media_jellyfinMediaId}}` | The media's Jellyfin Media ID |
9495

9596
#### Request
9697

@@ -104,6 +105,7 @@ The following special variables are only included in request-related notificatio
104105
| `{{requestedBy_username}}` | The requesting user's username |
105106
| `{{requestedBy_email}}` | The requesting user's email address |
106107
| `{{requestedBy_avatar}}` | The requesting user's avatar URL |
108+
| `{{requestedBy_jellyfinUserId}}` | The requesting user's Jellyfin User ID |
107109
| `{{requestedBy_settings_discordId}}` | The requesting user's Discord ID (if set) |
108110
| `{{requestedBy_settings_telegramChatId}}` | The requesting user's Telegram Chat ID (if set) |
109111

server/lib/notifications/agents/webhook.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,16 @@ const KeyMap: Record<string, string | KeyMapFunction> = {
2828
media_tmdbid: 'media.tmdbId',
2929
media_tvdbid: 'media.tvdbId',
3030
media_type: 'media.mediaType',
31+
media_jellyfinMediaId: (payload) =>
32+
payload?.media?.jellyfinMediaId
33+
? payload.media.jellyfinMediaId
34+
: payload?.media?.jellyfinMediaId ?? '',
3135
media_status: (payload) =>
3236
payload.media ? MediaStatus[payload.media.status] : '',
3337
media_status4k: (payload) =>
3438
payload.media ? MediaStatus[payload.media.status4k] : '',
3539
request_id: 'request.id',
40+
requestedBy_jellyfinUserId: 'request.requestedBy.jellyfinUserId',
3641
requestedBy_username: 'request.requestedBy.displayName',
3742
requestedBy_email: 'request.requestedBy.email',
3843
requestedBy_avatar: 'request.requestedBy.avatar',

src/components/Settings/Notifications/NotificationsWebhook/index.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ const defaultPayload = {
3434
media_type: '{{media_type}}',
3535
tmdbId: '{{media_tmdbid}}',
3636
tvdbId: '{{media_tvdbid}}',
37+
jellyfinMediaId: '{{media_jellyfinMediaId}}',
3738
status: '{{media_status}}',
3839
status4k: '{{media_status4k}}',
3940
},
@@ -42,6 +43,7 @@ const defaultPayload = {
4243
requestedBy_email: '{{requestedBy_email}}',
4344
requestedBy_username: '{{requestedBy_username}}',
4445
requestedBy_avatar: '{{requestedBy_avatar}}',
46+
requestedBy_jellyfinUserId: '{{requestedBy_jellyfinUserId}}',
4547
requestedBy_settings_discordId: '{{requestedBy_settings_discordId}}',
4648
requestedBy_settings_telegramChatId:
4749
'{{requestedBy_settings_telegramChatId}}',

0 commit comments

Comments
 (0)