mirror of
https://github.com/Tautulli/Tautulli.git
synced 2025-07-12 16:22:57 -07:00
1014 lines
No EOL
55 KiB
HTML
1014 lines
No EOL
55 KiB
HTML
<%doc>
|
|
USAGE DOCUMENTATION :: PLEASE LEAVE THIS AT THE TOP OF THIS FILE
|
|
|
|
For Mako templating syntax documentation please visit: http://docs.makotemplates.org/en/latest/
|
|
|
|
Filename: home_stats.html
|
|
Version: 0.1
|
|
Variable names: data [array]
|
|
|
|
data[array_index] :: Usable parameters
|
|
|
|
data['stat_id'] Returns the name of the stat. Either 'top_tv', 'top_movies', 'popular_tv', 'popular_movies', 'top_user' or 'top_platform'
|
|
data['stat_type'] Returns the type of the stat. Either 'total_plays' or 'total_duration'
|
|
data['rows'] Returns an array containing stat data
|
|
|
|
data[array_index]['rows'] :: Usable parameters
|
|
|
|
row_id Return the db row id for a metadata item if one exists
|
|
|
|
== Only if 'stat_id' is 'top_tv' or 'popular_tv' or 'top_movies' or 'popular_movies' or 'top_music' or 'popular_music' or 'last_watched' ==
|
|
thumb Return the thumb for the media item.
|
|
|
|
== Only if 'stat_id' is 'top_tv' or 'popular_tv' or 'top_music' or 'popular_music' ==
|
|
grandparent_thumb Returns location of the item's thumbnail. Use with pms_image_proxy.
|
|
rating_key Returns the unique identifier for the media item.
|
|
title Returns the title for the associated stat.
|
|
|
|
== Only if 'stat_id' is 'top_tv' or 'top_movies' or 'top_music' or 'top_user' or 'top_platform' ==
|
|
total_plays Returns the count for the associated stat.
|
|
total_duration Returns the total duration for the associated stat.
|
|
|
|
== Only of 'stat_id' is 'popular_tv' or 'popular_movies' or 'popular_music' ==
|
|
users_watched Returns the count for the associated stat.
|
|
|
|
== Only if 'stat_id' is 'top_user' or 'last_watched' ==
|
|
user_thumb Returns url of the user's gravatar. Returns '' if none exists.
|
|
user Returns the username for the associated stat.
|
|
user_id Returns the user id for the associated stat.
|
|
friendly_name Returns the friendly name of the user for the associated stat.
|
|
|
|
== Only if 'stat_id' is 'top_platform' or 'last_watched' ==
|
|
player Returns the player name for the associated stat.
|
|
|
|
== Only if 'stat_id' is 'last_watched' ==
|
|
last_watch Returns the time the media item was last watched.
|
|
|
|
== Only if 'stat_id' is 'most_concurrent' ==
|
|
count Returns the count of the most concurrent streams.
|
|
started Returns the start time of the most concurrent streams.
|
|
stopped Returns the stop time of the most concurrent streams.
|
|
|
|
DOCUMENTATION :: END
|
|
</%doc>
|
|
|
|
<%!
|
|
from plexpy import helpers
|
|
|
|
# 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 "<h3>" + str(hours) + "</h3><p>hrs</p><h3>" + str(minutes) + "</h3><p>mins</p>"
|
|
else:
|
|
return "<h3>" + str(hours) + "</h3><p>hrs</p>"
|
|
else:
|
|
return "<h3>" + str(int(minutes)) + "</h3><p>mins</p>"
|
|
%>
|
|
|
|
% if data:
|
|
<ul class="list-unstyled">
|
|
% if any(top_stat['rows'] for top_stat in data):
|
|
% for top_stat in data:
|
|
% if top_stat['stat_id'] == 'top_tv' and top_stat['rows']:
|
|
<div class="home-platforms-instance">
|
|
<li>
|
|
<div class="home-platforms-instance-info">
|
|
<div class="home-platforms-instance-name">
|
|
<h4>Most Watched TV</h4>
|
|
</div>
|
|
<div class="home-platforms-instance-playcount">
|
|
<h4>
|
|
% if top_stat['rows'][0]['rating_key']:
|
|
<a href="info?rating_key=${top_stat['rows'][0]['rating_key']}" title="${top_stat['rows'][0]['title']}">
|
|
${top_stat['rows'][0]['title']}
|
|
</a>
|
|
% else:
|
|
${top_stat['rows'][0]['title']}
|
|
% endif
|
|
</h4>
|
|
% if top_stat['stat_type'] == 'total_plays':
|
|
<h3>${top_stat['rows'][0]['total_plays']}</h3>
|
|
<p> plays</p>
|
|
% else:
|
|
${top_stat['rows'][0]['total_duration'] | hd}
|
|
% endif
|
|
</div>
|
|
</div>
|
|
% if top_stat['rows'][0]['rating_key']:
|
|
<a href="info?rating_key=${top_stat['rows'][0]['rating_key']}" title="${top_stat['rows'][0]['title']}">
|
|
% if top_stat['rows'][0]['grandparent_thumb']:
|
|
<div class="home-platforms-instance-poster">
|
|
<div class="home-platforms-poster-face" style="background-image: url(pms_image_proxy?img=${top_stat['rows'][0]['grandparent_thumb']}&width=300&height=450&fallback=poster);"></div>
|
|
</div>
|
|
% else:
|
|
<div class="home-platforms-instance-poster">
|
|
<div class="home-platforms-poster-face" style="background-image: url(${http_root}images/poster.png);"></div>
|
|
</div>
|
|
% endif
|
|
</a>
|
|
% else:
|
|
<div class="home-platforms-instance-poster">
|
|
<div class="home-platforms-poster-face" style="background-image: url(${http_root}images/poster.png);"></div>
|
|
</div>
|
|
% endif
|
|
% if len(top_stat['rows']) > 1:
|
|
<div class="home-platforms-instance-list-chevron"><i class="fa fa-chevron-down"></i></div>
|
|
<ul class="list-unstyled">
|
|
<div class="slider">
|
|
<div class="home-platforms-instance-list">
|
|
% for row in top_stat['rows']:
|
|
% if loop.index > 0:
|
|
<li>
|
|
<div class="home-platforms-instance-list-info">
|
|
<div class="home-platforms-instance-list-name">
|
|
<h5>
|
|
% if top_stat['rows'][loop.index]['rating_key']:
|
|
<a href="info?rating_key=${top_stat['rows'][loop.index]['rating_key']}" title="${top_stat['rows'][loop.index]['title']}">
|
|
${top_stat['rows'][loop.index]['title']}
|
|
</a>
|
|
% else:
|
|
${top_stat['rows'][loop.index]['title']}
|
|
% endif
|
|
</h5>
|
|
</div>
|
|
<div class="home-platforms-instance-list-playcount">
|
|
% if top_stat['stat_type'] == 'total_plays':
|
|
<h3>${top_stat['rows'][loop.index]['total_plays']}</h3>
|
|
<p> plays</p>
|
|
% else:
|
|
${top_stat['rows'][loop.index]['total_duration'] | hd}
|
|
% endif
|
|
</div>
|
|
</div>
|
|
% if top_stat['rows'][loop.index]['rating_key']:
|
|
<a href="info?rating_key=${top_stat['rows'][loop.index]['rating_key']}" title="${top_stat['rows'][loop.index]['title']}">
|
|
% if top_stat['rows'][loop.index]['grandparent_thumb']:
|
|
<div class="home-platforms-instance-list-poster">
|
|
<div class="home-platforms-list-poster-face" style="background-image: url(pms_image_proxy?img=${top_stat['rows'][loop.index]['grandparent_thumb']}&width=300&height=450&fallback=poster);"></div>
|
|
</div>
|
|
% else:
|
|
<div class="home-platforms-instance-list-poster">
|
|
<div class="home-platforms-list-poster-face" style="background-image: url(${http_root}images/poster.png);"></div>
|
|
</div>
|
|
% endif
|
|
</a>
|
|
% else:
|
|
<div class="home-platforms-instance-list-poster">
|
|
<div class="home-platforms-list-poster-face" style="background-image: url(${http_root}images/poster.png);"></div>
|
|
</div>
|
|
% endif
|
|
<div class="home-platforms-instance-list-number">
|
|
<h4>${loop.index + 1}</h4>
|
|
</div>
|
|
</li>
|
|
% endif
|
|
% endfor
|
|
</div>
|
|
</div>
|
|
</ul>
|
|
% endif
|
|
</li>
|
|
</div>
|
|
% elif top_stat['stat_id'] == 'popular_tv' and top_stat['rows']:
|
|
<div class="home-platforms-instance">
|
|
<li>
|
|
<div class="home-platforms-instance-info">
|
|
<div class="home-platforms-instance-name">
|
|
<h4>Most Popular TV</h4>
|
|
</div>
|
|
<div class="home-platforms-instance-playcount">
|
|
<h4>
|
|
% if top_stat['rows'][0]['rating_key']:
|
|
<a href="info?rating_key=${top_stat['rows'][0]['rating_key']}" title="${top_stat['rows'][0]['title']}">
|
|
${top_stat['rows'][0]['title']}
|
|
</a>
|
|
% else:
|
|
${top_stat['rows'][0]['title']}
|
|
% endif
|
|
</h4>
|
|
<h3>${top_stat['rows'][0]['users_watched']}</h3>
|
|
<p> users</p>
|
|
</div>
|
|
</div>
|
|
% if top_stat['rows'][0]['rating_key']:
|
|
<a href="info?rating_key=${top_stat['rows'][0]['rating_key']}" title="${top_stat['rows'][0]['title']}">
|
|
% if top_stat['rows'][0]['grandparent_thumb'] != '':
|
|
<div class="home-platforms-instance-poster">
|
|
<div class="home-platforms-poster-face" style="background-image: url(pms_image_proxy?img=${top_stat['rows'][0]['grandparent_thumb']}&width=300&height=450&fallback=poster);"></div>
|
|
</div>
|
|
% else:
|
|
<div class="home-platforms-instance-poster">
|
|
<div class="home-platforms-poster-face" style="background-image: url(${http_root}images/poster.png);"></div>
|
|
</div>
|
|
% endif
|
|
</a>
|
|
% else:
|
|
<div class="home-platforms-instance-poster">
|
|
<div class="home-platforms-poster-face" style="background-image: url(${http_root}images/poster.png);"></div>
|
|
</div>
|
|
% endif
|
|
% if len(top_stat['rows']) > 1:
|
|
<div class="home-platforms-instance-list-chevron"><i class="fa fa-chevron-down"></i></div>
|
|
<ul class="list-unstyled">
|
|
<div class="slider">
|
|
<div class="home-platforms-instance-list">
|
|
% for row in top_stat['rows']:
|
|
% if loop.index > 0:
|
|
<li>
|
|
<div class="home-platforms-instance-list-info">
|
|
<div class="home-platforms-instance-list-name">
|
|
<h5>
|
|
% if top_stat['rows'][loop.index]['rating_key']:
|
|
<a href="info?rating_key=${top_stat['rows'][loop.index]['rating_key']}" title="${top_stat['rows'][loop.index]['title']}">
|
|
${top_stat['rows'][loop.index]['title']}
|
|
</a>
|
|
% else:
|
|
${top_stat['rows'][loop.index]['title']}
|
|
% endif
|
|
</h5>
|
|
</div>
|
|
<div class="home-platforms-instance-list-playcount">
|
|
<h3>${top_stat['rows'][loop.index]['users_watched']}</h3>
|
|
<p> users</p>
|
|
</div>
|
|
</div>
|
|
% if top_stat['rows'][loop.index]['rating_key']:
|
|
<a href="info?rating_key=${top_stat['rows'][loop.index]['rating_key']}" title="${top_stat['rows'][loop.index]['title']}">
|
|
% if top_stat['rows'][loop.index]['grandparent_thumb']:
|
|
<div class="home-platforms-instance-list-poster">
|
|
<div class="home-platforms-list-poster-face" style="background-image: url(pms_image_proxy?img=${top_stat['rows'][loop.index]['grandparent_thumb']}&width=300&height=450&fallback=poster);"></div>
|
|
</div>
|
|
% else:
|
|
<div class="home-platforms-instance-list-poster">
|
|
<div class="home-platforms-list-poster-face" style="background-image: url(${http_root}images/poster.png);"></div>
|
|
</div>
|
|
% endif
|
|
</a>
|
|
% else:
|
|
<div class="home-platforms-instance-list-poster">
|
|
<div class="home-platforms-list-poster-face" style="background-image: url(${http_root}images/poster.png);"></div>
|
|
</div>
|
|
% endif
|
|
<div class="home-platforms-instance-list-number">
|
|
<h4>${loop.index + 1}</h4>
|
|
</div>
|
|
</li>
|
|
% endif
|
|
% endfor
|
|
</div>
|
|
</div>
|
|
</ul>
|
|
% endif
|
|
</li>
|
|
</div>
|
|
% elif top_stat['stat_id'] == 'top_movies' and top_stat['rows']:
|
|
<div class="home-platforms-instance">
|
|
<li>
|
|
<div class="home-platforms-instance-info">
|
|
<div class="home-platforms-instance-name">
|
|
<h4>Most Watched Movie</h4>
|
|
</div>
|
|
<div class="home-platforms-instance-playcount">
|
|
<h4>
|
|
% if top_stat['rows'][0]['rating_key']:
|
|
<a href="info?rating_key=${top_stat['rows'][0]['rating_key']}" title="${top_stat['rows'][0]['title']}">
|
|
${top_stat['rows'][0]['title']}
|
|
</a>
|
|
% else:
|
|
${top_stat['rows'][0]['title']}
|
|
% endif
|
|
</h4>
|
|
% if top_stat['stat_type'] == 'total_plays':
|
|
<h3>${top_stat['rows'][0]['total_plays']}</h3>
|
|
<p> plays</p>
|
|
% else:
|
|
${top_stat['rows'][0]['total_duration'] | hd}
|
|
% endif
|
|
</div>
|
|
</div>
|
|
% if top_stat['rows'][0]['rating_key']:
|
|
<a href="info?rating_key=${top_stat['rows'][0]['rating_key']}" title="${top_stat['rows'][0]['title']}">
|
|
% if top_stat['rows'][0]['thumb']:
|
|
<div class="home-platforms-instance-poster">
|
|
<div class="home-platforms-poster-face" style="background-image: url(pms_image_proxy?img=${top_stat['rows'][0]['thumb']}&width=300&height=450&fallback=poster);"></div>
|
|
</div>
|
|
% else:
|
|
<div class="home-platforms-instance-poster">
|
|
<div class="home-platforms-poster-face" style="background-image: url(${http_root}images/poster.png);"></div>
|
|
</div>
|
|
% endif
|
|
</a>
|
|
% else:
|
|
<div class="home-platforms-instance-poster">
|
|
<div class="home-platforms-poster-face" style="background-image: url(${http_root}images/poster.png);"></div>
|
|
</div>
|
|
% endif
|
|
% if len(top_stat['rows']) > 1:
|
|
<div class="home-platforms-instance-list-chevron"><i class="fa fa-chevron-down"></i></div>
|
|
<ul class="list-unstyled">
|
|
<div class="slider">
|
|
<div class="home-platforms-instance-list">
|
|
% for row in top_stat['rows']:
|
|
% if loop.index > 0:
|
|
<li>
|
|
<div class="home-platforms-instance-list-info">
|
|
<div class="home-platforms-instance-list-name">
|
|
<h5>
|
|
% if top_stat['rows'][loop.index]['rating_key']:
|
|
<a href="info?rating_key=${top_stat['rows'][loop.index]['rating_key']}" title="${top_stat['rows'][loop.index]['title']}">
|
|
${top_stat['rows'][loop.index]['title']}
|
|
</a>
|
|
% else:
|
|
${top_stat['rows'][loop.index]['title']}
|
|
% endif
|
|
</h5>
|
|
</div>
|
|
<div class="home-platforms-instance-list-playcount">
|
|
% if top_stat['stat_type'] == 'total_plays':
|
|
<h3>${top_stat['rows'][loop.index]['total_plays']}</h3>
|
|
<p> plays</p>
|
|
% else:
|
|
${top_stat['rows'][loop.index]['total_duration'] | hd}
|
|
% endif
|
|
</div>
|
|
</div>
|
|
% if top_stat['rows'][loop.index]['rating_key']:
|
|
<a href="info?rating_key=${top_stat['rows'][loop.index]['rating_key']}" title="${top_stat['rows'][loop.index]['title']}">
|
|
% if top_stat['rows'][loop.index]['thumb']:
|
|
<div class="home-platforms-instance-list-poster">
|
|
<div class="home-platforms-list-poster-face" style="background-image: url(pms_image_proxy?img=${top_stat['rows'][loop.index]['thumb']}&width=300&height=450&fallback=poster);"></div>
|
|
</div>
|
|
% else:
|
|
<div class="home-platforms-instance-list-poster">
|
|
<div class="home-platforms-list-poster-face" style="background-image: url(${http_root}images/poster.png);"></div>
|
|
</div>
|
|
% endif
|
|
</a>
|
|
% else:
|
|
<div class="home-platforms-instance-list-poster">
|
|
<div class="home-platforms-list-poster-face" style="background-image: url(${http_root}images/poster.png);"></div>
|
|
</div>
|
|
% endif
|
|
<div class="home-platforms-instance-list-number">
|
|
<h4>${loop.index + 1}</h4>
|
|
</div>
|
|
</li>
|
|
% endif
|
|
% endfor
|
|
</div>
|
|
</div>
|
|
</ul>
|
|
% endif
|
|
</li>
|
|
</div>
|
|
% elif top_stat['stat_id'] == 'popular_movies' and top_stat['rows']:
|
|
<div class="home-platforms-instance">
|
|
<li>
|
|
<div class="home-platforms-instance-info">
|
|
<div class="home-platforms-instance-name">
|
|
<h4>Most Popular Movie</h4>
|
|
</div>
|
|
<div class="home-platforms-instance-playcount">
|
|
<h4>
|
|
% if top_stat['rows'][0]['rating_key']:
|
|
<a href="info?rating_key=${top_stat['rows'][0]['rating_key']}" title="${top_stat['rows'][0]['title']}">
|
|
${top_stat['rows'][0]['title']}
|
|
</a>
|
|
% else:
|
|
${top_stat['rows'][0]['title']}
|
|
% endif
|
|
</h4>
|
|
<h3>${top_stat['rows'][0]['users_watched']}</h3>
|
|
<p> users</p>
|
|
</div>
|
|
</div>
|
|
% if top_stat['rows'][0]['rating_key']:
|
|
<a href="info?rating_key=${top_stat['rows'][0]['rating_key']}" title="${top_stat['rows'][0]['title']}">
|
|
% if top_stat['rows'][0]['thumb']:
|
|
<div class="home-platforms-instance-poster">
|
|
<div class="home-platforms-poster-face" style="background-image: url(pms_image_proxy?img=${top_stat['rows'][0]['thumb']}&width=300&height=450&fallback=poster);"></div>
|
|
</div>
|
|
% else:
|
|
<div class="home-platforms-instance-poster">
|
|
<div class="home-platforms-poster-face" style="background-image: url(${http_root}images/poster.png);"></div>
|
|
</div>
|
|
% endif
|
|
</a>
|
|
% else:
|
|
<div class="home-platforms-instance-poster">
|
|
<div class="home-platforms-poster-face" style="background-image: url(${http_root}images/poster.png);"></div>
|
|
</div>
|
|
% endif
|
|
% if len(top_stat['rows']) > 1:
|
|
<div class="home-platforms-instance-list-chevron"><i class="fa fa-chevron-down"></i></div>
|
|
<ul class="list-unstyled">
|
|
<div class="slider">
|
|
<div class="home-platforms-instance-list">
|
|
% for row in top_stat['rows']:
|
|
% if loop.index > 0:
|
|
<li>
|
|
<div class="home-platforms-instance-list-info">
|
|
<div class="home-platforms-instance-list-name">
|
|
<h5>
|
|
% if top_stat['rows'][loop.index]['rating_key']:
|
|
<a href="info?rating_key=${top_stat['rows'][loop.index]['rating_key']}" title="${top_stat['rows'][loop.index]['title']}">
|
|
${top_stat['rows'][loop.index]['title']}
|
|
</a>
|
|
% else:
|
|
${top_stat['rows'][loop.index]['title']}
|
|
% endif
|
|
</h5>
|
|
</div>
|
|
<div class="home-platforms-instance-list-playcount">
|
|
<h3>${top_stat['rows'][loop.index]['users_watched']}</h3>
|
|
<p> users</p>
|
|
</div>
|
|
</div>
|
|
% if top_stat['rows'][loop.index]['rating_key']:
|
|
<a href="info?rating_key=${top_stat['rows'][loop.index]['rating_key']}" title="${top_stat['rows'][loop.index]['title']}">
|
|
% if top_stat['rows'][loop.index]['thumb']:
|
|
<div class="home-platforms-instance-list-poster">
|
|
<div class="home-platforms-list-poster-face" style="background-image: url(pms_image_proxy?img=${top_stat['rows'][loop.index]['thumb']}&width=300&height=450&fallback=poster);"></div>
|
|
</div>
|
|
% else:
|
|
<div class="home-platforms-instance-list-poster">
|
|
<div class="home-platforms-list-poster-face" style="background-image: url(${http_root}images/poster.png);"></div>
|
|
</div>
|
|
% endif
|
|
</a>
|
|
% else:
|
|
<div class="home-platforms-instance-list-poster">
|
|
<div class="home-platforms-list-poster-face" style="background-image: url(${http_root}images/poster.png);"></div>
|
|
</div>
|
|
% endif
|
|
<div class="home-platforms-instance-list-number">
|
|
<h4>${loop.index + 1}</h4>
|
|
</div>
|
|
</li>
|
|
% endif
|
|
% endfor
|
|
</div>
|
|
</div>
|
|
</ul>
|
|
% endif
|
|
</li>
|
|
</div>
|
|
% elif top_stat['stat_id'] == 'top_music' and top_stat['rows']:
|
|
<div class="home-platforms-instance">
|
|
<li>
|
|
<div class="home-platforms-instance-info">
|
|
<div class="home-platforms-instance-name">
|
|
<h4>Most Listened to Artist</h4>
|
|
</div>
|
|
<div class="home-platforms-instance-playcount">
|
|
<h4>
|
|
% if top_stat['rows'][0]['rating_key']:
|
|
<a href="info?rating_key=${top_stat['rows'][0]['rating_key']}" title="${top_stat['rows'][0]['title']}">
|
|
${top_stat['rows'][0]['title']}
|
|
</a>
|
|
% else:
|
|
${top_stat['rows'][0]['title']}
|
|
% endif
|
|
</h4>
|
|
% if top_stat['stat_type'] == 'total_plays':
|
|
<h3>${top_stat['rows'][0]['total_plays']}</h3>
|
|
<p> plays</p>
|
|
% else:
|
|
${top_stat['rows'][0]['total_duration'] | hd}
|
|
% endif
|
|
</div>
|
|
</div>
|
|
% if top_stat['rows'][0]['rating_key']:
|
|
<a href="info?rating_key=${top_stat['rows'][0]['rating_key']}" title="${top_stat['rows'][0]['title']}">
|
|
% if top_stat['rows'][0]['grandparent_thumb']:
|
|
<div class="home-platforms-instance-poster">
|
|
<div class="home-platforms-poster-face" style="background-image: url(pms_image_proxy?img=${top_stat['rows'][0]['grandparent_thumb']}&width=300&height=300&fallback=poster);"></div>
|
|
</div>
|
|
% else:
|
|
<div class="home-platforms-instance-poster">
|
|
<div class="home-platforms-poster-face" style="background-image: url(${http_root}images/poster.png);"></div>
|
|
</div>
|
|
% endif
|
|
</a>
|
|
% else:
|
|
<div class="home-platforms-instance-poster">
|
|
<div class="home-platforms-poster-face" style="background-image: url(${http_root}images/poster.png);"></div>
|
|
</div>
|
|
% endif
|
|
% if len(top_stat['rows']) > 1:
|
|
<div class="home-platforms-instance-list-chevron"><i class="fa fa-chevron-down"></i></div>
|
|
<ul class="list-unstyled">
|
|
<div class="slider">
|
|
<div class="home-platforms-instance-list">
|
|
% for row in top_stat['rows']:
|
|
% if loop.index > 0:
|
|
<li>
|
|
<div class="home-platforms-instance-list-info">
|
|
<div class="home-platforms-instance-list-name">
|
|
<h5>
|
|
% if top_stat['rows'][loop.index]['rating_key']:
|
|
<a href="info?rating_key=${top_stat['rows'][loop.index]['rating_key']}" title="${top_stat['rows'][loop.index]['title']}">
|
|
${top_stat['rows'][loop.index]['title']}
|
|
</a>
|
|
% else:
|
|
${top_stat['rows'][loop.index]['title']}
|
|
% endif
|
|
</h5>
|
|
</div>
|
|
<div class="home-platforms-instance-list-playcount">
|
|
% if top_stat['stat_type'] == 'total_plays':
|
|
<h3>${top_stat['rows'][loop.index]['total_plays']}</h3>
|
|
<p> plays</p>
|
|
% else:
|
|
${top_stat['rows'][loop.index]['total_duration'] | hd}
|
|
% endif
|
|
</div>
|
|
</div>
|
|
% if top_stat['rows'][loop.index]['rating_key']:
|
|
<a href="info?rating_key=${top_stat['rows'][loop.index]['rating_key']}" title="${top_stat['rows'][loop.index]['title']}">
|
|
% if top_stat['rows'][loop.index]['grandparent_thumb']:
|
|
<div class="home-platforms-instance-list-poster">
|
|
<div class="home-platforms-list-poster-face" style="background-image: url(pms_image_proxy?img=${top_stat['rows'][loop.index]['grandparent_thumb']}&width=300&height=300&fallback=poster);"></div>
|
|
</div>
|
|
% else:
|
|
<div class="home-platforms-instance-list-poster">
|
|
<div class="home-platforms-list-poster-face" style="background-image: url(${http_root}images/poster.png);"></div>
|
|
</div>
|
|
% endif
|
|
</a>
|
|
% else:
|
|
<div class="home-platforms-instance-list-poster">
|
|
<div class="home-platforms-list-poster-face" style="background-image: url(${http_root}images/poster.png);"></div>
|
|
</div>
|
|
% endif
|
|
<div class="home-platforms-instance-list-number">
|
|
<h4>${loop.index + 1}</h4>
|
|
</div>
|
|
</li>
|
|
% endif
|
|
% endfor
|
|
</div>
|
|
</div>
|
|
</ul>
|
|
% endif
|
|
</li>
|
|
</div>
|
|
% elif top_stat['stat_id'] == 'popular_music' and top_stat['rows']:
|
|
<div class="home-platforms-instance">
|
|
<li>
|
|
<div class="home-platforms-instance-info">
|
|
<div class="home-platforms-instance-name">
|
|
<h4>Most Popular Artist</h4>
|
|
</div>
|
|
<div class="home-platforms-instance-playcount">
|
|
<h4>
|
|
% if top_stat['rows'][0]['rating_key']:
|
|
<a href="info?rating_key=${top_stat['rows'][0]['rating_key']}" title="${top_stat['rows'][0]['title']}">
|
|
${top_stat['rows'][0]['title']}
|
|
</a>
|
|
% else:
|
|
${top_stat['rows'][0]['title']}
|
|
% endif
|
|
</h4>
|
|
<h3>${top_stat['rows'][0]['users_watched']}</h3>
|
|
<p> users</p>
|
|
</div>
|
|
</div>
|
|
% if top_stat['rows'][0]['rating_key']:
|
|
<a href="info?rating_key=${top_stat['rows'][0]['rating_key']}" title="${top_stat['rows'][0]['title']}">
|
|
% if top_stat['rows'][0]['grandparent_thumb'] != '':
|
|
<div class="home-platforms-instance-poster">
|
|
<div class="home-platforms-poster-face" style="background-image: url(pms_image_proxy?img=${top_stat['rows'][0]['grandparent_thumb']}&width=300&height=300&fallback=poster);"></div>
|
|
</div>
|
|
% else:
|
|
<div class="home-platforms-instance-poster">
|
|
<div class="home-platforms-poster-face" style="background-image: url(${http_root}images/poster.png);"></div>
|
|
</div>
|
|
% endif
|
|
</a>
|
|
% else:
|
|
<div class="home-platforms-instance-poster">
|
|
<div class="home-platforms-poster-face" style="background-image: url(${http_root}images/poster.png);"></div>
|
|
</div>
|
|
% endif
|
|
% if len(top_stat['rows']) > 1:
|
|
<div class="home-platforms-instance-list-chevron"><i class="fa fa-chevron-down"></i></div>
|
|
<ul class="list-unstyled">
|
|
<div class="slider">
|
|
<div class="home-platforms-instance-list">
|
|
% for row in top_stat['rows']:
|
|
% if loop.index > 0:
|
|
<li>
|
|
<div class="home-platforms-instance-list-info">
|
|
<div class="home-platforms-instance-list-name">
|
|
<h5>
|
|
% if top_stat['rows'][loop.index]['rating_key']:
|
|
<a href="info?rating_key=${top_stat['rows'][loop.index]['rating_key']}" title="${top_stat['rows'][loop.index]['title']}">
|
|
${top_stat['rows'][loop.index]['title']}
|
|
</a>
|
|
% else:
|
|
${top_stat['rows'][loop.index]['title']}
|
|
% endif
|
|
</h5>
|
|
</div>
|
|
<div class="home-platforms-instance-list-playcount">
|
|
<h3>${top_stat['rows'][loop.index]['users_watched']}</h3>
|
|
<p> users</p>
|
|
</div>
|
|
</div>
|
|
% if top_stat['rows'][loop.index]['rating_key']:
|
|
<a href="info?rating_key=${top_stat['rows'][loop.index]['rating_key']}" title="${top_stat['rows'][loop.index]['title']}">
|
|
% if top_stat['rows'][loop.index]['grandparent_thumb']:
|
|
<div class="home-platforms-instance-list-poster">
|
|
<div class="home-platforms-list-poster-face" style="background-image: url(pms_image_proxy?img=${top_stat['rows'][loop.index]['grandparent_thumb']}&width=300&height=300&fallback=poster);"></div>
|
|
</div>
|
|
% else:
|
|
<div class="home-platforms-instance-list-poster">
|
|
<div class="home-platforms-list-poster-face" style="background-image: url(${http_root}images/poster.png);"></div>
|
|
</div>
|
|
% endif
|
|
</a>
|
|
% else:
|
|
<div class="home-platforms-instance-list-poster">
|
|
<div class="home-platforms-list-poster-face" style="background-image: url(${http_root}images/poster.png);"></div>
|
|
</div>
|
|
% endif
|
|
<div class="home-platforms-instance-list-number">
|
|
<h4>${loop.index + 1}</h4>
|
|
</div>
|
|
</li>
|
|
% endif
|
|
% endfor
|
|
</div>
|
|
</div>
|
|
</ul>
|
|
% endif
|
|
</li>
|
|
</div>
|
|
% elif top_stat['stat_id'] == 'top_users' and top_stat['rows']:
|
|
<div class="home-platforms-instance">
|
|
<li>
|
|
<div class="home-platforms-instance-info">
|
|
<div class="home-platforms-instance-name">
|
|
<h4>Most Active User</h4>
|
|
</div>
|
|
<div class="home-platforms-instance-playcount">
|
|
<h4>
|
|
% if top_stat['rows'][0]['user_id']:
|
|
<a href="user?user_id=${top_stat['rows'][0]['user_id']}" title="${top_stat['rows'][0]['friendly_name']}">
|
|
${top_stat['rows'][0]['friendly_name']}
|
|
</a>
|
|
% else:
|
|
${top_stat['rows'][0]['friendly_name']}
|
|
% endif
|
|
</h4>
|
|
% if top_stat['stat_type'] == 'total_plays':
|
|
<h3>${top_stat['rows'][0]['total_plays']}</h3>
|
|
<p> plays</p>
|
|
% else:
|
|
${top_stat['rows'][0]['total_duration'] | hd}
|
|
% endif
|
|
</div>
|
|
</div>
|
|
% if top_stat['rows'][0]['user_id']:
|
|
<a href="user?user_id=${top_stat['rows'][0]['user_id']}" title="${top_stat['rows'][0]['friendly_name']}">
|
|
% endif
|
|
% if top_stat['rows'][0]['user_thumb'] != '':
|
|
<div class="home-platforms-instance-poster">
|
|
<div class="home-platforms-instance-oval" style="background-image: url(${top_stat['rows'][0]['user_thumb']});"></div>
|
|
</div>
|
|
% else:
|
|
<div class="home-platforms-instance-poster">
|
|
<div class="home-platforms-instance-oval" style="background-image: url(${http_root}images/gravatar-default.png);"></div>
|
|
</div>
|
|
% endif
|
|
% if top_stat['rows'][0]['user_id']:
|
|
</a>
|
|
% endif
|
|
% if len(top_stat['rows']) > 1:
|
|
<div class="home-platforms-instance-list-chevron"><i class="fa fa-chevron-down"></i></div>
|
|
<ul class="list-unstyled">
|
|
<div class="slider">
|
|
<div class="home-platforms-instance-list">
|
|
% for row in top_stat['rows']:
|
|
% if loop.index > 0:
|
|
<li>
|
|
<div class="home-platforms-instance-list-info">
|
|
<div class="home-platforms-instance-list-name">
|
|
<h5>
|
|
% if top_stat['rows'][loop.index]['user_id']:
|
|
<a href="user?user_id=${top_stat['rows'][loop.index]['user_id']}" title="${top_stat['rows'][loop.index]['friendly_name']}">
|
|
${top_stat['rows'][loop.index]['friendly_name']}
|
|
</a>
|
|
% else:
|
|
${top_stat['rows'][loop.index]['friendly_name']}
|
|
% endif
|
|
</h5>
|
|
</div>
|
|
<div class="home-platforms-instance-list-playcount">
|
|
% if top_stat['stat_type'] == 'total_plays':
|
|
<h3>${top_stat['rows'][loop.index]['total_plays']}</h3>
|
|
<p> plays</p>
|
|
% else:
|
|
${top_stat['rows'][loop.index]['total_duration'] | hd}
|
|
% endif
|
|
</div>
|
|
</div>
|
|
% if top_stat['rows'][loop.index]['user_id']:
|
|
<a href="user?user_id=${top_stat['rows'][loop.index]['user_id']}" title="${top_stat['rows'][loop.index]['friendly_name']}">
|
|
% endif
|
|
% if top_stat['rows'][loop.index]['user_thumb'] != '':
|
|
<div class="home-platforms-instance-poster">
|
|
<div class="home-platforms-instance-list-oval" style="background-image: url(${top_stat['rows'][loop.index]['user_thumb']});"></div>
|
|
</div>
|
|
% else:
|
|
<div class="home-platforms-instance-poster">
|
|
<div class="home-platforms-instance-list-oval" style="background-image: url(${http_root}images/gravatar-default.png);"></div>
|
|
</div>
|
|
% endif
|
|
% if top_stat['rows'][loop.index]['user_id']:
|
|
</a>
|
|
% endif
|
|
<div class="home-platforms-instance-list-number">
|
|
<h4>${loop.index + 1}</h4>
|
|
</div>
|
|
</li>
|
|
% endif
|
|
% endfor
|
|
</div>
|
|
</div>
|
|
</ul>
|
|
% endif
|
|
</li>
|
|
</div>
|
|
% elif top_stat['stat_id'] == 'top_platforms' and top_stat['rows']:
|
|
<div class="home-platforms-instance">
|
|
<li>
|
|
<div class="home-platforms-instance-info">
|
|
<div class="home-platforms-instance-name">
|
|
<h4>Most Active Platform</h4>
|
|
</div>
|
|
<div class="home-platforms-instance-playcount">
|
|
<h4 title="${top_stat['rows'][0]['platform_type']}">${top_stat['rows'][0]['platform_type']}</h4>
|
|
% if top_stat['stat_type'] == 'total_plays':
|
|
<h3>${top_stat['rows'][0]['total_plays']}</h3>
|
|
<p> plays</p>
|
|
% else:
|
|
${top_stat['rows'][0]['total_duration'] | hd}
|
|
% endif
|
|
</div>
|
|
</div>
|
|
<div id="platform-stat" class="home-platforms-instance-poster" title="${top_stat['rows'][0]['platform_type']}">
|
|
<script>
|
|
$("#platform-stat").html("<div class='home-platforms-instance-box' style='background-image: url(" + getPlatformImagePath("${top_stat['rows'][0]['platform_type']}") + ");'>");
|
|
</script>
|
|
</div>
|
|
% if len(top_stat['rows']) > 1:
|
|
<div class="home-platforms-instance-list-chevron"><i class="fa fa-chevron-down"></i></div>
|
|
<ul class="list-unstyled">
|
|
<div class="slider">
|
|
<div class="home-platforms-instance-list">
|
|
% for row in top_stat['rows']:
|
|
% if loop.index > 0:
|
|
<li>
|
|
<div class="home-platforms-instance-list-info">
|
|
<div class="home-platforms-instance-list-name">
|
|
<h5 title="${top_stat['rows'][loop.index]['platform_type']}">
|
|
${top_stat['rows'][loop.index]['platform_type']}
|
|
</h5>
|
|
</div>
|
|
<div class="home-platforms-instance-list-playcount">
|
|
% if top_stat['stat_type'] == 'total_plays':
|
|
<h3>${top_stat['rows'][loop.index]['total_plays']}</h3>
|
|
<p> plays</p>
|
|
% else:
|
|
${top_stat['rows'][loop.index]['total_duration'] | hd}
|
|
% endif
|
|
</div>
|
|
</div>
|
|
<div class="home-platforms-instance-poster" id="home-platforms-instance-poster-${loop.index + 1}" title="${top_stat['rows'][loop.index]['platform_type']}">
|
|
<script>
|
|
$("#home-platforms-instance-poster-${loop.index + 1}").html("<div class='home-platforms-instance-list-box' style='background-image: url(" + getPlatformImagePath("${top_stat['rows'][loop.index]['platform_type']}") + ");'>");
|
|
</script>
|
|
</div>
|
|
<div class="home-platforms-instance-list-number">
|
|
<h4>${loop.index + 1}</h4>
|
|
</div>
|
|
</li>
|
|
% endif
|
|
% endfor
|
|
</div>
|
|
</div>
|
|
</ul>
|
|
% endif
|
|
</li>
|
|
</div>
|
|
% elif top_stat['stat_id'] == 'last_watched' and top_stat['rows']:
|
|
<div class="home-platforms-instance">
|
|
<li>
|
|
<div class="home-platforms-instance-info">
|
|
<div class="home-platforms-instance-name">
|
|
<h4>Last Watched</h4>
|
|
</div>
|
|
<div class="home-platforms-instance-last-user">
|
|
<h4>
|
|
% if top_stat['rows'][0]['rating_key']:
|
|
<a href="info?source=history&rating_key=${top_stat['rows'][0]['rating_key']}" title="${top_stat['rows'][0]['title']}">
|
|
${top_stat['rows'][0]['title']}
|
|
</a>
|
|
% else:
|
|
${top_stat['rows'][0]['title']}
|
|
% endif
|
|
</h4>
|
|
<h5>
|
|
% if top_stat['rows'][0]['user_id']:
|
|
<a href="user?user_id=${top_stat['rows'][0]['user_id']}" title="${top_stat['rows'][0]['friendly_name']}">
|
|
${top_stat['rows'][0]['friendly_name']}
|
|
</a>
|
|
% else:
|
|
${top_stat['rows'][0]['friendly_name']}
|
|
% endif
|
|
</h5>
|
|
<p>
|
|
<span id="last-watch-stat">
|
|
<script>
|
|
$('#last-watch-stat').text(moment(${top_stat['rows'][0]['last_watch']},"X").format(date_format));
|
|
</script>
|
|
</span> - ${top_stat['rows'][0]['player']}
|
|
</p>
|
|
</div>
|
|
</div>
|
|
% if top_stat['rows'][0]['rating_key']:
|
|
<a href="info?source=history&rating_key=${top_stat['rows'][0]['rating_key']}" title="${top_stat['rows'][0]['title']}">
|
|
% if top_stat['rows'][0]['thumb']:
|
|
<div class="home-platforms-instance-poster">
|
|
<div class="home-platforms-poster-face" style="background-image: url(pms_image_proxy?img=${top_stat['rows'][0]['thumb']}&width=300&height=450&fallback=poster);"></div>
|
|
</div>
|
|
% else:
|
|
<div class="home-platforms-instance-poster">
|
|
<div class="home-platforms-poster-face" style="background-image: url(${http_root}images/poster.png);"></div>
|
|
</div>
|
|
% endif
|
|
</a>
|
|
% else:
|
|
<div class="home-platforms-instance-poster">
|
|
<div class="home-platforms-poster-face" style="background-image: url(${http_root}images/poster.png);"></div>
|
|
</div>
|
|
% endif
|
|
% if len(top_stat['rows']) > 1:
|
|
<div class="home-platforms-instance-list-chevron"><i class="fa fa-chevron-down"></i></div>
|
|
<ul class="list-unstyled">
|
|
<div class="slider">
|
|
<div class="home-platforms-instance-list">
|
|
% for row in top_stat['rows']:
|
|
% if loop.index > 0:
|
|
<li>
|
|
<div class="home-platforms-instance-list-info">
|
|
<div class="home-platforms-instance-list-name">
|
|
<h5>
|
|
% if top_stat['rows'][loop.index]['rating_key']:
|
|
<a href="info?source=history&rating_key=${top_stat['rows'][loop.index]['rating_key']}" title="${top_stat['rows'][loop.index]['title']}">
|
|
${top_stat['rows'][loop.index]['title']}
|
|
</a>
|
|
% else:
|
|
${top_stat['rows'][loop.index]['title']}
|
|
% endif
|
|
</h5>
|
|
</div>
|
|
<div class="home-platforms-instance-list-last-user">
|
|
<h5>
|
|
% if top_stat['rows'][loop.index]['user_id']:
|
|
<a href="user?user_id=${top_stat['rows'][loop.index]['user_id']}" title="${top_stat['rows'][loop.index]['friendly_name']}">
|
|
${top_stat['rows'][loop.index]['friendly_name']}
|
|
</a>
|
|
% else:
|
|
${top_stat['rows'][loop.index]['friendly_name']}
|
|
% endif
|
|
</h5>
|
|
<p>
|
|
<span id="home-platforms-instance-list-last-watch-${loop.index + 1}">
|
|
<script>
|
|
$('#home-platforms-instance-list-last-watch-${loop.index + 1}').text(moment(${top_stat['rows'][loop.index]['last_watch']},"X").format(date_format));
|
|
</script>
|
|
</span> - ${top_stat['rows'][loop.index]['player']}
|
|
</p>
|
|
</div>
|
|
</div>
|
|
% if top_stat['rows'][loop.index]['rating_key']:
|
|
<a href="info?source=history&rating_key=${top_stat['rows'][loop.index]['rating_key']}" title="${top_stat['rows'][loop.index]['title']}">
|
|
% if top_stat['rows'][loop.index]['thumb']:
|
|
<div class="home-platforms-instance-list-poster">
|
|
<div class="home-platforms-list-poster-face" style="background-image: url(pms_image_proxy?img=${top_stat['rows'][loop.index]['thumb']}&width=300&height=450&fallback=poster);"></div>
|
|
</div>
|
|
% else:
|
|
<div class="home-platforms-instance-list-poster">
|
|
<div class="home-platforms-list-poster-face" style="background-image: url(${http_root}images/poster.png);"></div>
|
|
</div>
|
|
% endif
|
|
</a>
|
|
% else:
|
|
<div class="home-platforms-instance-list-poster">
|
|
<div class="home-platforms-list-poster-face" style="background-image: url(${http_root}images/poster.png);"></div>
|
|
</div>
|
|
% endif
|
|
<div class="home-platforms-instance-list-number">
|
|
<h4>${loop.index + 1}</h4>
|
|
</div>
|
|
</li>
|
|
% endif
|
|
% endfor
|
|
</div>
|
|
</div>
|
|
</ul>
|
|
% endif
|
|
</li>
|
|
</div>
|
|
% elif top_stat['stat_id'] == 'most_concurrent' and top_stat['rows']:
|
|
<div class="home-platforms-instance">
|
|
<li>
|
|
<div class="home-platforms-instance-info">
|
|
<div class="home-platforms-instance-name">
|
|
<h4>Most Concurrent Streams</h4>
|
|
</div>
|
|
<div class="home-platforms-instance-playcount">
|
|
<h4>
|
|
<span id="most-concurrent-start">
|
|
<script>
|
|
$('#most-concurrent-start').text(moment(${top_stat['rows'][0]['started']},"X").format(date_format + ' ' + time_format));
|
|
</script>
|
|
</span>
|
|
</h4>
|
|
<h3>${top_stat['rows'][0]['count']}</h3>
|
|
<p> streams</p>
|
|
</div>
|
|
</div>
|
|
<div class="home-platforms-instance-poster">
|
|
<div class="home-platforms-instance-box" style="background-image: url(${http_root}images/home-stat_most-concurrent.png);"></div>
|
|
</div>
|
|
% if len(top_stat['rows']) > 1:
|
|
<div class="home-platforms-instance-list-chevron"><i class="fa fa-chevron-down"></i></div>
|
|
<ul class="list-unstyled">
|
|
<div class="slider">
|
|
<div class="home-platforms-instance-list">
|
|
% for row in top_stat['rows']:
|
|
% if loop.index > 0:
|
|
<li>
|
|
<div class="home-platforms-instance-list-info">
|
|
<div class="home-platforms-instance-list-name">
|
|
<h5>
|
|
${top_stat['rows'][loop.index]['title']}
|
|
</h5>
|
|
</div>
|
|
<div class="home-platforms-instance-list-playcount">
|
|
<h3>${top_stat['rows'][loop.index]['count']}</h3>
|
|
<p> streams
|
|
% if top_stat['rows'][loop.index]['started']:
|
|
- <span id="most-concurrent-start-${loop.index + 1}">
|
|
<script>
|
|
$('#most-concurrent-start-${loop.index + 1}').text(moment(${top_stat['rows'][loop.index]['started']},"X").format(date_format + ' ' + time_format));
|
|
</script>
|
|
</span>
|
|
% else:
|
|
- N/A
|
|
% endif
|
|
</p>
|
|
</div>
|
|
</div>
|
|
<div class="home-platforms-instance-poster">
|
|
<div class="home-platforms-instance-list-box" style="background-image: url(${http_root}images/home-stat_most-concurrent.png);"></div>
|
|
</div>
|
|
</li>
|
|
% endif
|
|
% endfor
|
|
</div>
|
|
</div>
|
|
</ul>
|
|
% endif
|
|
</li>
|
|
</div>
|
|
% endif
|
|
% endfor
|
|
% else:
|
|
<div class="text-muted">No stats to show for the selected period.</div><br>
|
|
% endif
|
|
</ul>
|
|
<script>
|
|
var topZIndex = 2;
|
|
$('.home-platforms-instance-list-chevron').on('click', function() {
|
|
var instanceBoxChevron = $(this);
|
|
var instanceBox = $(this).parents('.home-platforms-instance');
|
|
var instanceBoxSlider = instanceBox.find('.slider');
|
|
|
|
topZIndex++;
|
|
instanceBoxChevron.toggleClass('active');
|
|
instanceBoxSlider.css('z-index', topZIndex);
|
|
instanceBoxSlider.stop().slideToggle(500);
|
|
});
|
|
</script>
|
|
% else:
|
|
<div class="text-muted">No stats to show for the selected period.</div><br>
|
|
% endif |