<%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 History

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

### Watch Statistics

Cards

Select the cards to show in the watch statistics on the home page. Select none to disable.

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.

### 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 is 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.

### Plex.tv Authentication

PMS Token

Token for Plex.tv authentication.

### Friends List

User List Refresh Interval

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

Refresh User List on Startup

Refresh the user 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.

### 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)

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.

### History Logging

Log Movies and TV

Keep records of all video items played from your Plex Media Server.

Log Music

Keep records of all audio items played from your Plex Media Server. VERY experimental.

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.

### 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 and TV Notifications
Enable Music Notifications

### Notification Tuning

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).

Group notifications for recently added TV Shows or Music

Enable to only get one notification for recently added Episodes or Tracks. Movies are unaffected.

### 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

    Set a custom body.

- Playback Stop
  - Subject Line

    Set a custom subject line.

    Message Body

    Set a custom body.

- Playback Pause
  - Subject Line

    Set a custom subject line.

    Message Body

    Set a custom body.

- Playback Resume
  - Subject Line

    Set a custom subject line.

    Message Body

    Set a custom body.

- Watched
  - Subject Line

    Set a custom subject line.

    Message Body

    Set a custom body.

- Buffer Warnings
  - Subject Line

    Set a custom subject line.

    Message Body

    Set a custom body.

- Recently Added
  - Subject Line

    Set a custom subject line.

    Message Body

    Set a custom body.

### 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 agent['on_play'] or agent['on_stop'] or agent['on_pause'] or agent['on_resume'] or agent['on_buffer'] or agent['on_watched'] or agent['on_created']: % else: % endif ${agent['name']} % if agent['has_config']: % endif
% endfor

#### Date & Time Format Options

##### Day

DD | Numeric, with leading zeros | 01 to 31
D | Numeric, without leading zeros | 1 to 31
Do | The English suffix for the day of the month | st, nd or th in the 1st, 2nd or 15th.

##### Month

MM | Numeric, with leading zeros | 01 to 31
M | Numeric, without leading zeros | 1 to 31
MMMM | Textual full | January to December
MMM | Textual three letters | Jan to Dec

##### Year

YYYY | Numeric, 4 digits | Eg., 1999, 2003
YY | Numeric, 2 digits | Eg., 99, 03

##### 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 a value for a selected parameter cannot be provided nothing will be outputted for it.

{server_name} | The name of your Plex Server.
{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.
{media_type} | The type of media being played (movie, episode, track).
{title} | The title of the item being played.
{show_name} | The title of the TV series being played.
{episode_name} | The title of the episode being played.
{artist_name} | The name of the artist being played.
{album_name} | The title of the album being played.
{season_num} | The season number for the media item if item is episode.
{season_num00} | The two digit season number.
{episode_num} | The episode number for the media item if item is episode.
{episode_num00} | The two digit episode number.
{transcode_decision} | The transcode decisions for the media item.
{year} | The release year for the media item.
{studio} | The studio for the media item.
{content_rating} | The content rating for the media item. (e.g. TV-MA, TV-PG, etc.)
{directors} | A list of directors for the media item.
{writers} | A list of writers for the media item.
{actors} | A list of actors for the media item.
{genres} | A list of genres for the media item.
{summary} | A short plot summary for the media 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.
{stream_duration} | The stream duration (in minutes) for the item.
{remaining_duration} | The remaining duration (in minutes) for the item.
{progress} | The last reported offset (in minutes) for the item.
{progress_percent} | The last reported progress percent for the item.

#### 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()}

#### Restart

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