<%inherit file="base.html"/> <%! import plexpy from plexpy import notifiers, common, versioncheck available_notification_agents = sorted(notifiers.available_notification_agents(), key=lambda k: k['name']) %> <%def name="headIncludes()"> <%def name="headerIncludes()"> <%def name="body()">
Settings
% if config['check_github']:
% endif
% if common.VERSION_NUMBER:

### Version ${common.VERSION_NUMBER} Changelog

% endif
Enable Updates

If you have Git installed, allow periodic checks for updates.

% if plexpy.CURRENT_VERSION:

Git hash: ${plexpy.CURRENT_VERSION}

% endif

### Display Settings

Date Format

Set your preferred date format. Click here to see the parameter list.

Time Format

Set your preferred time format. Click here to see the parameter list.

Group Table and Watch Statistics History

Group successive play history by the same user as a single entry in the tables and watch statistics.

### Watch Statistics

Cards

Select the cards to show in the watch statistics on the home page. Select none to disable.
Drag the items below to reorder your homepage content.

- Most Watched TV
- Most Popular TV
- Most Watched Movie
- Most Popular Movie
- Most Listened Music
- Most Popular Music
- Last Played
- Most Active User
- Most Active Platform
- Most Concurrent Streams

Time Frame

Specify the number of days for the watch statistics on the home page. Default is 30 days.

Top Lists

Specify the number of items to show in the top lists for the watch statistics on the home page. Max is 10 items, default is 5 items, 0 to disable.

Use Play Duration

Use play duration instead of play count to generate statistics.

### Library Statistics

Cards

Select the cards to show in the library statistics on the home page. Select none to disable.
Drag the items below to reorder your homepage content.

### Web Interface

Web interface changes require a restart.

HTTP Host

e.g. localhost or an IP, such as 0.0.0.0

HTTP Port

Port to bind web server to. Note that ports below 1024 may require root.

Launch Browser on Startup

Launch browser pointed to PlexPy, on startup.

Enable HTTPS

Enable HTTPS for web server for encrypted communication.

HTTPS Cert
HTTPS Key

### Authentication

Authentication changes require a restart.

HTTP Username

Username for web server authentication. Leave empty to disable.

HTTP Password

Password for web server authentication. Leave empty to disable.

### API

Enable API

Allow remote applications to interface with PlexPy.

API key

Current API key:
${config['api_key']}

### Plex Media Server

If you're using websocket monitoring, any server changes require a restart of PlexPy.

Plex IP or Hostname

IP Address or hostname for Plex Media Server.

Plex Port

Port that Plex Media Server is listening on.

Remote Server

Check this if your Plex Server is not on the same local network as PlexPy.

Force SSL

Force PlexPy to connect to your Plex Server via SSL. Your server needs to have remote access enabled.

### Plex Logs

Logs Folder

Set the complete folder path where your Plex Server logs are, shortcuts are not recognized.
Click here for help. This is required if you enable IP logging (for PMS 0.9.12 and below).

### Plex.tv Authentication

PMS Token

Token for Plex.tv authentication.

### Friends List

Users List Refresh Interval

The interval (in hours) PlexPy will request an updated friends list from Plex.tv. 1 minimum, 24 maximum.

Refresh Users List on Startup

Refresh the users list when PlexPy starts.

### Libraries List

Libraries List Refresh Interval

The interval (in hours) PlexPy will request an updated libraries list from your Plex Media Server. 1 minimum, 24 maximum.

Refresh Libraries List on Startup

Refresh the libraries list when PlexPy starts.

### Extra Settings

Use Video Preview Thumbnails (BIF)

If you have media indexing enabled on your server, use these on the activity pane.

Calculate Total File Sizes [experimental]

Enable if you want PlexPy to calculate the total file size for TV Shows/Seasons and Artists/Albums on the media info tables.
This is currently experimental.

### PlexWatch Import Tool

Click here to Import an existing Plexwatch database.

### Monitoring Settings

Monitoring Interval

The interval (in seconds) PlexPy will ping your Plex Server. Min 30 seconds, recommended 60 seconds.

Use Websocket (requires restart) [experimental]

Instead of polling the server at regular intervals let the server tell us when something happens.
This is currently experimental. Encrypted websocket is not currently supported.

Monitor Plex Remote Access

Enable to have PlexPy check if remote access to the Plex Media Server goes down. Your server needs to have remote access enabled.

### History Logging

Keep records of all movie, TV show, or music items played from your Plex Media Server.

Enable Movie Logging
Enable TV Show Logging
Enable Music Logging
Ignore Interval

