%inherit file="base.html"/> <%! import os import sys import plexpy from plexpy import common, notifiers, newsletters from plexpy.helpers import anon_url, checked docker_setting = 'disabled' if plexpy.DOCKER else '' docker_msg = '(Controlled by Docker Container)' if plexpy.DOCKER else '' available_notification_agents = sorted(notifiers.available_notification_agents(), key=lambda k: k['label'].lower()) available_newsletter_agents = sorted(newsletters.available_newsletter_agents(), key=lambda k: k['label'].lower()) %> <%def name="headIncludes()"> %def> <%def name="headerIncludes()"> %def> <%def name="body()">
${category['category']} | ||
---|---|---|
${parameter['value']} | ${parameter['description']} | ${parameter['example']} |
If the value for a selected parameter cannot be provided, it will display as blank.
% for category in common.NOTIFICATION_PARAMETERS:${category['category']} | |
---|---|
{${parameter['value']}} |
${parameter['description']}
% if parameter.get('example'):
(${parameter['example']})
% endif
% if parameter.get('help_text'):
(${parameter['help_text']}) % endif |
Note: Tags separate the media type that triggered the notifications (i.e. a complete show added to Plex vs. a single episode added to Plex). They do not separate the notification parameters (i.e. {show_name} vs. {episode_name}.
Note: Nesting tags inside each other is not supported.
All text inside <movie></movie> tags will only be sent when the media type is movie.
Example:
{title}<movie>({year})</movie> was recently added to Plex
All text inside <show></show>/<season></season>/<episode></episode> tags will only be sent when the media type is show, season, or episode, respectively.
Example:
{show_name}<season> - Season {season_num}</season><episode> - S{season_num}E{episode_num} - {episode_name}</episode> was recently added to Plex.
All text inside <artist></artist>/<album></album>/<track></track> tags will only be sent when the media type is artist, album, or track, respectively.
Example:
{artist_name}<album> - {album_name}</album><track> - {album_name} - {track_name}</track> was recently added to Plex.
Notification parameters with the !u modifier will be converted to uppercase.
Example:
{video_codec} --> hevc {video_codec!u} --> HEVC
Notification parameters with the !l modifier will be converted to lowercase.
Example:
{content_rating} --> TV-PG {content_rating!l} --> tv-pg
Notification parameters with the !c modifier will be converted to title case.
Example:
{media_type} --> movie {media_type!c} --> Movie
Notification parameters which have a list of items can be sliced with a slice formatter :[X:Y] to limit the number of items. Note: the first item in the list is numbered 0.
Example:
{actors:[0]} --> Only include the 1st actor (Actors: 0) {actors:[:4]} --> Only the first 4 actors (Actors: 0, 1, 2, 3) {actors:[2:]} --> Only the 3rd to last actors (Actors: 2, 3, 4, ...) {actors:[1:5]} --> Only the 2nd to 5th actors (Actors: 1, 2, 3, 4)
A prefix or a suffix can be added to the notification parameters using Prefix< and >Suffix. If the notification parameter is unavailable, the prefix or suffix will not be displayed.
Example:
{rating} --> 8.9 {Rating: <rating} --> Rating: 8.9 {rating>/10} --> 8.9/10 {Rating: <rating>/10} --> Rating: 8.9/10
Example with unavailable parameter:
{rating} --> Rating: {rating}/10 --> Rating: /10 {Rating: <rating>/10} -->
Note: notify_text_eval = 1 must be manually enabled in the configuration file to enable expressions. Enabling this setting could pose a security risk. Enable at your own risk. It is recommended to leave this feature disabled if it is not being used.
Notification parameters can be wrapped with backticks `expr` to be evaluated as Python expressions. Only the following functions are supported in expressions:
Example:
{`float(rating) * 10`>%} --> 89% {`"%d hr %d min" % divmod(int(duration), 60)`} --> 1 hr 50 min {`round(float(stream_bandwidth) / 1000, 1)`> Mbps} --> 6.9 Mbps
If combining multiple notification text modifiers, the order of the modifiers must be:
Example:
{Starring <actors!c:[0]> as the main character.} --> Starring Arnold Schwarzenegger as the main character.
If the value for a selected parameter is unavailable, it will display as blank.
% for category in common.NEWSLETTER_PARAMETERS:${category['category']} | |
---|---|
{${parameter['value']}} |
${parameter['description']}
% if parameter.get('example'):
(${parameter['example']})
% endif
% if parameter.get('help_text'):
(${parameter['help_text']}) % endif |
Scan the QR code below with the Tautulli Remote app to automatically register it with the server (make sure the Tautulli Address below is correct) or manually enter the connection info and device token into the app settings. This window will automatically close once device registration is successful.
Note: OneSignal.com must not be blocked (e.g. in Pi-hole) for device registration.
Note: 127.0.0.1 and localhost will not work. Please enter an internal or external IP address, or hostname or domain instead.
Note: This is a private IP address. Tautulli will not be reachable outside of your home network. Access Tautulli via an external address or manually enter the address above to generate the QR code for remote access.
Note: This URL is not secure. Requests between the app and the server will not be encrypted. Enable HTTPS to connect the app securely.