diff --git a/.gitignore b/.gitignore index c7ba5e58..93f0cb0b 100644 --- a/.gitignore +++ b/.gitignore @@ -19,10 +19,10 @@ cache/* # HTTPS Cert/Key # ################## -*.crt -*.key -*.csr -*.pem +/*.crt +/*.key +/*.csr +/*.pem # Mergetool *.orgin diff --git a/API.md b/API.md index bbb0e039..c07b6b51 100644 --- a/API.md +++ b/API.md @@ -783,55 +783,53 @@ Optional parameters: Returns: json: - {"metadata": - {"actors": [ - "Kit Harington", - "Emilia Clarke", - "Isaac Hempstead-Wright", - "Maisie Williams", - "Liam Cunningham", - ], - "added_at": "1461572396", - "art": "/library/metadata/1219/art/1462175063", - "content_rating": "TV-MA", - "directors": [ - "Jeremy Podeswa" - ], - "duration": "2998290", - "genres": [ - "Adventure", - "Drama", - "Fantasy" - ], - "grandparent_rating_key": "1219", - "grandparent_thumb": "/library/metadata/1219/thumb/1462175063", - "grandparent_title": "Game of Thrones", - "guid": "com.plexapp.agents.thetvdb://121361/6/1?lang=en", - "labels": [], - "last_viewed_at": "1462165717", - "library_name": "TV Shows", - "media_index": "1", - "media_type": "episode", - "originally_available_at": "2016-04-24", - "parent_media_index": "6", - "parent_rating_key": "153036", - "parent_thumb": "/library/metadata/153036/thumb/1462175062", - "parent_title": "", - "rating": "7.8", - "rating_key": "153037", - "section_id": "2", - "studio": "HBO", - "summary": "Jon Snow is dead. Daenerys meets a strong man. Cersei sees her daughter again.", - "tagline": "", - "thumb": "/library/metadata/153037/thumb/1462175060", - "title": "The Red Woman", - "updated_at": "1462175060", - "writers": [ - "David Benioff", - "D. B. Weiss" - ], - "year": "2016" - } + {"actors": [ + "Kit Harington", + "Emilia Clarke", + "Isaac Hempstead-Wright", + "Maisie Williams", + "Liam Cunningham", + ], + "added_at": "1461572396", + "art": "/library/metadata/1219/art/1462175063", + "content_rating": "TV-MA", + "directors": [ + "Jeremy Podeswa" + ], + "duration": "2998290", + "genres": [ + "Adventure", + "Drama", + "Fantasy" + ], + "grandparent_rating_key": "1219", + "grandparent_thumb": "/library/metadata/1219/thumb/1462175063", + "grandparent_title": "Game of Thrones", + "guid": "com.plexapp.agents.thetvdb://121361/6/1?lang=en", + "labels": [], + "last_viewed_at": "1462165717", + "library_name": "TV Shows", + "media_index": "1", + "media_type": "episode", + "originally_available_at": "2016-04-24", + "parent_media_index": "6", + "parent_rating_key": "153036", + "parent_thumb": "/library/metadata/153036/thumb/1462175062", + "parent_title": "", + "rating": "7.8", + "rating_key": "153037", + "section_id": "2", + "studio": "HBO", + "summary": "Jon Snow is dead. Daenerys meets a strong man. Cersei sees her daughter again.", + "tagline": "", + "thumb": "/library/metadata/153037/thumb/1462175060", + "title": "The Red Woman", + "updated_at": "1462175060", + "writers": [ + "David Benioff", + "D. B. Weiss" + ], + "year": "2016" } ``` @@ -1176,6 +1174,34 @@ Returns: ``` +### get_pms_update +Check for updates to the Plex Media Server. + +``` +Required parameters: + None + +Optional parameters: + None + +Returns: + json: + {"update_available": true, + "platform": "Windows", + "release_date": "1473721409", + "version": "1.1.4.2757-24ffd60", + "requirements": "...", + "extra_info": "...", + "changelog_added": "...", + "changelog_fixed": "...", + "label": "Download", + "distro": "english", + "distro_build": "windows-i386", + "download_url": "https://downloads.plex.tv/...", + } +``` + + ### get_recently_added Get all items that where recelty added to plex. diff --git a/CHANGELOG.md b/CHANGELOG.md index b680b77a..aae0b0ca 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,77 @@ # Changelog +## v2.0.0-beta (2017-12-18) + +* Monitoring: + * New: More detailed stream info including subtitles, bitrates, bandwidth, and quality profiles. + * New: Terminate sessions from the current activity (Plex Pass only). + * Change: Monitoring uses websockets only now. +* Notifications: + * New: Completely new notification system. + * Allow adding multiple of the same notification agent and/or duplicating existing notification agents. + * Each notification agent has it's own notification triggers and notification text. + * Notification agents are stored in the database instead of the config file. Some notification configurations may have been lost in the transfer. Sorry. + * New: Discord notification agent. + * New: GroupMe notification agent. + * New: MQTT notification agent. + * New: More customizable info cards for Discord, Facebook, Hipchat, and Slack. + * New: Script notifications are configured individually per script with separate arguments for each notification action. + * New: Icon and duration options for Plex Home Theater and XBMC notifications. + * New: Notification for Tautulli updates. + * New: Added <show>, <season>, <artist>, and <album> notification exclusion tags. + * <tv> is renamed to <episode>, and <music> is renamed to <track> + * New: Preview notification text in the notifier settings. + * New: Properly group recently added notifications when adding a batch of media. + * The {season_num}, {episode_num}, and {track_num} parameters will be substituted with the range (e.g. 06-10) + * New: Option to group recently added notifications by show/artist or season/album. + * New: More detailed media info (video, audio, subtitle, file, etc.) notification options available. + * New: Added notification text modifiers to change case and slice lists. + * New: Custom notification conditions using parameters to filter notifications. + * New: Button to trigger manual recently added notifications from the info pages. + * New: Lookup TVMaze and TheMovieDatabase links. + * Remove: The shared Imgur client ID has been removed. Please enter your own client ID in the settings to continue uploading posters. + * Change: Notifications with a blank subject or body will no longer be sent at all. + * Change: Line breaks inserted automatically in Email notification text. + * Change: Notifications for season/episodes now use the season poster and album/track now use the album art. + * Change: The {action} parameter is no longer capitalized. + * Change: Notification success or failure added to notification logs. +* API: + * New: Added check for Plex Media Server updates with the Tautulli API. + * New: Added show/artist and episode/track titles to the "get_history" API command. + * New: Added manual trigger for recently added notifications. + * Remove: Defunct API v1. + * Change: The "notify" API command now requires a notifier_id instead of an agent_id. The notifier ID can be found in the settings for each notification agent. + * Change: The returned json for the "get_metadata" API command is no longer nested under the "metadata" key. +* UI: + * New: Updated current activity, watch statistics, and library statistics cards on the home page. + * New: Toggle stats and recently added categories directly on the homepage. + * New: Ability to delete synced items from the Synced Items page. + * New: Updated platform icons to a uniform style. + * Remove: Setting for number of top items for watch statistic cards. + * Change: Separate API and websocket logs. +* Android Tautulli Remote App (beta): + * New: Download the Tautulli Remote app on Google Play! + * Link the app using a QR code in the Tautulli settings. + * New: Push notifications directly to the Tautulli Remote app. +* Other: + * New: Option to update Tautulli automatically when an update is available. + * New: Option to switch the tracking git remote and branch. + * New: Option to change the path to your git environment variable. + * New: Option to use a HTTPS certificate chain. + * New: Option to override the Plex Web URL for click-through links. + * New: Separate watched percentage for movies, episodes, and tracks. + * New: Show changelog after updating Tautulli. + * New: Support for IPv6 geolocation lookup. + * New: Download the Tautulli configuration file or database from the settings. + * New: Log failed Tautulli login attempts. + * Fix: Modal popups not working on mobile Safari. + * Fix: Prevent password managers from autofilling the password in the settings. + * Fix: Unable to search with special characters. + * Remove: Some unused options have been removed from the settings page. + * Change: The database schema has been changed, and reverting back to PlexPy v1 will not work. + * Change: The dev branch has been depreciated. A master/beta/nightly system is used instead. + + ## v1.4.25 (2017-10-02) * Fix: Tab instead of spaces preventing startup. diff --git a/PlexPy.py b/PlexPy.py index 9a38ef51..bcc17654 100755 --- a/PlexPy.py +++ b/PlexPy.py @@ -6,20 +6,20 @@ # -*- coding: utf-8 -*- -# This file is part of PlexPy. +# This file is part of Tautulli. # -# PlexPy is free software: you can redistribute it and/or modify +# Tautulli is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # -# PlexPy is distributed in the hope that it will be useful, +# Tautulli is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with PlexPy. If not, see . +# along with Tautulli. If not, see . import os import sys @@ -43,11 +43,11 @@ signal.signal(signal.SIGTERM, plexpy.sig_handler) def main(): """ - PlexPy application entry point. Parses arguments, setups encoding and + Tautulli application entry point. Parses arguments, setups encoding and initializes the application. """ - # Fixed paths to PlexPy + # Fixed paths to Tautulli if hasattr(sys, 'frozen'): plexpy.FULL_PATH = os.path.abspath(sys.executable) else: @@ -81,9 +81,9 @@ def main(): parser.add_argument( '-d', '--daemon', action='store_true', help='Run as a daemon') parser.add_argument( - '-p', '--port', type=int, help='Force PlexPy to run on a specified port') + '-p', '--port', type=int, help='Force Tautulli to run on a specified port') parser.add_argument( - '--dev', action='store_true', help='Start PlexPy in the development environment') + '--dev', action='store_true', help='Start Tautulli in the development environment') parser.add_argument( '--datadir', help='Specify a directory where to store your data files') parser.add_argument( @@ -93,8 +93,8 @@ def main(): parser.add_argument( '--pidfile', help='Create a pid file (only relevant when running as a daemon)') parser.add_argument( - '--nofork', action='store_true', help='Start PlexPy as a service, do not fork when restarting') - + '--nofork', action='store_true', help='Start Tautulli as a service, do not fork when restarting') + args = parser.parse_args() if args.verbose: @@ -108,7 +108,7 @@ def main(): if args.dev: plexpy.DEV = True - logger.debug(u"PlexPy is running in the dev environment.") + logger.debug(u"Tautulli is running in the dev environment.") if args.daemon: if sys.platform == 'win32': @@ -120,7 +120,7 @@ def main(): if args.nofork: plexpy.NOFORK = True - logger.info("PlexPy is running as a service, it will not fork when restarted.") + logger.info("Tautulli is running as a service, it will not fork when restarted.") if args.pidfile: plexpy.PIDFILE = str(args.pidfile) @@ -195,14 +195,11 @@ def main(): plexpy.start() # Open connection for websocket - if plexpy.CONFIG.MONITORING_USE_WEBSOCKET: - try: - web_socket.start_thread() - except: - logger.warn(u"Websocket :: Unable to open connection.") - # Fallback to polling - plexpy.POLLING_FAILOVER = True - plexpy.initialize_scheduler() + try: + web_socket.start_thread() + except: + logger.warn(u"Websocket :: Unable to open connection.") + plexpy.initialize_scheduler() # Force the http port if neccessary if args.port: @@ -230,6 +227,7 @@ def main(): 'http_proxy': plexpy.CONFIG.HTTP_PROXY, 'enable_https': plexpy.CONFIG.ENABLE_HTTPS, 'https_cert': plexpy.CONFIG.HTTPS_CERT, + 'https_cert_chain': plexpy.CONFIG.HTTPS_CERT_CHAIN, 'https_key': plexpy.CONFIG.HTTPS_KEY, 'http_username': plexpy.CONFIG.HTTP_USERNAME, 'http_password': plexpy.CONFIG.HTTP_PASSWORD, @@ -256,6 +254,8 @@ def main(): plexpy.shutdown() elif plexpy.SIGNAL == 'restart': plexpy.shutdown(restart=True) + elif plexpy.SIGNAL == 'checkout': + plexpy.shutdown(restart=True, checkout=True) else: plexpy.shutdown(restart=True, update=True) diff --git a/README.md b/README.md index 89be468a..281589b9 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ -# PlexPy +# Tautulli -[![Discord](https://img.shields.io/badge/Discord-PlexPy-738bd7.svg?style=flat-square)](https://discord.gg/36ggawe) -[![Gitter](https://img.shields.io/badge/Gitter-PlexPy-ed1965.svg?style=flat-square)](https://gitter.im/plexpy/general) -[![Plex Forums](https://img.shields.io/badge/Plex%20Forums-PlexPy-E5A00D.svg?style=flat-square)](https://forums.plex.tv/discussion/169591/plexpy-another-plex-monitoring-program) +[![Discord](https://img.shields.io/badge/Discord-Tautulli-7289DA.svg?style=flat-square)](https://discord.gg/36ggawe) +[![Reddit](https://img.shields.io/badge/Reddit-Tautulli-FF5700.svg?style=flat-square)](https://www.reddit.com/r/Tautulli/) +[![Plex Forums](https://img.shields.io/badge/Plex%20Forums-Tautulli-E5A00D.svg?style=flat-square)](https://forums.plex.tv/discussion/169591/plexpy-another-plex-monitoring-program) A python based web application for monitoring, analytics and notifications for [Plex Media Server](https://plex.tv). @@ -27,13 +27,13 @@ This project is based on code from [Headphones](https://github.com/rembo10/headp ## Preview -* [Full preview gallery on Imgur](https://imgur.com/a/RwQPM) +* [Full preview gallery on our website](http://tautulli.com) -![PlexPy Homepage](https://i.imgur.com/0D0uFJg.jpg) +![Tautulli Homepage](http://tautulli.com/images/screenshots/activity.png?v=2) ## Installation and Support -* [Installation Guides](https://github.com/JonnyWong16/plexpy/wiki/Installation) shows you how to install PlexPy. +* [Installation Guides](https://github.com/JonnyWong16/plexpy/wiki/Installation) shows you how to install Tautulli. * [FAQs](https://github.com/JonnyWong16/plexpy/wiki/Frequently-Asked-Questions-(FAQ)) in the wiki can help you with common problems. **Support** the project by implementing new features, solving support tickets and provide bug fixes. @@ -49,7 +49,7 @@ This project is based on code from [Headphones](https://github.com/rembo10/headp - Checking the [Wiki](https://github.com/JonnyWong16/plexpy/wiki) for [ [Installation] ](https://github.com/JonnyWong16/plexpy/wiki/Installation) and [ [FAQs] ](https://github.com/JonnyWong16/plexpy/wiki/Frequently-Asked-Questions-(FAQ)). -- For basic questions try asking on [Gitter](https://gitter.im/plexpy/general) or the [Plex Forums](https://forums.plex.tv/discussion/169591/plexpy-another-plex-monitoring-program) first before opening an issue. +- For basic questions try asking on [Discord](https://discord.gg/36ggawe), [Reddit](https://www.reddit.com/r/Tautulli), or the [Plex Forums](https://forums.plex.tv/discussion/169591/plexpy-another-plex-monitoring-program) first before opening an issue. ##### If nothing has worked: diff --git a/data/interfaces/default/base.html b/data/interfaces/default/base.html index e9440750..4cb09287 100644 --- a/data/interfaces/default/base.html +++ b/data/interfaces/default/base.html @@ -8,129 +8,40 @@ - PlexPy - ${title} | ${server_name} + Tautulli - ${title} | ${server_name} - + ${next.headIncludes()} - - - - - - - - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + @@ -139,7 +50,7 @@ % if _session['user_group'] == 'admin': % if plexpy.CONFIG.CHECK_GITHUB and not plexpy.CURRENT_VERSION: % elif plexpy.CONFIG.CHECK_GITHUB and plexpy.CURRENT_VERSION != plexpy.LATEST_VERSION and plexpy.COMMITS_BEHIND > 0 and plexpy.INSTALL_TYPE != 'win': @@ -161,7 +72,7 @@ - PlexPy + Tautulli - -
+
% if config['graph_type'] == 'duration': % endif
-
- +
+ Last + + days
-
- +
+ Last + + months
@@ -245,13 +245,18 @@
- +<%def name="modalIncludes()"> + + + + <%def name="javascriptIncludes()"> @@ -287,16 +292,17 @@ $.ajax({ url: "history_table_modal", - type: 'post', - data: { + cache: false, + async: true, + data: { user_id: selected_user_id, start_date: dateString, media_type: media_type, transcode_decision: transcode_decision }, complete: function(xhr, status) { - $('#history-modal').modal('show'); $("#history-modal").html(xhr.responseText); + $('#history-modal').modal(); } }); } @@ -566,11 +572,7 @@ e.preventDefault(); current_tab = $(this).attr('href'); loadGraphsTab1(current_day_range, yaxis); - $.ajax({ - url: 'set_graph_config', - data: { graph_tab: current_tab.replace('#','') }, - async: true - }); + $.post('set_graph_config', { graph_tab: current_tab.replace('#','') }); }) // Tab2 opened @@ -578,11 +580,7 @@ e.preventDefault(); current_tab = $(this).attr('href'); loadGraphsTab2(current_day_range, yaxis); - $.ajax({ - url: 'set_graph_config', - data: { graph_tab: current_tab.replace('#','') }, - async: true - }); + $.post('set_graph_config', { graph_tab: current_tab.replace('#','') }); }) // Tab3 opened @@ -590,46 +588,28 @@ e.preventDefault(); current_tab = $(this).attr('href'); loadGraphsTab3(current_month_range, yaxis); - $.ajax({ - url: 'set_graph_config', - data: { graph_tab: current_tab.replace('#','') }, - async: true - }); + $.post('set_graph_config', { graph_tab: current_tab.replace('#','') }); }) // Date range changed + $('#graph-days').tooltip({ container: 'body', placement: 'top', html: true }); $('#graph-days').on('change', function() { - current_day_range = Math.round($(this).val()); - $(this).val(current_day_range); - if (current_day_range < 1) { - $(this).val(7); - current_day_range = 7; - } + forceMinMax($(this)); + current_day_range = $(this).val(); if (current_tab == '#tabs-1') { loadGraphsTab1(current_day_range, yaxis); } if (current_tab == '#tabs-2') { loadGraphsTab2(current_day_range, yaxis); } $('.days').html(current_day_range); - $.ajax({ - url: 'set_graph_config', - data: { graph_days: current_day_range}, - async: true - }); + $.post('set_graph_config', { graph_days: current_day_range }); }); // Month range changed + $('#graph-months').tooltip({ container: 'body', placement: 'top', html: true }); $('#graph-months').on('change', function() { - current_month_range = Math.round($(this).val()); - $(this).val(current_month_range); - if (current_month_range < 1) { - $(this).val(12); - current_month_range = 12; - } + forceMinMax($(this)); + current_month_range = $(this).val(); if (current_tab == '#tabs-3') { loadGraphsTab3(current_month_range, yaxis); } $('.months').html(current_month_range); - $.ajax({ - url: 'set_graph_config', - data: { graph_months: current_month_range}, - async: true - }); + $.post('set_graph_config', { graph_months: current_month_range }); }); // User changed @@ -646,11 +626,7 @@ if (current_tab == '#tabs-1') { loadGraphsTab1(current_day_range, yaxis); } if (current_tab == '#tabs-2') { loadGraphsTab2(current_day_range, yaxis); } if (current_tab == '#tabs-3') { loadGraphsTab3(current_month_range, yaxis); } - $.ajax({ - url: 'set_graph_config', - data: { graph_type: yaxis}, - async: true - }); + $.post('set_graph_config', { graph_type: yaxis }); }); function setGraphFormat(type) { diff --git a/data/interfaces/default/history.html b/data/interfaces/default/history.html index 925bbfa7..7946c5c1 100644 --- a/data/interfaces/default/history.html +++ b/data/interfaces/default/history.html @@ -45,6 +45,9 @@ Music +
+ +
@@ -53,7 +56,7 @@ Delete - Time + Date User IP Address Platform @@ -69,26 +72,29 @@ - - - + + +<%def name="modalIncludes()"> + + + - - + + % else: diff --git a/data/interfaces/default/home_stats.html b/data/interfaces/default/home_stats.html index 2ee6b72a..2d69a317 100644 --- a/data/interfaces/default/home_stats.html +++ b/data/interfaces/default/home_stats.html @@ -57,998 +57,179 @@ DOCUMENTATION :: END # Human readable duration def hd(seconds): - minutes = helpers.cast_to_float(seconds) / 60 - if minutes > 60: - hours = int(minutes / 60) - minutes = int(minutes % 60) - if minutes > 0: - return "

" + str(hours) + "

hrs

" + str(minutes) + "

mins

" - else: - return "

" + str(hours) + "

hrs

" - else: - return "

" + str(int(minutes)) + "

mins

" + m, s = divmod(helpers.cast_to_int(seconds), 60) + h, m = divmod(m, 60) + return str(h).zfill(1) + ':' + str(m).zfill(2) %> -% if data: - - % endif - + + - % elif top_stat['stat_id'] == 'popular_movies' and top_stat['rows']: -
-
  • -
    -
    -

    Most Popular Movie

    -
    -
    -

    - % if top_stat['rows'][0]['rating_key']: - - ${top_stat['rows'][0]['title']} - - % else: - ${top_stat['rows'][0]['title']} - % endif -

    -

    ${top_stat['rows'][0]['users_watched']}

    -

    users

    -
    -
    - % if top_stat['rows'][0]['rating_key']: - - % if top_stat['rows'][0]['thumb']: -
    -
    - % if _session['user_group'] == 'admin': - - % endif -
    - % else: -
    -
    -
    - % endif -
    - % else: -
    -
    -
    - % endif - % if len(top_stat['rows']) > 1: -
    - - % endif -
  • -
    - % elif top_stat['stat_id'] == 'top_music' and top_stat['rows']: -
    -
  • -
    -
    -

    Most Listened to Artist

    -
    -
    -

    - % if top_stat['rows'][0]['rating_key']: - - ${top_stat['rows'][0]['title']} - - % else: - ${top_stat['rows'][0]['title']} - % endif -

    - % if top_stat['stat_type'] == 'total_plays': -

    ${top_stat['rows'][0]['total_plays']}

    -

    plays

    - % else: - ${top_stat['rows'][0]['total_duration'] | hd} - % endif -
    -
    - % if top_stat['rows'][0]['rating_key']: - - % if top_stat['rows'][0]['grandparent_thumb']: -
    -
    - % if _session['user_group'] == 'admin': - - % endif -
    - % else: -
    -
    -
    - % endif -
    - % else: -
    -
    -
    - % endif - % if len(top_stat['rows']) > 1: -
    - - % endif -
  • -
    - % elif top_stat['stat_id'] == 'popular_music' and top_stat['rows']: -
    -
  • -
    -
    -

    Most Popular Artist

    -
    -
    -

    - % if top_stat['rows'][0]['rating_key']: - - ${top_stat['rows'][0]['title']} - - % else: - ${top_stat['rows'][0]['title']} - % endif -

    -

    ${top_stat['rows'][0]['users_watched']}

    -

    users

    -
    -
    - % if top_stat['rows'][0]['rating_key']: - - % if top_stat['rows'][0]['grandparent_thumb'] != '': -
    -
    - % if _session['user_group'] == 'admin': - - % endif -
    - % else: -
    -
    -
    - % endif -
    - % else: -
    -
    -
    - % endif - % if len(top_stat['rows']) > 1: -
    - - % endif -
  • -
    - % elif top_stat['stat_id'] == 'top_users' and top_stat['rows']: -
    -
  • -
    -
    -

    Most Active User

    -
    -
    -

    - % if top_stat['rows'][0]['user_id']: - - ${top_stat['rows'][0]['friendly_name']} - - % else: - ${top_stat['rows'][0]['friendly_name']} - % endif -

    - % if top_stat['stat_type'] == 'total_plays': -

    ${top_stat['rows'][0]['total_plays']}

    -

    plays

    - % else: - ${top_stat['rows'][0]['total_duration'] | hd} - % endif -
    -
    - % if top_stat['rows'][0]['user_id']: - - % endif - % if top_stat['rows'][0]['user_thumb'] != '': -
    -
    -
    - % else: -
    -
    -
    - % endif - % if top_stat['rows'][0]['user_id']: -
    - % endif - % if len(top_stat['rows']) > 1: -
    - - % endif -
  • -
    - % elif top_stat['stat_id'] == 'top_platforms' and top_stat['rows']: -
    -
  • -
    -
    -

    Most Active Platform

    -
    -
    -

    ${top_stat['rows'][0]['platform_type']}

    - % if top_stat['stat_type'] == 'total_plays': -

    ${top_stat['rows'][0]['total_plays']}

    -

    plays

    - % else: - ${top_stat['rows'][0]['total_duration'] | hd} - % endif -
    -
    -
    - -
    - % if len(top_stat['rows']) > 1: -
    -
      -
      -
      - % for row in top_stat['rows']: - % if loop.index > 0: -
    • -
      -
      -
      - ${top_stat['rows'][loop.index]['platform_type']} -
      -
      -
      - % if top_stat['stat_type'] == 'total_plays': -

      ${top_stat['rows'][loop.index]['total_plays']}

      -

      plays

      - % else: - ${top_stat['rows'][loop.index]['total_duration'] | hd} - % endif -
      -
      -
      - -
      -
      -

      ${loop.index + 1}

      -
      -
    • - % endif - % endfor -
      -
      -
    - % endif -
  • -
    - % elif top_stat['stat_id'] == 'last_watched' and top_stat['rows']: -
    -
  • -
    -
    -

    Last Watched

    -
    -
    -

    - % if top_stat['rows'][0]['rating_key']: - - ${top_stat['rows'][0]['title']} - - % else: - ${top_stat['rows'][0]['title']} - % endif -

    -
    - % if top_stat['rows'][0]['user_id']: - - ${top_stat['rows'][0]['friendly_name']} - - % else: - ${top_stat['rows'][0]['friendly_name']} - % endif -
    -

    - - - - ${top_stat['rows'][0]['player']} -

    -
    -
    - % if top_stat['rows'][0]['rating_key']: - - % if top_stat['rows'][0]['thumb']: -
    -
    - % if _session['user_group'] == 'admin': - - % endif -
    - % else: -
    -
    -
    - % endif -
    - % else: -
    -
    -
    - % endif - % if len(top_stat['rows']) > 1: -
    - - % endif -
  • -
    - % elif top_stat['stat_id'] == 'most_concurrent' and top_stat['rows']: -
    -
  • -
    -
    -

    Most Concurrent Streams

    -
    -
    -

    - - - -

    -

    ${top_stat['rows'][0]['count']}

    -

    streams

    -
    -
    -
    -
    -
    - % if len(top_stat['rows']) > 1: -
    -
      -
      -
      - % for row in top_stat['rows']: - % if loop.index > 0: -
    • -
      -
      -
      - ${top_stat['rows'][loop.index]['title']} -
      -
      -
      -

      ${top_stat['rows'][loop.index]['count']}

      -

      streams - % if top_stat['rows'][loop.index]['started']: - - - - - % else: - - N/A - % endif -

      -
      -
      -
      -
      -
      -
    • - % endif - % endfor -
      -
      -
    - % endif -
  • -
    - % endif - % endfor - % else: -
    No stats to show for the selected period.

    - % endif - + +% endif +% endfor % else: diff --git a/data/interfaces/default/images/en-play-badge.png b/data/interfaces/default/images/en-play-badge.png new file mode 100644 index 00000000..0c317c05 Binary files /dev/null and b/data/interfaces/default/images/en-play-badge.png differ diff --git a/data/interfaces/default/images/favicon.ico b/data/interfaces/default/images/favicon.ico deleted file mode 100644 index 588e8b03..00000000 Binary files a/data/interfaces/default/images/favicon.ico and /dev/null differ diff --git a/data/interfaces/default/images/favicon.png b/data/interfaces/default/images/favicon.png deleted file mode 100644 index 61031461..00000000 Binary files a/data/interfaces/default/images/favicon.png and /dev/null differ diff --git a/data/interfaces/default/images/favicon/android-chrome-192x192.png b/data/interfaces/default/images/favicon/android-chrome-192x192.png new file mode 100644 index 00000000..4048bde7 Binary files /dev/null and b/data/interfaces/default/images/favicon/android-chrome-192x192.png differ diff --git a/data/interfaces/default/images/favicon/android-chrome-256x256.png b/data/interfaces/default/images/favicon/android-chrome-256x256.png new file mode 100644 index 00000000..449f83ae Binary files /dev/null and b/data/interfaces/default/images/favicon/android-chrome-256x256.png differ diff --git a/data/interfaces/default/images/favicon/apple-touch-icon-120x120-precomposed.png b/data/interfaces/default/images/favicon/apple-touch-icon-120x120-precomposed.png new file mode 100644 index 00000000..8192c959 Binary files /dev/null and b/data/interfaces/default/images/favicon/apple-touch-icon-120x120-precomposed.png differ diff --git a/data/interfaces/default/images/favicon/apple-touch-icon-120x120.png b/data/interfaces/default/images/favicon/apple-touch-icon-120x120.png new file mode 100644 index 00000000..f7a401d6 Binary files /dev/null and b/data/interfaces/default/images/favicon/apple-touch-icon-120x120.png differ diff --git a/data/interfaces/default/images/favicon/apple-touch-icon-152x152-precomposed.png b/data/interfaces/default/images/favicon/apple-touch-icon-152x152-precomposed.png new file mode 100644 index 00000000..607d8554 Binary files /dev/null and b/data/interfaces/default/images/favicon/apple-touch-icon-152x152-precomposed.png differ diff --git a/data/interfaces/default/images/favicon/apple-touch-icon-152x152.png b/data/interfaces/default/images/favicon/apple-touch-icon-152x152.png new file mode 100644 index 00000000..577eeb60 Binary files /dev/null and b/data/interfaces/default/images/favicon/apple-touch-icon-152x152.png differ diff --git a/data/interfaces/default/images/favicon/apple-touch-icon-180x180-precomposed.png b/data/interfaces/default/images/favicon/apple-touch-icon-180x180-precomposed.png new file mode 100644 index 00000000..4da217e5 Binary files /dev/null and b/data/interfaces/default/images/favicon/apple-touch-icon-180x180-precomposed.png differ diff --git a/data/interfaces/default/images/favicon/apple-touch-icon-180x180.png b/data/interfaces/default/images/favicon/apple-touch-icon-180x180.png new file mode 100644 index 00000000..3e345d37 Binary files /dev/null and b/data/interfaces/default/images/favicon/apple-touch-icon-180x180.png differ diff --git a/data/interfaces/default/images/favicon/apple-touch-icon-60x60-precomposed.png b/data/interfaces/default/images/favicon/apple-touch-icon-60x60-precomposed.png new file mode 100644 index 00000000..a015bb3c Binary files /dev/null and b/data/interfaces/default/images/favicon/apple-touch-icon-60x60-precomposed.png differ diff --git a/data/interfaces/default/images/favicon/apple-touch-icon-60x60.png b/data/interfaces/default/images/favicon/apple-touch-icon-60x60.png new file mode 100644 index 00000000..70febe11 Binary files /dev/null and b/data/interfaces/default/images/favicon/apple-touch-icon-60x60.png differ diff --git a/data/interfaces/default/images/favicon/apple-touch-icon-76x76-precomposed.png b/data/interfaces/default/images/favicon/apple-touch-icon-76x76-precomposed.png new file mode 100644 index 00000000..44bb802b Binary files /dev/null and b/data/interfaces/default/images/favicon/apple-touch-icon-76x76-precomposed.png differ diff --git a/data/interfaces/default/images/favicon/apple-touch-icon-76x76.png b/data/interfaces/default/images/favicon/apple-touch-icon-76x76.png new file mode 100644 index 00000000..e56da2a5 Binary files /dev/null and b/data/interfaces/default/images/favicon/apple-touch-icon-76x76.png differ diff --git a/data/interfaces/default/images/favicon/apple-touch-icon-precomposed.png b/data/interfaces/default/images/favicon/apple-touch-icon-precomposed.png new file mode 100644 index 00000000..4da217e5 Binary files /dev/null and b/data/interfaces/default/images/favicon/apple-touch-icon-precomposed.png differ diff --git a/data/interfaces/default/images/favicon/apple-touch-icon.png b/data/interfaces/default/images/favicon/apple-touch-icon.png new file mode 100644 index 00000000..3e345d37 Binary files /dev/null and b/data/interfaces/default/images/favicon/apple-touch-icon.png differ diff --git a/data/interfaces/default/images/favicon/favicon-16x16.png b/data/interfaces/default/images/favicon/favicon-16x16.png new file mode 100644 index 00000000..eee6aabe Binary files /dev/null and b/data/interfaces/default/images/favicon/favicon-16x16.png differ diff --git a/data/interfaces/default/images/favicon/favicon-32x32.png b/data/interfaces/default/images/favicon/favicon-32x32.png new file mode 100644 index 00000000..e17b6b02 Binary files /dev/null and b/data/interfaces/default/images/favicon/favicon-32x32.png differ diff --git a/data/interfaces/default/images/favicon/favicon.ico b/data/interfaces/default/images/favicon/favicon.ico new file mode 100644 index 00000000..6ff1534c Binary files /dev/null and b/data/interfaces/default/images/favicon/favicon.ico differ diff --git a/data/interfaces/default/images/favicon/mstile-144x144.png b/data/interfaces/default/images/favicon/mstile-144x144.png new file mode 100644 index 00000000..bccb6ad8 Binary files /dev/null and b/data/interfaces/default/images/favicon/mstile-144x144.png differ diff --git a/data/interfaces/default/images/favicon/mstile-150x150.png b/data/interfaces/default/images/favicon/mstile-150x150.png new file mode 100644 index 00000000..9251aff1 Binary files /dev/null and b/data/interfaces/default/images/favicon/mstile-150x150.png differ diff --git a/data/interfaces/default/images/favicon/mstile-310x310.png b/data/interfaces/default/images/favicon/mstile-310x310.png new file mode 100644 index 00000000..814ef8c3 Binary files /dev/null and b/data/interfaces/default/images/favicon/mstile-310x310.png differ diff --git a/data/interfaces/default/images/favicon/mstile-70x70.png b/data/interfaces/default/images/favicon/mstile-70x70.png new file mode 100644 index 00000000..2d1609c6 Binary files /dev/null and b/data/interfaces/default/images/favicon/mstile-70x70.png differ diff --git a/data/interfaces/default/images/favicon/safari-pinned-tab.svg b/data/interfaces/default/images/favicon/safari-pinned-tab.svg new file mode 100644 index 00000000..ed2aeb8e --- /dev/null +++ b/data/interfaces/default/images/favicon/safari-pinned-tab.svg @@ -0,0 +1,70 @@ + + + + +Created by potrace 1.11, written by Peter Selinger 2001-2013 + + + + + + diff --git a/data/interfaces/default/images/home-stat_most-concurrent.png b/data/interfaces/default/images/home-stat_most-concurrent.png deleted file mode 100644 index 085dc93e..00000000 Binary files a/data/interfaces/default/images/home-stat_most-concurrent.png and /dev/null differ diff --git a/data/interfaces/default/images/icon_ipad.png b/data/interfaces/default/images/icon_ipad.png deleted file mode 100644 index f36c4294..00000000 Binary files a/data/interfaces/default/images/icon_ipad.png and /dev/null differ diff --git a/data/interfaces/default/images/icon_ipad@2x.png b/data/interfaces/default/images/icon_ipad@2x.png deleted file mode 100644 index eb62a0a8..00000000 Binary files a/data/interfaces/default/images/icon_ipad@2x.png and /dev/null differ diff --git a/data/interfaces/default/images/icon_iphone.png b/data/interfaces/default/images/icon_iphone.png deleted file mode 100644 index daafebfc..00000000 Binary files a/data/interfaces/default/images/icon_iphone.png and /dev/null differ diff --git a/data/interfaces/default/images/icon_iphone@2x.png b/data/interfaces/default/images/icon_iphone@2x.png deleted file mode 100644 index bed1c53e..00000000 Binary files a/data/interfaces/default/images/icon_iphone@2x.png and /dev/null differ diff --git a/data/interfaces/default/images/icons/most-concurrent-streams.svg b/data/interfaces/default/images/icons/most-concurrent-streams.svg new file mode 100644 index 00000000..64236b50 --- /dev/null +++ b/data/interfaces/default/images/icons/most-concurrent-streams.svg @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + diff --git a/data/interfaces/default/images/libraries/artist.svg b/data/interfaces/default/images/libraries/artist.svg new file mode 100644 index 00000000..b3bfa5b5 --- /dev/null +++ b/data/interfaces/default/images/libraries/artist.svg @@ -0,0 +1,5 @@ + + +artist + + diff --git a/data/interfaces/default/images/libraries/movie.svg b/data/interfaces/default/images/libraries/movie.svg new file mode 100644 index 00000000..6e1f1cf5 --- /dev/null +++ b/data/interfaces/default/images/libraries/movie.svg @@ -0,0 +1,5 @@ + + +movie + + diff --git a/data/interfaces/default/images/libraries/photo.svg b/data/interfaces/default/images/libraries/photo.svg new file mode 100644 index 00000000..2ceadc5d --- /dev/null +++ b/data/interfaces/default/images/libraries/photo.svg @@ -0,0 +1,6 @@ + + +photo + + + diff --git a/data/interfaces/default/images/libraries/playlist.svg b/data/interfaces/default/images/libraries/playlist.svg new file mode 100644 index 00000000..661793dd --- /dev/null +++ b/data/interfaces/default/images/libraries/playlist.svg @@ -0,0 +1,12 @@ + + +playlist + + + + + + + + + diff --git a/data/interfaces/default/images/libraries/show.svg b/data/interfaces/default/images/libraries/show.svg new file mode 100644 index 00000000..f4b6a4a0 --- /dev/null +++ b/data/interfaces/default/images/libraries/show.svg @@ -0,0 +1,6 @@ + + +show + + + diff --git a/data/interfaces/default/images/libraries/video.svg b/data/interfaces/default/images/libraries/video.svg new file mode 100644 index 00000000..4cee59b9 --- /dev/null +++ b/data/interfaces/default/images/libraries/video.svg @@ -0,0 +1,5 @@ + + +video + + diff --git a/data/interfaces/default/images/logo-plexpy.png b/data/interfaces/default/images/logo-plexpy.png deleted file mode 100644 index 1a40b62b..00000000 Binary files a/data/interfaces/default/images/logo-plexpy.png and /dev/null differ diff --git a/data/interfaces/default/images/logo-plexpy@2x.png b/data/interfaces/default/images/logo-plexpy@2x.png deleted file mode 100644 index e77316ca..00000000 Binary files a/data/interfaces/default/images/logo-plexpy@2x.png and /dev/null differ diff --git a/data/interfaces/default/images/logo-tautulli-50.png b/data/interfaces/default/images/logo-tautulli-50.png new file mode 100644 index 00000000..041122ff Binary files /dev/null and b/data/interfaces/default/images/logo-tautulli-50.png differ diff --git a/data/interfaces/default/images/logo-tautulli.png b/data/interfaces/default/images/logo-tautulli.png new file mode 100644 index 00000000..c659fd2c Binary files /dev/null and b/data/interfaces/default/images/logo-tautulli.png differ diff --git a/data/interfaces/default/images/logo.png b/data/interfaces/default/images/logo.png new file mode 100644 index 00000000..923f3f97 Binary files /dev/null and b/data/interfaces/default/images/logo.png differ diff --git a/data/interfaces/default/images/media_flags/audio_codec/dca-ma.png b/data/interfaces/default/images/media_flags/audio_codec/dca-ma.png index 69f9ba4f..7c12ccc7 100644 Binary files a/data/interfaces/default/images/media_flags/audio_codec/dca-ma.png and b/data/interfaces/default/images/media_flags/audio_codec/dca-ma.png differ diff --git a/data/interfaces/default/images/media_flags/studio/20th_century_fox_animation.png b/data/interfaces/default/images/media_flags/studio/20th_century_fox_animation.png new file mode 100644 index 00000000..28ee0aee Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/20th_century_fox_animation.png differ diff --git a/data/interfaces/default/images/media_flags/studio/a_1_pictures.png b/data/interfaces/default/images/media_flags/studio/a_1_pictures.png new file mode 100644 index 00000000..0fe5ea76 Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/a_1_pictures.png differ diff --git a/data/interfaces/default/images/media_flags/studio/abc.png b/data/interfaces/default/images/media_flags/studio/abc.png index a7f93853..0b3f3539 100644 Binary files a/data/interfaces/default/images/media_flags/studio/abc.png and b/data/interfaces/default/images/media_flags/studio/abc.png differ diff --git a/data/interfaces/default/images/media_flags/studio/aic.png b/data/interfaces/default/images/media_flags/studio/aic.png new file mode 100644 index 00000000..bef38d93 Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/aic.png differ diff --git a/data/interfaces/default/images/media_flags/studio/bleecker_street.png b/data/interfaces/default/images/media_flags/studio/bleecker_street.png new file mode 100644 index 00000000..29d1f6b1 Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/bleecker_street.png differ diff --git a/data/interfaces/default/images/media_flags/studio/blizzard_entertainment.png b/data/interfaces/default/images/media_flags/studio/blizzard_entertainment.png new file mode 100644 index 00000000..0fd98942 Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/blizzard_entertainment.png differ diff --git a/data/interfaces/default/images/media_flags/studio/blue_sky_studios.png b/data/interfaces/default/images/media_flags/studio/blue_sky_studios.png new file mode 100644 index 00000000..abc0d85b Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/blue_sky_studios.png differ diff --git a/data/interfaces/default/images/media_flags/studio/cbs.png b/data/interfaces/default/images/media_flags/studio/cbs.png index 0273a0cd..b75a7d41 100644 Binary files a/data/interfaces/default/images/media_flags/studio/cbs.png and b/data/interfaces/default/images/media_flags/studio/cbs.png differ diff --git a/data/interfaces/default/images/media_flags/studio/channel4.png b/data/interfaces/default/images/media_flags/studio/channel4.png index b2247ae2..fb5aa602 100644 Binary files a/data/interfaces/default/images/media_flags/studio/channel4.png and b/data/interfaces/default/images/media_flags/studio/channel4.png differ diff --git a/data/interfaces/default/images/media_flags/studio/channel5.png b/data/interfaces/default/images/media_flags/studio/channel5.png index e8276b0f..98118b9a 100644 Binary files a/data/interfaces/default/images/media_flags/studio/channel5.png and b/data/interfaces/default/images/media_flags/studio/channel5.png differ diff --git a/data/interfaces/default/images/media_flags/studio/chiller.png b/data/interfaces/default/images/media_flags/studio/chiller.png new file mode 100644 index 00000000..0cff8a88 Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/chiller.png differ diff --git a/data/interfaces/default/images/media_flags/studio/dave.png b/data/interfaces/default/images/media_flags/studio/dave.png new file mode 100644 index 00000000..52c7775c Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/dave.png differ diff --git a/data/interfaces/default/images/media_flags/studio/dc.png b/data/interfaces/default/images/media_flags/studio/dc.png index 751360aa..5a5871a8 100644 Binary files a/data/interfaces/default/images/media_flags/studio/dc.png and b/data/interfaces/default/images/media_flags/studio/dc.png differ diff --git a/data/interfaces/default/images/media_flags/studio/defa.png b/data/interfaces/default/images/media_flags/studio/defa.png new file mode 100644 index 00000000..9709cc1d Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/defa.png differ diff --git a/data/interfaces/default/images/media_flags/studio/dreamworks.png b/data/interfaces/default/images/media_flags/studio/dreamworks.png index f5ab04fb..808ffbd0 100644 Binary files a/data/interfaces/default/images/media_flags/studio/dreamworks.png and b/data/interfaces/default/images/media_flags/studio/dreamworks.png differ diff --git a/data/interfaces/default/images/media_flags/studio/dreamworks_animation.png b/data/interfaces/default/images/media_flags/studio/dreamworks_animation.png new file mode 100644 index 00000000..2f4c764d Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/dreamworks_animation.png differ diff --git a/data/interfaces/default/images/media_flags/studio/emi.png b/data/interfaces/default/images/media_flags/studio/emi.png new file mode 100644 index 00000000..339283ff Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/emi.png differ diff --git a/data/interfaces/default/images/media_flags/studio/epix.png b/data/interfaces/default/images/media_flags/studio/epix.png new file mode 100644 index 00000000..b92eca69 Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/epix.png differ diff --git a/data/interfaces/default/images/media_flags/studio/freeform.png b/data/interfaces/default/images/media_flags/studio/freeform.png new file mode 100644 index 00000000..1fbd6f91 Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/freeform.png differ diff --git a/data/interfaces/default/images/media_flags/studio/head_gear_films.png b/data/interfaces/default/images/media_flags/studio/head_gear_films.png new file mode 100644 index 00000000..67fde5fb Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/head_gear_films.png differ diff --git a/data/interfaces/default/images/media_flags/studio/konami.png b/data/interfaces/default/images/media_flags/studio/konami.png new file mode 100644 index 00000000..054d320e Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/konami.png differ diff --git a/data/interfaces/default/images/media_flags/studio/kyoto_animation.png b/data/interfaces/default/images/media_flags/studio/kyoto_animation.png new file mode 100644 index 00000000..637621b4 Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/kyoto_animation.png differ diff --git a/data/interfaces/default/images/media_flags/studio/lego.png b/data/interfaces/default/images/media_flags/studio/lego.png new file mode 100644 index 00000000..0f695471 Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/lego.png differ diff --git a/data/interfaces/default/images/media_flags/studio/madhouse.png b/data/interfaces/default/images/media_flags/studio/madhouse.png new file mode 100644 index 00000000..262032e4 Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/madhouse.png differ diff --git a/data/interfaces/default/images/media_flags/studio/oprah_winfrey_network.png b/data/interfaces/default/images/media_flags/studio/oprah_winfrey_network.png new file mode 100644 index 00000000..fdac122d Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/oprah_winfrey_network.png differ diff --git a/data/interfaces/default/images/media_flags/studio/pa_works.png b/data/interfaces/default/images/media_flags/studio/pa_works.png new file mode 100644 index 00000000..866e807d Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/pa_works.png differ diff --git a/data/interfaces/default/images/media_flags/studio/pop.png b/data/interfaces/default/images/media_flags/studio/pop.png new file mode 100644 index 00000000..24b4802a Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/pop.png differ diff --git a/data/interfaces/default/images/media_flags/studio/production_i_g.png b/data/interfaces/default/images/media_flags/studio/production_i_g.png new file mode 100644 index 00000000..e3622cb1 Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/production_i_g.png differ diff --git a/data/interfaces/default/images/media_flags/studio/rko_radio_pictures.png b/data/interfaces/default/images/media_flags/studio/rko_radio_pictures.png new file mode 100644 index 00000000..bf1382e7 Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/rko_radio_pictures.png differ diff --git a/data/interfaces/default/images/media_flags/studio/rte_one.png b/data/interfaces/default/images/media_flags/studio/rte_one.png new file mode 100644 index 00000000..d1e6403f Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/rte_one.png differ diff --git a/data/interfaces/default/images/media_flags/studio/rtl5.png b/data/interfaces/default/images/media_flags/studio/rtl5.png index c0ae9677..f9b208be 100644 Binary files a/data/interfaces/default/images/media_flags/studio/rtl5.png and b/data/interfaces/default/images/media_flags/studio/rtl5.png differ diff --git a/data/interfaces/default/images/media_flags/studio/rtl8.png b/data/interfaces/default/images/media_flags/studio/rtl8.png index b9d1b1f6..99bf9b29 100644 Binary files a/data/interfaces/default/images/media_flags/studio/rtl8.png and b/data/interfaces/default/images/media_flags/studio/rtl8.png differ diff --git a/data/interfaces/default/images/media_flags/studio/scholastic.png b/data/interfaces/default/images/media_flags/studio/scholastic.png new file mode 100644 index 00000000..a4b050ef Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/scholastic.png differ diff --git a/data/interfaces/default/images/media_flags/studio/seeso.png b/data/interfaces/default/images/media_flags/studio/seeso.png new file mode 100644 index 00000000..e4ca56d5 Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/seeso.png differ diff --git a/data/interfaces/default/images/media_flags/studio/shaft.png b/data/interfaces/default/images/media_flags/studio/shaft.png new file mode 100644 index 00000000..fa782c62 Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/shaft.png differ diff --git a/data/interfaces/default/images/media_flags/studio/showcase_au.png b/data/interfaces/default/images/media_flags/studio/showcase_au.png new file mode 100644 index 00000000..8ada90e8 Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/showcase_au.png differ diff --git a/data/interfaces/default/images/media_flags/studio/sony_pictures.png b/data/interfaces/default/images/media_flags/studio/sony_pictures.png new file mode 100644 index 00000000..b58aabae Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/sony_pictures.png differ diff --git a/data/interfaces/default/images/media_flags/studio/sony_pictures_animation.png b/data/interfaces/default/images/media_flags/studio/sony_pictures_animation.png new file mode 100644 index 00000000..a8c732cc Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/sony_pictures_animation.png differ diff --git a/data/interfaces/default/images/media_flags/studio/stan.png b/data/interfaces/default/images/media_flags/studio/stan.png new file mode 100644 index 00000000..6e229e52 Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/stan.png differ diff --git a/data/interfaces/default/images/media_flags/studio/starz.png b/data/interfaces/default/images/media_flags/studio/starz.png index 84a5c3e3..1737ceac 100644 Binary files a/data/interfaces/default/images/media_flags/studio/starz.png and b/data/interfaces/default/images/media_flags/studio/starz.png differ diff --git a/data/interfaces/default/images/media_flags/studio/sunrise.png b/data/interfaces/default/images/media_flags/studio/sunrise.png new file mode 100644 index 00000000..ebbd9cc7 Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/sunrise.png differ diff --git a/data/interfaces/default/images/media_flags/studio/svt.png b/data/interfaces/default/images/media_flags/studio/svt.png index 63b085ce..fa10d579 100644 Binary files a/data/interfaces/default/images/media_flags/studio/svt.png and b/data/interfaces/default/images/media_flags/studio/svt.png differ diff --git a/data/interfaces/default/images/media_flags/studio/tbs.png b/data/interfaces/default/images/media_flags/studio/tbs.png index 0c70c573..74209c52 100644 Binary files a/data/interfaces/default/images/media_flags/studio/tbs.png and b/data/interfaces/default/images/media_flags/studio/tbs.png differ diff --git a/data/interfaces/default/images/media_flags/studio/twit.png b/data/interfaces/default/images/media_flags/studio/twit.png new file mode 100644 index 00000000..41297a91 Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/twit.png differ diff --git a/data/interfaces/default/images/media_flags/studio/up_tv.png b/data/interfaces/default/images/media_flags/studio/up_tv.png index 3f44ce9a..9ad6c0b1 100644 Binary files a/data/interfaces/default/images/media_flags/studio/up_tv.png and b/data/interfaces/default/images/media_flags/studio/up_tv.png differ diff --git a/data/interfaces/default/images/media_flags/studio/vimeo.png b/data/interfaces/default/images/media_flags/studio/vimeo.png new file mode 100644 index 00000000..77a586f9 Binary files /dev/null and b/data/interfaces/default/images/media_flags/studio/vimeo.png differ diff --git a/data/interfaces/default/images/platforms/android.png b/data/interfaces/default/images/platforms/android.png deleted file mode 100644 index b7101285..00000000 Binary files a/data/interfaces/default/images/platforms/android.png and /dev/null differ diff --git a/data/interfaces/default/images/platforms/android.svg b/data/interfaces/default/images/platforms/android.svg new file mode 100644 index 00000000..d1e248d6 --- /dev/null +++ b/data/interfaces/default/images/platforms/android.svg @@ -0,0 +1,8 @@ + + +android + + + + + diff --git a/data/interfaces/default/images/platforms/atv.png b/data/interfaces/default/images/platforms/atv.png deleted file mode 100644 index fe9eab46..00000000 Binary files a/data/interfaces/default/images/platforms/atv.png and /dev/null differ diff --git a/data/interfaces/default/images/platforms/atv.svg b/data/interfaces/default/images/platforms/atv.svg new file mode 100644 index 00000000..72b334df --- /dev/null +++ b/data/interfaces/default/images/platforms/atv.svg @@ -0,0 +1,8 @@ + + +atv + + + + + diff --git a/data/interfaces/default/images/platforms/chrome.png b/data/interfaces/default/images/platforms/chrome.png deleted file mode 100644 index 1fad4145..00000000 Binary files a/data/interfaces/default/images/platforms/chrome.png and /dev/null differ diff --git a/data/interfaces/default/images/platforms/chrome.svg b/data/interfaces/default/images/platforms/chrome.svg new file mode 100644 index 00000000..75178524 --- /dev/null +++ b/data/interfaces/default/images/platforms/chrome.svg @@ -0,0 +1,8 @@ + + +chrome + + + + + diff --git a/data/interfaces/default/images/platforms/chromecast.png b/data/interfaces/default/images/platforms/chromecast.png deleted file mode 100644 index 5c41d3bc..00000000 Binary files a/data/interfaces/default/images/platforms/chromecast.png and /dev/null differ diff --git a/data/interfaces/default/images/platforms/chromecast.svg b/data/interfaces/default/images/platforms/chromecast.svg new file mode 100644 index 00000000..384d14d3 --- /dev/null +++ b/data/interfaces/default/images/platforms/chromecast.svg @@ -0,0 +1,8 @@ + + +chromecast + + + + + diff --git a/data/interfaces/default/images/platforms/cloudsync.png b/data/interfaces/default/images/platforms/cloudsync.png deleted file mode 100644 index 6ecbbad9..00000000 Binary files a/data/interfaces/default/images/platforms/cloudsync.png and /dev/null differ diff --git a/data/interfaces/default/images/platforms/cloudsync.svg b/data/interfaces/default/images/platforms/cloudsync.svg new file mode 100644 index 00000000..77e3f796 --- /dev/null +++ b/data/interfaces/default/images/platforms/cloudsync.svg @@ -0,0 +1,6 @@ + + +cloudsync + + + diff --git a/data/interfaces/default/images/platforms/default.png b/data/interfaces/default/images/platforms/default.png deleted file mode 100644 index 2adb6dd2..00000000 Binary files a/data/interfaces/default/images/platforms/default.png and /dev/null differ diff --git a/data/interfaces/default/images/platforms/default.svg b/data/interfaces/default/images/platforms/default.svg new file mode 100644 index 00000000..16ab26ac --- /dev/null +++ b/data/interfaces/default/images/platforms/default.svg @@ -0,0 +1,5 @@ + + +plex + + diff --git a/data/interfaces/default/images/platforms/dlna.png b/data/interfaces/default/images/platforms/dlna.png deleted file mode 100644 index f9ea08ab..00000000 Binary files a/data/interfaces/default/images/platforms/dlna.png and /dev/null differ diff --git a/data/interfaces/default/images/platforms/dlna.svg b/data/interfaces/default/images/platforms/dlna.svg new file mode 100644 index 00000000..04cc4707 --- /dev/null +++ b/data/interfaces/default/images/platforms/dlna.svg @@ -0,0 +1,5 @@ + + +dlna + + diff --git a/data/interfaces/default/images/platforms/firefox.png b/data/interfaces/default/images/platforms/firefox.png deleted file mode 100644 index b9428b36..00000000 Binary files a/data/interfaces/default/images/platforms/firefox.png and /dev/null differ diff --git a/data/interfaces/default/images/platforms/firefox.svg b/data/interfaces/default/images/platforms/firefox.svg new file mode 100644 index 00000000..45e8f7cf --- /dev/null +++ b/data/interfaces/default/images/platforms/firefox.svg @@ -0,0 +1,5 @@ + + +firefox + + diff --git a/data/interfaces/default/images/platforms/gtv.png b/data/interfaces/default/images/platforms/gtv.png deleted file mode 100644 index f001ff81..00000000 Binary files a/data/interfaces/default/images/platforms/gtv.png and /dev/null differ diff --git a/data/interfaces/default/images/platforms/gtv.svg b/data/interfaces/default/images/platforms/gtv.svg new file mode 100644 index 00000000..83675a13 --- /dev/null +++ b/data/interfaces/default/images/platforms/gtv.svg @@ -0,0 +1,14 @@ + + +gtv + + + + + + + + + + + diff --git a/data/interfaces/default/images/platforms/ie.png b/data/interfaces/default/images/platforms/ie.png deleted file mode 100644 index 506a18b6..00000000 Binary files a/data/interfaces/default/images/platforms/ie.png and /dev/null differ diff --git a/data/interfaces/default/images/platforms/ie.svg b/data/interfaces/default/images/platforms/ie.svg new file mode 100644 index 00000000..0423a884 --- /dev/null +++ b/data/interfaces/default/images/platforms/ie.svg @@ -0,0 +1,5 @@ + + +ie + + diff --git a/data/interfaces/default/images/platforms/ios.png b/data/interfaces/default/images/platforms/ios.png deleted file mode 100644 index 819d2f50..00000000 Binary files a/data/interfaces/default/images/platforms/ios.png and /dev/null differ diff --git a/data/interfaces/default/images/platforms/ios.svg b/data/interfaces/default/images/platforms/ios.svg new file mode 100644 index 00000000..6892d3db --- /dev/null +++ b/data/interfaces/default/images/platforms/ios.svg @@ -0,0 +1,10 @@ + + +ios + + + + + + + diff --git a/data/interfaces/default/images/platforms/kodi.png b/data/interfaces/default/images/platforms/kodi.png deleted file mode 100644 index 282e09b9..00000000 Binary files a/data/interfaces/default/images/platforms/kodi.png and /dev/null differ diff --git a/data/interfaces/default/images/platforms/kodi.svg b/data/interfaces/default/images/platforms/kodi.svg new file mode 100644 index 00000000..ba3e180c --- /dev/null +++ b/data/interfaces/default/images/platforms/kodi.svg @@ -0,0 +1,8 @@ + + +kodi + + + + + diff --git a/data/interfaces/default/images/platforms/linux.png b/data/interfaces/default/images/platforms/linux.png deleted file mode 100644 index 338c40a3..00000000 Binary files a/data/interfaces/default/images/platforms/linux.png and /dev/null differ diff --git a/data/interfaces/default/images/platforms/linux.svg b/data/interfaces/default/images/platforms/linux.svg new file mode 100644 index 00000000..d084d9fd --- /dev/null +++ b/data/interfaces/default/images/platforms/linux.svg @@ -0,0 +1,8 @@ + + +linux + + + + + diff --git a/data/interfaces/default/images/platforms/macOS.svg b/data/interfaces/default/images/platforms/macOS.svg new file mode 100644 index 00000000..5579fcb5 --- /dev/null +++ b/data/interfaces/default/images/platforms/macOS.svg @@ -0,0 +1,6 @@ + + +macOS + + + diff --git a/data/interfaces/default/images/platforms/msedge.png b/data/interfaces/default/images/platforms/msedge.png deleted file mode 100644 index 3aa8dd02..00000000 Binary files a/data/interfaces/default/images/platforms/msedge.png and /dev/null differ diff --git a/data/interfaces/default/images/platforms/msedge.svg b/data/interfaces/default/images/platforms/msedge.svg new file mode 100644 index 00000000..6d835163 --- /dev/null +++ b/data/interfaces/default/images/platforms/msedge.svg @@ -0,0 +1,5 @@ + + +msedge + + diff --git a/data/interfaces/default/images/platforms/opera.png b/data/interfaces/default/images/platforms/opera.png deleted file mode 100644 index a7990fe8..00000000 Binary files a/data/interfaces/default/images/platforms/opera.png and /dev/null differ diff --git a/data/interfaces/default/images/platforms/opera.svg b/data/interfaces/default/images/platforms/opera.svg new file mode 100644 index 00000000..8cb68341 --- /dev/null +++ b/data/interfaces/default/images/platforms/opera.svg @@ -0,0 +1,6 @@ + + +opera + + + diff --git a/data/interfaces/default/images/platforms/osx.png b/data/interfaces/default/images/platforms/osx.png deleted file mode 100644 index 81003657..00000000 Binary files a/data/interfaces/default/images/platforms/osx.png and /dev/null differ diff --git a/data/interfaces/default/images/platforms/pht.png b/data/interfaces/default/images/platforms/pht.png deleted file mode 100644 index 33e0d3a2..00000000 Binary files a/data/interfaces/default/images/platforms/pht.png and /dev/null differ diff --git a/data/interfaces/default/images/platforms/playstation.png b/data/interfaces/default/images/platforms/playstation.png deleted file mode 100644 index c6a7fb0b..00000000 Binary files a/data/interfaces/default/images/platforms/playstation.png and /dev/null differ diff --git a/data/interfaces/default/images/platforms/playstation.svg b/data/interfaces/default/images/platforms/playstation.svg new file mode 100644 index 00000000..0a948c1b --- /dev/null +++ b/data/interfaces/default/images/platforms/playstation.svg @@ -0,0 +1,7 @@ + + +playstation + + + + diff --git a/data/interfaces/default/images/platforms/plex.svg b/data/interfaces/default/images/platforms/plex.svg new file mode 100644 index 00000000..16ab26ac --- /dev/null +++ b/data/interfaces/default/images/platforms/plex.svg @@ -0,0 +1,5 @@ + + +plex + + diff --git a/data/interfaces/default/images/platforms/plexamp.svg b/data/interfaces/default/images/platforms/plexamp.svg new file mode 100644 index 00000000..2ff2ee5e --- /dev/null +++ b/data/interfaces/default/images/platforms/plexamp.svg @@ -0,0 +1,5 @@ + + +plexamp + + diff --git a/data/interfaces/default/images/platforms/plextogether.png b/data/interfaces/default/images/platforms/plextogether.png deleted file mode 100644 index f21a81b8..00000000 Binary files a/data/interfaces/default/images/platforms/plextogether.png and /dev/null differ diff --git a/data/interfaces/default/images/platforms/pmh.png b/data/interfaces/default/images/platforms/pmh.png deleted file mode 100644 index 5ad5148e..00000000 Binary files a/data/interfaces/default/images/platforms/pmh.png and /dev/null differ diff --git a/data/interfaces/default/images/platforms/pmp.png b/data/interfaces/default/images/platforms/pmp.png deleted file mode 100644 index 36a48039..00000000 Binary files a/data/interfaces/default/images/platforms/pmp.png and /dev/null differ diff --git a/data/interfaces/default/images/platforms/pms.png b/data/interfaces/default/images/platforms/pms.png deleted file mode 100644 index 5ad5148e..00000000 Binary files a/data/interfaces/default/images/platforms/pms.png and /dev/null differ diff --git a/data/interfaces/default/images/platforms/roku.png b/data/interfaces/default/images/platforms/roku.png deleted file mode 100644 index 61eeaaf1..00000000 Binary files a/data/interfaces/default/images/platforms/roku.png and /dev/null differ diff --git a/data/interfaces/default/images/platforms/roku.svg b/data/interfaces/default/images/platforms/roku.svg new file mode 100644 index 00000000..1bbe8c17 --- /dev/null +++ b/data/interfaces/default/images/platforms/roku.svg @@ -0,0 +1,7 @@ + + +roku + + + + diff --git a/data/interfaces/default/images/platforms/safari.png b/data/interfaces/default/images/platforms/safari.png deleted file mode 100644 index be13b149..00000000 Binary files a/data/interfaces/default/images/platforms/safari.png and /dev/null differ diff --git a/data/interfaces/default/images/platforms/safari.svg b/data/interfaces/default/images/platforms/safari.svg new file mode 100644 index 00000000..93722050 --- /dev/null +++ b/data/interfaces/default/images/platforms/safari.svg @@ -0,0 +1,66 @@ + + +safari + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/data/interfaces/default/images/platforms/samsung.png b/data/interfaces/default/images/platforms/samsung.png deleted file mode 100644 index f5c68f1d..00000000 Binary files a/data/interfaces/default/images/platforms/samsung.png and /dev/null differ diff --git a/data/interfaces/default/images/platforms/samsung.svg b/data/interfaces/default/images/platforms/samsung.svg new file mode 100644 index 00000000..bbd4d25e --- /dev/null +++ b/data/interfaces/default/images/platforms/samsung.svg @@ -0,0 +1,5 @@ + + +samsung + + diff --git a/data/interfaces/default/images/platforms/synclounge.svg b/data/interfaces/default/images/platforms/synclounge.svg new file mode 100644 index 00000000..8c45d8a2 --- /dev/null +++ b/data/interfaces/default/images/platforms/synclounge.svg @@ -0,0 +1,9 @@ + + +synclounge + + + + + + diff --git a/data/interfaces/default/images/platforms/tivo.svg b/data/interfaces/default/images/platforms/tivo.svg new file mode 100644 index 00000000..841d50d3 --- /dev/null +++ b/data/interfaces/default/images/platforms/tivo.svg @@ -0,0 +1,5 @@ + + +tivo + + diff --git a/data/interfaces/default/images/platforms/wiiu.png b/data/interfaces/default/images/platforms/wiiu.png deleted file mode 100644 index 20ca3d6a..00000000 Binary files a/data/interfaces/default/images/platforms/wiiu.png and /dev/null differ diff --git a/data/interfaces/default/images/platforms/wiiu.svg b/data/interfaces/default/images/platforms/wiiu.svg new file mode 100644 index 00000000..20dafbca --- /dev/null +++ b/data/interfaces/default/images/platforms/wiiu.svg @@ -0,0 +1,6 @@ + + +wiiu + + + diff --git a/data/interfaces/default/images/platforms/win8.png b/data/interfaces/default/images/platforms/win8.png deleted file mode 100644 index 9f872936..00000000 Binary files a/data/interfaces/default/images/platforms/win8.png and /dev/null differ diff --git a/data/interfaces/default/images/platforms/windows.svg b/data/interfaces/default/images/platforms/windows.svg new file mode 100644 index 00000000..333f2557 --- /dev/null +++ b/data/interfaces/default/images/platforms/windows.svg @@ -0,0 +1,8 @@ + + +windows + + + + + diff --git a/data/interfaces/default/images/platforms/wp.png b/data/interfaces/default/images/platforms/wp.png deleted file mode 100644 index 78a78cb6..00000000 Binary files a/data/interfaces/default/images/platforms/wp.png and /dev/null differ diff --git a/data/interfaces/default/images/platforms/xbmc.png b/data/interfaces/default/images/platforms/xbmc.png deleted file mode 100644 index d9b639b7..00000000 Binary files a/data/interfaces/default/images/platforms/xbmc.png and /dev/null differ diff --git a/data/interfaces/default/images/platforms/xbox.png b/data/interfaces/default/images/platforms/xbox.png deleted file mode 100644 index 45ba5107..00000000 Binary files a/data/interfaces/default/images/platforms/xbox.png and /dev/null differ diff --git a/data/interfaces/default/images/platforms/xbox.svg b/data/interfaces/default/images/platforms/xbox.svg new file mode 100644 index 00000000..86179a61 --- /dev/null +++ b/data/interfaces/default/images/platforms/xbox.svg @@ -0,0 +1,8 @@ + + +xbox + + + + + diff --git a/data/interfaces/default/images/res/android/icon-192x192.png b/data/interfaces/default/images/res/android/icon-192x192.png deleted file mode 100644 index d9463138..00000000 Binary files a/data/interfaces/default/images/res/android/icon-192x192.png and /dev/null differ diff --git a/data/interfaces/default/images/res/android/icon-256x256.png b/data/interfaces/default/images/res/android/icon-256x256.png deleted file mode 100644 index 499bef58..00000000 Binary files a/data/interfaces/default/images/res/android/icon-256x256.png and /dev/null differ diff --git a/data/interfaces/default/images/res/android/icon-384x384.png b/data/interfaces/default/images/res/android/icon-384x384.png deleted file mode 100644 index 56c24f5a..00000000 Binary files a/data/interfaces/default/images/res/android/icon-384x384.png and /dev/null differ diff --git a/data/interfaces/default/images/res/android/icon-512x512.png b/data/interfaces/default/images/res/android/icon-512x512.png deleted file mode 100644 index 8f048387..00000000 Binary files a/data/interfaces/default/images/res/android/icon-512x512.png and /dev/null differ diff --git a/data/interfaces/default/images/res/ie10/large.png b/data/interfaces/default/images/res/ie10/large.png deleted file mode 100644 index f0940edf..00000000 Binary files a/data/interfaces/default/images/res/ie10/large.png and /dev/null differ diff --git a/data/interfaces/default/images/res/ie10/square.png b/data/interfaces/default/images/res/ie10/square.png deleted file mode 100644 index 52f146eb..00000000 Binary files a/data/interfaces/default/images/res/ie10/square.png and /dev/null differ diff --git a/data/interfaces/default/images/res/ie10/tiny.png b/data/interfaces/default/images/res/ie10/tiny.png deleted file mode 100644 index 0103c427..00000000 Binary files a/data/interfaces/default/images/res/ie10/tiny.png and /dev/null differ diff --git a/data/interfaces/default/images/res/ie10/wide.png b/data/interfaces/default/images/res/ie10/wide.png deleted file mode 100644 index 4be86153..00000000 Binary files a/data/interfaces/default/images/res/ie10/wide.png and /dev/null differ diff --git a/data/interfaces/default/images/res/ios/Default-667h.png b/data/interfaces/default/images/res/ios/Default-667h.png deleted file mode 100644 index da7d5b3c..00000000 Binary files a/data/interfaces/default/images/res/ios/Default-667h.png and /dev/null differ diff --git a/data/interfaces/default/images/res/ios/Default-736h.png b/data/interfaces/default/images/res/ios/Default-736h.png deleted file mode 100644 index a3b079d5..00000000 Binary files a/data/interfaces/default/images/res/ios/Default-736h.png and /dev/null differ diff --git a/data/interfaces/default/images/res/ios/Default-Landscape-736h.png b/data/interfaces/default/images/res/ios/Default-Landscape-736h.png deleted file mode 100644 index bd69001c..00000000 Binary files a/data/interfaces/default/images/res/ios/Default-Landscape-736h.png and /dev/null differ diff --git a/data/interfaces/default/images/res/ios/Default-Landscape@2x~ipad.png b/data/interfaces/default/images/res/ios/Default-Landscape@2x~ipad.png deleted file mode 100644 index 6616eeb5..00000000 Binary files a/data/interfaces/default/images/res/ios/Default-Landscape@2x~ipad.png and /dev/null differ diff --git a/data/interfaces/default/images/res/ios/Default-Landscape~ipad.png b/data/interfaces/default/images/res/ios/Default-Landscape~ipad.png deleted file mode 100644 index 627cdc8b..00000000 Binary files a/data/interfaces/default/images/res/ios/Default-Landscape~ipad.png and /dev/null differ diff --git a/data/interfaces/default/images/res/ios/Default-Portrait@2x~ipad.png b/data/interfaces/default/images/res/ios/Default-Portrait@2x~ipad.png deleted file mode 100644 index 530bc6e9..00000000 Binary files a/data/interfaces/default/images/res/ios/Default-Portrait@2x~ipad.png and /dev/null differ diff --git a/data/interfaces/default/images/res/ios/Default-Portrait~ipad.png b/data/interfaces/default/images/res/ios/Default-Portrait~ipad.png deleted file mode 100644 index ddf0b216..00000000 Binary files a/data/interfaces/default/images/res/ios/Default-Portrait~ipad.png and /dev/null differ diff --git a/data/interfaces/default/images/res/ios/Default@2x~iphone.png b/data/interfaces/default/images/res/ios/Default@2x~iphone.png deleted file mode 100644 index e7fe4cdb..00000000 Binary files a/data/interfaces/default/images/res/ios/Default@2x~iphone.png and /dev/null differ diff --git a/data/interfaces/default/images/res/ios/Default~iphone.png b/data/interfaces/default/images/res/ios/Default~iphone.png deleted file mode 100644 index c9f48448..00000000 Binary files a/data/interfaces/default/images/res/ios/Default~iphone.png and /dev/null differ diff --git a/data/interfaces/default/images/res/ios/icon-60.png b/data/interfaces/default/images/res/ios/icon-60.png deleted file mode 100644 index 8b4c1fad..00000000 Binary files a/data/interfaces/default/images/res/ios/icon-60.png and /dev/null differ diff --git a/data/interfaces/default/images/res/ios/icon-60@2x.png b/data/interfaces/default/images/res/ios/icon-60@2x.png deleted file mode 100644 index 5f7c5451..00000000 Binary files a/data/interfaces/default/images/res/ios/icon-60@2x.png and /dev/null differ diff --git a/data/interfaces/default/images/res/ios/icon-60@3x.png b/data/interfaces/default/images/res/ios/icon-60@3x.png deleted file mode 100644 index 64ec3b45..00000000 Binary files a/data/interfaces/default/images/res/ios/icon-60@3x.png and /dev/null differ diff --git a/data/interfaces/default/images/res/ios/icon-72.png b/data/interfaces/default/images/res/ios/icon-72.png deleted file mode 100644 index 2f645678..00000000 Binary files a/data/interfaces/default/images/res/ios/icon-72.png and /dev/null differ diff --git a/data/interfaces/default/images/res/ios/icon-72@2x.png b/data/interfaces/default/images/res/ios/icon-72@2x.png deleted file mode 100644 index d706894d..00000000 Binary files a/data/interfaces/default/images/res/ios/icon-72@2x.png and /dev/null differ diff --git a/data/interfaces/default/images/res/ios/icon-76.png b/data/interfaces/default/images/res/ios/icon-76.png deleted file mode 100644 index 7c16c8d3..00000000 Binary files a/data/interfaces/default/images/res/ios/icon-76.png and /dev/null differ diff --git a/data/interfaces/default/images/res/ios/icon-76@2x.png b/data/interfaces/default/images/res/ios/icon-76@2x.png deleted file mode 100644 index cfce1370..00000000 Binary files a/data/interfaces/default/images/res/ios/icon-76@2x.png and /dev/null differ diff --git a/data/interfaces/default/images/res/ios/icon-small-40.png b/data/interfaces/default/images/res/ios/icon-small-40.png deleted file mode 100644 index a7853107..00000000 Binary files a/data/interfaces/default/images/res/ios/icon-small-40.png and /dev/null differ diff --git a/data/interfaces/default/images/res/ios/icon-small-40@2x.png b/data/interfaces/default/images/res/ios/icon-small-40@2x.png deleted file mode 100644 index cfbaf869..00000000 Binary files a/data/interfaces/default/images/res/ios/icon-small-40@2x.png and /dev/null differ diff --git a/data/interfaces/default/images/res/ios/icon-small-50.png b/data/interfaces/default/images/res/ios/icon-small-50.png deleted file mode 100644 index d8722429..00000000 Binary files a/data/interfaces/default/images/res/ios/icon-small-50.png and /dev/null differ diff --git a/data/interfaces/default/images/res/ios/icon-small-50@2x.png b/data/interfaces/default/images/res/ios/icon-small-50@2x.png deleted file mode 100644 index 0c21aac5..00000000 Binary files a/data/interfaces/default/images/res/ios/icon-small-50@2x.png and /dev/null differ diff --git a/data/interfaces/default/images/res/ios/icon-small.png b/data/interfaces/default/images/res/ios/icon-small.png deleted file mode 100644 index 1dde4359..00000000 Binary files a/data/interfaces/default/images/res/ios/icon-small.png and /dev/null differ diff --git a/data/interfaces/default/images/res/ios/icon-small@2x.png b/data/interfaces/default/images/res/ios/icon-small@2x.png deleted file mode 100644 index 00e27ca4..00000000 Binary files a/data/interfaces/default/images/res/ios/icon-small@2x.png and /dev/null differ diff --git a/data/interfaces/default/images/res/ios/icon.png b/data/interfaces/default/images/res/ios/icon.png deleted file mode 100644 index bbe81708..00000000 Binary files a/data/interfaces/default/images/res/ios/icon.png and /dev/null differ diff --git a/data/interfaces/default/images/res/ios/icon@2x.png b/data/interfaces/default/images/res/ios/icon@2x.png deleted file mode 100644 index 39bc448a..00000000 Binary files a/data/interfaces/default/images/res/ios/icon@2x.png and /dev/null differ diff --git a/data/interfaces/default/images/tautulli.png b/data/interfaces/default/images/tautulli.png new file mode 100644 index 00000000..3d707c33 Binary files /dev/null and b/data/interfaces/default/images/tautulli.png differ diff --git a/data/interfaces/default/index.html b/data/interfaces/default/index.html index 7724ed62..6639adbd 100644 --- a/data/interfaces/default/index.html +++ b/data/interfaces/default/index.html @@ -1,6 +1,7 @@ <%inherit file="base.html"/> <%def name="headIncludes()"> + <%def name="body()"> @@ -10,7 +11,7 @@
    -

    Activity

    +

    Activity   

    Checking for activity...
    @@ -20,9 +21,35 @@ % elif section == 'watch_stats':
    -
    -

    Watch Statistics   Last ${config['home_stats_length']} days

    +
    +

    Watch Statistics

    +
    + % if config['home_stats_type'] == 0: + + + % else: + + + % endif +
    +
    + Last + + days +
    +
    +
    +
    +
    Loading stats...

    @@ -32,9 +59,14 @@ % elif section == 'library_stats':
    -
    -

    Library Statistics   ${config['pms_name']}

    +
    +

    Library Statistics

    + ${config['pms_name']}
    +
    +
    +
    +
    Loading stats...

    @@ -44,8 +76,9 @@ % elif section == 'recently_added':
    -
    -
    +
    +
    +
    Looking for new items...

    @@ -69,8 +120,85 @@
    +<%def name="modalIncludes()"> + +% if _session['user_group'] == 'admin' and config['update_show_changelog']: + +% endif + +% if _session['user_group'] == 'admin': + + +% endif + + + + + <%def name="javascriptIncludes()"> + + % if 'current_activity' in config['home_sections']: % endif % if 'watch_stats' in config['home_sections']: % endif % if 'library_stats' in config['home_sections']: @@ -315,64 +672,27 @@ % endif % if 'recently_added' in config['home_sections']: +% endif +% if _session['user_group'] == 'admin' and config['update_show_changelog']: + % endif \ No newline at end of file diff --git a/data/interfaces/default/info.html b/data/interfaces/default/info.html index 30bda4ab..a1adecb7 100644 --- a/data/interfaces/default/info.html +++ b/data/interfaces/default/info.html @@ -38,7 +38,7 @@ DOCUMENTATION :: END <%! import re - from plexpy import common + from plexpy import common, notifiers # Get audio codec file def af(codec): @@ -68,6 +68,7 @@ DOCUMENTATION :: END <%def name="body()"> % if data: +<% media_info = data['media_info'][0] if data['media_info'] else {} %>
    @@ -115,9 +116,9 @@ DOCUMENTATION :: END
    @@ -392,7 +403,7 @@ DOCUMENTATION :: END Delete - Time + Date User IP Address Platform @@ -408,28 +419,6 @@ DOCUMENTATION :: END
    - - -
    @@ -438,6 +427,83 @@ DOCUMENTATION :: END % endif +<%def name="modalIncludes()"> + + + + + + <%def name="javascriptIncludes()"> @@ -446,8 +512,8 @@ DOCUMENTATION :: END % if data: - -% if data['media_type'] == 'show' or data['media_type'] == 'artist': + +% if data['media_type'] in ('show', 'artist'): -% elif data['media_type'] == 'season' or data['media_type'] == 'album': +% elif data['media_type'] in ('season', 'album'): -% elif data['media_type'] == 'episode' or data['media_type'] == 'track' or data['media_type'] == 'movie': +% elif data['media_type'] in ('movie', 'episode', 'track'): -% if data['media_type'] == 'show' or data['media_type'] == 'season' or data['media_type'] == 'artist' or data['media_type'] == 'album': +% if data['media_type'] in ('show', 'season', 'artist', 'album'): % endif diff --git a/data/interfaces/default/ip_address_modal.html b/data/interfaces/default/ip_address_modal.html index cb407305..928d4cad 100644 --- a/data/interfaces/default/ip_address_modal.html +++ b/data/interfaces/default/ip_address_modal.html @@ -14,7 +14,12 @@