Go to file
Cody Robibero 0cb6cc297a add unstable workflow 2024-03-25 16:50:34 -06:00
.github add unstable workflow 2024-03-25 16:50:34 -06:00
Jellyfin.Plugin.Webhook Implement option to trim leading/trailing whitespace from message body (#220) 2024-03-24 10:19:29 -06:00
.gitattributes initial commit 2020-09-11 15:02:28 -06:00
.gitignore add unstable workflow 2024-03-25 16:50:34 -06:00
Directory.Build.props fix: meta ci workflows 2022-05-15 23:24:23 +02:00
Jellyfin.Plugin.Webhook.sln initial commit 2020-09-11 15:02:28 -06:00
LICENSE Add actual license text 2020-12-16 18:45:02 -07:00
README.md Update README.md 2023-10-31 09:43:54 +01:00
build.yaml Added MQTT as a destination (#134) 2022-10-10 07:59:16 -06:00
jellyfin.ruleset Update ruleset, fix new warnings 2021-11-10 06:32:47 -07:00

README.md

Jellyfin Webhook Plugin

Part of the Jellyfin Project

Plugin Banner

GitHub Workflow Status GPLv3 License Current Release

Debugging:

My webhook isn't working!

Change your logging.json file to output debug logs for Jellyfin.Plugin.Webhook. Make sure to add a comma to the end of "System": "Warning"

{
    "Serilog": {
        "MinimumLevel": {
            "Default": "Information",
            "Override": {
                "Microsoft": "Warning",
                "System": "Warning",
+               "Jellyfin.Plugin.Webhook": "Debug"
            }
        }

Documentation:

Use Handlebars templating engine to format notifications however you wish.

See Templates for sample templates.

Helpers:

  • if_equals
    • if first parameter equals second parameter case insensitive
  • if_exist
    • if the value of the parameter is not null or empty
  • link_to
    • wrap the $url and $text in an <a> tag

Variables:

  • Every Notifier

    • ServerId
    • ServerName
    • ServerVersion
      • $major.$minor.$build
    • ServerUrl
      • Server url
    • NotificationType
  • BaseItem:

    • Timestamp
      • Current server time local
    • UtcTimestamp
      • Current server time utc
    • Name
      • Item name
    • Overview
      • Item overview
    • Tagline
      • Item tagline
    • ItemId
      • Item id
    • ItemType
      • Item type
    • Year
      • Item production year
    • SeriesName
      • TV series name
    • SeasonNumber
      • Series number - direct format
    • SeasonNumber00
      • Series number - padded 00
    • SeasonNumber000
      • Series number - padded 000
    • EpisodeNumber
      • Episode number - direct format
    • EpisodeNumber00
      • Episode number - padded 00
    • EpisodeNumber000 -
      • Episode number - padded 000
    • Provider_{providerId_lowercase}
      • ProviderId is lowercase.
    • RunTimeTicks
      • The media runtime, in Ticks
    • RunTime
      • The media runtime, as hh:mm:ss
  • Playback

    • Includes everything from BaseItem
    • PlaybackPositionTicks
      • The current playback position, in Ticks
    • PlaybackPosition
      • The current playback position, as hh:mm:ss
    • MediaSourceId
      • The media source id
    • IsPaused
      • If playback is paused
    • IsAutomated
      • If notification is automated, or user triggered
    • DeviceId
      • Playback device id
    • DeviceName
      • Playback device name
    • ClientName
      • Playback client name
    • NotificationUsername
      • User playing item. Note: multiple notifications will be sent if there are multiple users in a session
    • UserId
      • The user Id
    • PlayedToCompletion
      • true/false, Only when NotificationType == PlaybackStop

Destination Specific:

  • Discord
    • MentionType
    • EmbedColor
    • AvatarUrl
    • BotUsername
  • Gotify
    • Priority
  • Pushbullet
  • Pushover
    • Token
    • UserToken
    • Device
    • Title
    • MessageUrl
    • MessageUrlTitle
    • MessagePriority
    • NotificationSound
  • SMTP
  • Slack
    • BotUsername
    • SlackIconUrl

Future events can be created from https://github.com/jellyfin/jellyfin/blob/master/Jellyfin.Server.Implementations/Events/EventingServiceCollectionExtensions.cs