The interval (in seconds) an item must be in a playing state before logging it. 0 to disable.

Enable IP Logging

Enable this to attempt to log the IP address of the user (for PMS 0.9.12 and below, IP address is automatically logged for PMS 0.9.14 and above).

### Buffer Warnings

Note: Buffer warnings only work on certain Plex clients. Android and PlexWeb do not report buffer events accurately or at all.

Buffer Threshold

How many buffer events should we wait before triggering the first warning. Buffer events increment on each monitor ping if play state is buffering. 0 to disable buffer warnings.

Buffer Wait

The value (in seconds) PlexPy should wait before triggering the next buffer warning. 0 to always trigger.

### Global Notification Toggles

Enable Movie Notifications
Enable TV Show Notifications
Enable Music Notifications
Enable Recently Added Notifications

### Current Activity Notifications

Watched Percent

Set the progress percentage of when a watched notification should be triggered. Minimum 50, Maximum 95.

Allow Consecutive Notifications

Disable to prevent consecutive notifications (i.e. both watched & stopped notifications).

### Recently Added Notifications

Group notifications for recently added TV Shows or Music

Enable to only get one TV Show or Artist notification for a batch of recently added Episodes or Tracks. Movies are unaffected.
Note: No Season/Episode or Album/Track metadata will be available.

Notification Delay

Set the delay for recently added notifications to allow metadata to be processed. Minimum 60 seconds.

### Custom Notification Messages

You can set custom formatted text for each type of notification. Click here for a list of available parameters which can be used.

You can also add tags to exclude certain text depending on the media type. Click here to view usage information.

- Playback Start
  - Subject Line

    Set a custom subject line.

    Message Body ${config['notify_on_start_body_text']}

    Set a custom body.

- Playback Stop
  - Subject Line

    Set a custom subject line.

    Message Body ${config['notify_on_stop_body_text']}

    Set a custom body.

- Playback Pause
  - Subject Line

    Set a custom subject line.

    Message Body ${config['notify_on_pause_body_text']}

    Set a custom body.

- Playback Resume
  - Subject Line

    Set a custom subject line.

    Message Body ${config['notify_on_resume_body_text']}

    Set a custom body.

- Watched
  - Subject Line

    Set a custom subject line.

    Message Body ${config['notify_on_watched_body_text']}

    Set a custom body.

- Buffer Warnings
  - Subject Line

    Set a custom subject line.

    Message Body ${config['notify_on_buffer_body_text']}

    Set a custom body.

- Recently Added
  - Subject Line

    Set a custom subject line.

    Message Body ${config['notify_on_created_body_text']}

    Set a custom body.

- Plex Remote Access Down
  - Subject Line

    Set a custom subject line.

    Message Body ${config['notify_on_extdown_body_text']}

    Set a custom body.

- Plex Server Down
  - Subject Line

    Set a custom subject line.

    Message Body ${config['notify_on_intdown_body_text']}

    Set a custom body.

- Plex Remote Access Back Up
  - Subject Line

    Set a custom subject line.

    Message Body ${config['notify_on_extup_body_text']}

    Set a custom body.

- Plex Server Back Up
  - Subject Line

    Set a custom subject line.

    Message Body ${config['notify_on_intup_body_text']}

    Set a custom body.

- Script
  - Script Arguments

    Set custom arguments passed to the scripts.

### Notification Agents

Toggle the desired notification options by clicking the bell icon and configure it by clicking the settings icon to the right.

% for agent in available_notification_agents:
- % if any(k[:2] == 'on' and v == 1 for k, v in agent.iteritems()): % else: % endif ${agent['name']} % if agent['has_config']: % endif
% endfor

#### Date & Time Format Options

##### Year
YYYY | Numeric, 4 digits | Eg., 1999, 2003
YY | Numeric, 2 digits | Eg., 99, 03
##### Month
MM | Numeric, with leading zeros | 01-12
M | Numeric, without leading zeros | 1-12
MMMM | Textual full | January-December
MMM | Textual three letters | Jan-Dec
##### Day
DD | Numeric, with leading zeros | 01-31
D | Numeric, without leading zeros | 1-31
Do | The English suffix for the day of the month | st, nd or th in the 1st, 2nd or 15th.
##### Time
a | am/pm Lowercase | am, pm
A | AM/PM Uppercase | AM, PM
h | Hour, 12-hour, without leading zeros | 1-12
hh | Hour, 12-hour, with leading zeros | 01-12
H | Hour, 24-hour, without leading zeros | 0-23
HH | Hour, 24-hour, with leading zeros | 00-23
mm | Minutes, with leading zeros | 00-59
ss | Seconds, with leading zeros | 00-59
zz | Timezone abbreviation | Eg., EST, MDT ...

#### Fetch Plex.tv Token

This will attempt to fetch your token for you. This will not work on Internet Explorer 9 or lower. PlexPy does not store your username and password.

PMS Username

Username for Plex.tv authentication.

PMS Password

Password for Plex.tv authentication.

#### Notification String Substitutions

If the value for a selected parameter cannot be provided, it will display as blank.

Global
{server_name} | The name of your Plex Server.
{server_uptime} | The uptime (in days, hours, mins, secs) of your Plex Server.
{action} | The action that triggered the notification.
{datestamp} | The date (in date format) the notification was triggered.
{timestamp} | The time (in time format) the notification was triggered.

Stream Details
{streams} | The number of concurrent streams.
{user} | The username of the person streaming.
{platform} | The type of client being used for playback.
{player} | The name of the device being used for playback.
{ip_address} | The IP address of the device being used for playback. (PMS 0.9.14 and above)
{stream_duration} | The stream duration (in minutes) for the item.
{stream_time} | The stream duration (in time format) for the item.
{remaining_duration} | The remaining duration (in minutes) for the item.
{remaining_time} | The remaining duration (in time format) for the item.
{progress_duration} | The last reported offset (in minutes) for the item.
{progress_time} | The last reported offset (in time format) for the item.
{progress_percent} | The last reported progress percent for the item.
{container} | The media container of the original media.
{video_codec} | The video codec of the original media.
{video_bitrate} | The video bitrate of the original media.
{video_width} | The video width of the original media.
{video_height} | The video height of the original media.
{video_resolution} | The video resolution of the original media.
{video_framerate} | The video framerate of the original media.
{aspect_ratio} | The aspect ratio of the original media.
{audio_codec} | The audio codec of the original media.
{audio_channels} | The audio channels of the original media.
{transcode_decision} | The stream transcode decisions for the media item.
{video_decision} | The video transcode decisions for the media item.
{audio_decision} | The audio transcode decisions for the media item.
{transcode_container} | The media container of the transcoded media.
{transcode_video_codec} | The video codec of the transcoded media.
{transcode_video_width} | The video width of the transcoded media.
{transcode_video_height} | The video height of the transcoded media.
{transcode_audio_codec} | The audio codec of the transcoded media.
{transcode_audio_channels} | The audio channels of the transcoded media.
{session_key} | The unique identifier for the session.
{user_id} | The unique identifier for the user.

Metadata Details
{media_type} | The type of media (movie, episode, track).
{title} | The full title of the item.
{library_name} | The library title of the media item.
{show_name} | The title of the TV series.
{episode_name} | The title of the episode.
{artist_name} | The name of the artistd.
{album_name} | The title of the album.
{track_name} | The title of the track.
{season_num} | The season number for the item if item is episode.
{season_num00} | The two digit season number.
{episode_num} | The episode number for the item if item is episode.
{episode_num00} | The two digit episode number.
{track_num} | The track number for the item if item is track.
{track_num00} | The two digit track number.
{year} | The release year for the item.
{studio} | The studio for the item.
{content_rating} | The content rating for the item. (e.g. TV-MA, TV-PG, etc.)
{directors} | A list of directors for the item.
{writers} | A list of writers for the item.
{actors} | A list of actors for the item.
{genres} | A list of genres for the item.
{summary} | A short plot summary for the item.
{tagline} | A tagline for the media item.
{rating} | The rating (out of 10) for the item.
{duration} | The duration (in minutes) for the item.
{section_id} | The unique identifier for the library.
{rating_key} | The unique identifier for the item.
{parent_rating_key} | The unique identifier for the item's parent (season or album).
{grandparent_rating_key} | The unique identifier for the item's grandparent (TV show or artist).

#### Notification Exclusion Tags

#### Movie Tag <movie></movie>

All text inside a movie tag will only be sent when the media item being played back is a movie.

Example:

    {user} has started playing {title} <movie>({year})</movie>

#### TV Tag <tv></tv>

All text inside a tv tag will only be sent when the media item being played back is an episode.

Example:

    {user} has started playing {title} <tv>(S{season_num}E{episode_num})</tv>

#### Music Tag <music></music>

All text inside a music tag will only be sent when the media item being played back is a music track.

Example:

    {user} has started playing {title} <music>(Track {episode_num})</music>

#### Changelog

${versioncheck.read_changelog() | n}

#### Restart

You have changed settings that require PlexPy to restart. Hit the restart button below to restart now.
<%def name="javascriptIncludes()">