mirror of
https://github.com/Tautulli/Tautulli.git
synced 2025-07-07 21:51:14 -07:00
Fix Live TV shown on user page and user tables
This commit is contained in:
parent
d48273ef98
commit
5c207aeee6
3 changed files with 59 additions and 33 deletions
|
@ -91,25 +91,19 @@ user_ip_table_options = {
|
||||||
if (rowData['media_type'] === 'movie') {
|
if (rowData['media_type'] === 'movie') {
|
||||||
icon = (rowData['live']) ? 'fa-broadcast-tower' : 'fa-film';
|
icon = (rowData['live']) ? 'fa-broadcast-tower' : 'fa-film';
|
||||||
icon_title = (rowData['live']) ? 'Live TV' : 'Movie';
|
icon_title = (rowData['live']) ? 'Live TV' : 'Movie';
|
||||||
if (rowData['year']) {
|
if (rowData['year']) { parent_info = ' (' + rowData['year'] + ')'; }
|
||||||
parent_info = ' (' + rowData['year'] + ')';
|
|
||||||
}
|
|
||||||
media_type = '<span class="media-type-tooltip" data-toggle="tooltip" title="' + icon_title + '"><i class="fa ' + icon + ' fa-fw"></i></span>';
|
media_type = '<span class="media-type-tooltip" data-toggle="tooltip" title="' + icon_title + '"><i class="fa ' + icon + ' fa-fw"></i></span>';
|
||||||
thumb_popover = '<span class="thumb-tooltip" data-toggle="popover" data-img="pms_image_proxy?img=' + rowData['thumb'] + '&width=300&height=450&fallback=' + fallback + '" data-height="120" data-width="80">' + cellData + parent_info + '</span>'
|
thumb_popover = '<span class="thumb-tooltip" data-toggle="popover" data-img="pms_image_proxy?img=' + rowData['thumb'] + '&width=300&height=450&fallback=' + fallback + '" data-height="120" data-width="80">' + cellData + parent_info + '</span>'
|
||||||
$(td).html('<div class="history-title"><a href="info?source=history&rating_key=' + rowData['rating_key'] + '"><div style="float: left;">' + media_type + ' ' + thumb_popover + '</div></a></div>');
|
$(td).html('<div class="history-title"><a href="info?source=history&rating_key=' + rowData['rating_key'] + '"><div style="float: left;">' + media_type + ' ' + thumb_popover + '</div></a></div>');
|
||||||
} else if (rowData['media_type'] === 'episode') {
|
} else if (rowData['media_type'] === 'episode') {
|
||||||
icon = (rowData['live']) ? 'fa-broadcast-tower' : 'fa-television';
|
icon = (rowData['live']) ? 'fa-broadcast-tower' : 'fa-television';
|
||||||
icon_title = (rowData['live']) ? 'Live TV' : 'Movie';
|
icon_title = (rowData['live']) ? 'Live TV' : 'Movie';
|
||||||
if (!isNaN(parseInt(rowData['parent_media_index'])) && !isNaN(parseInt(rowData['media_index']))) {
|
if (!isNaN(parseInt(rowData['parent_media_index'])) && !isNaN(parseInt(rowData['media_index']))) { parent_info = ' (S' + rowData['parent_media_index'] + ' · E' + rowData['media_index'] + ')'; }
|
||||||
parent_info = ' (S' + rowData['parent_media_index'] + ' · E' + rowData['media_index'] + ')';
|
|
||||||
}
|
|
||||||
media_type = '<span class="media-type-tooltip" data-toggle="tooltip" title="' + icon_title + '"><i class="fa ' + icon + ' fa-fw"></i></span>';
|
media_type = '<span class="media-type-tooltip" data-toggle="tooltip" title="' + icon_title + '"><i class="fa ' + icon + ' fa-fw"></i></span>';
|
||||||
thumb_popover = '<span class="thumb-tooltip" data-toggle="popover" data-img="pms_image_proxy?img=' + rowData['thumb'] + '&width=300&height=450&fallback=' + fallback + '" data-height="120" data-width="80">' + cellData + parent_info + '</span>'
|
thumb_popover = '<span class="thumb-tooltip" data-toggle="popover" data-img="pms_image_proxy?img=' + rowData['thumb'] + '&width=300&height=450&fallback=' + fallback + '" data-height="120" data-width="80">' + cellData + parent_info + '</span>'
|
||||||
$(td).html('<div class="history-title"><a href="info?source=history&rating_key=' + rowData['rating_key'] + '"><div style="float: left;" >' + media_type + ' ' + thumb_popover + '</div></a></div>');
|
$(td).html('<div class="history-title"><a href="info?source=history&rating_key=' + rowData['rating_key'] + '"><div style="float: left;" >' + media_type + ' ' + thumb_popover + '</div></a></div>');
|
||||||
} else if (rowData['media_type'] === 'track') {
|
} else if (rowData['media_type'] === 'track') {
|
||||||
if (rowData['parent_title']) {
|
if (rowData['parent_title']) { parent_info = ' (' + rowData['parent_title'] + ')'; }
|
||||||
parent_info = ' (' + rowData['parent_title'] + ')';
|
|
||||||
}
|
|
||||||
media_type = '<span class="media-type-tooltip" data-toggle="tooltip" title="Track"><i class="fa fa-music fa-fw"></i></span>';
|
media_type = '<span class="media-type-tooltip" data-toggle="tooltip" title="Track"><i class="fa fa-music fa-fw"></i></span>';
|
||||||
thumb_popover = '<span class="thumb-tooltip" data-toggle="popover" data-img="pms_image_proxy?img=' + rowData['thumb'] + '&width=300&height=300&fallback=cover" data-height="80" data-width="80">' + cellData + parent_info + '</span>'
|
thumb_popover = '<span class="thumb-tooltip" data-toggle="popover" data-img="pms_image_proxy?img=' + rowData['thumb'] + '&width=300&height=300&fallback=cover" data-height="80" data-width="80">' + cellData + parent_info + '</span>'
|
||||||
$(td).html('<div class="history-title"><a href="info?source=history&rating_key=' + rowData['rating_key'] + '"><div style="float: left;">' + media_type + ' ' + thumb_popover + '</div></a></div>');
|
$(td).html('<div class="history-title"><a href="info?source=history&rating_key=' + rowData['rating_key'] + '"><div style="float: left;">' + media_type + ' ' + thumb_popover + '</div></a></div>');
|
||||||
|
|
|
@ -56,6 +56,24 @@ DOCUMENTATION :: END
|
||||||
</a>
|
</a>
|
||||||
<div class="dashboard-recent-media-metacontainer">
|
<div class="dashboard-recent-media-metacontainer">
|
||||||
% if item['media_type'] == 'episode':
|
% if item['media_type'] == 'episode':
|
||||||
|
% if item['live']:
|
||||||
|
<h3>
|
||||||
|
<a href="info?source=history&rating_key=${item['rating_key']}" title="${item['grandparent_title']}">${item['grandparent_title']}</a>
|
||||||
|
</h3>
|
||||||
|
<h3 class="text-muted" title="${item['title']}">
|
||||||
|
<a href="info?source=history&rating_key=${item['rating_key']}" title="${item['title']}">${item['title']}</a>
|
||||||
|
</h3>
|
||||||
|
% if item['media_index']:
|
||||||
|
<h3 class="text-muted">
|
||||||
|
<a href="info?source=history&rating_key=${item['rating_key']}" title="Season ${item['parent_media_index']}">S${item['parent_media_index']}</a>
|
||||||
|
· <a href="info?source=history&rating_key=${item['rating_key']}" title="Episode ${item['media_index']}">E${item['media_index']}</a>
|
||||||
|
</h3>
|
||||||
|
% else:
|
||||||
|
<h3 class="text-muted">
|
||||||
|
<a href="info?source=history&rating_key=${item['rating_key']}" title="${item['originally_available_at']}">${item['originally_available_at']}</a>
|
||||||
|
</h3>
|
||||||
|
% endif
|
||||||
|
% else:
|
||||||
<h3>
|
<h3>
|
||||||
<a href="info?rating_key=${item['grandparent_rating_key']}" title="${item['grandparent_title']}">${item['grandparent_title']}</a>
|
<a href="info?rating_key=${item['grandparent_rating_key']}" title="${item['grandparent_title']}">${item['grandparent_title']}</a>
|
||||||
</h3>
|
</h3>
|
||||||
|
@ -66,6 +84,7 @@ DOCUMENTATION :: END
|
||||||
<a href="info?rating_key=${item['parent_rating_key']}" title="Season ${item['parent_media_index']}">S${item['parent_media_index']}</a>
|
<a href="info?rating_key=${item['parent_rating_key']}" title="Season ${item['parent_media_index']}">S${item['parent_media_index']}</a>
|
||||||
· <a href="info?source=history&rating_key=${item['rating_key']}" title="Episode ${item['media_index']}">E${item['media_index']}</a>
|
· <a href="info?source=history&rating_key=${item['rating_key']}" title="Episode ${item['media_index']}">E${item['media_index']}</a>
|
||||||
</h3>
|
</h3>
|
||||||
|
% endif
|
||||||
% elif item['media_type'] == 'movie':
|
% elif item['media_type'] == 'movie':
|
||||||
<h3 title="${item['title']}">
|
<h3 title="${item['title']}">
|
||||||
<a href="info?source=history&rating_key=${item['rating_key']}" title="${item['title']}">${item['title']}</a>
|
<a href="info?source=history&rating_key=${item['rating_key']}" title="${item['title']}">${item['title']}</a>
|
||||||
|
|
|
@ -13,6 +13,7 @@
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with Tautulli. If not, see <http://www.gnu.org/licenses/>.
|
# along with Tautulli. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
import arrow
|
||||||
import httpagentparser
|
import httpagentparser
|
||||||
import time
|
import time
|
||||||
|
|
||||||
|
@ -116,6 +117,7 @@ class Users(object):
|
||||||
'session_history_metadata.year',
|
'session_history_metadata.year',
|
||||||
'session_history_metadata.media_index',
|
'session_history_metadata.media_index',
|
||||||
'session_history_metadata.parent_media_index',
|
'session_history_metadata.parent_media_index',
|
||||||
|
'session_history_metadata.live',
|
||||||
'session_history_media_info.transcode_decision',
|
'session_history_media_info.transcode_decision',
|
||||||
'users.do_notify as do_notify',
|
'users.do_notify as do_notify',
|
||||||
'users.keep_history as keep_history',
|
'users.keep_history as keep_history',
|
||||||
|
@ -179,6 +181,7 @@ class Users(object):
|
||||||
'year': item['year'],
|
'year': item['year'],
|
||||||
'media_index': item['media_index'],
|
'media_index': item['media_index'],
|
||||||
'parent_media_index': item['parent_media_index'],
|
'parent_media_index': item['parent_media_index'],
|
||||||
|
'live': item['live'],
|
||||||
'transcode_decision': item['transcode_decision'],
|
'transcode_decision': item['transcode_decision'],
|
||||||
'do_notify': helpers.checked(item['do_notify']),
|
'do_notify': helpers.checked(item['do_notify']),
|
||||||
'keep_history': helpers.checked(item['keep_history']),
|
'keep_history': helpers.checked(item['keep_history']),
|
||||||
|
@ -225,6 +228,7 @@ class Users(object):
|
||||||
'session_history_metadata.year',
|
'session_history_metadata.year',
|
||||||
'session_history_metadata.media_index',
|
'session_history_metadata.media_index',
|
||||||
'session_history_metadata.parent_media_index',
|
'session_history_metadata.parent_media_index',
|
||||||
|
'session_history_metadata.live',
|
||||||
'session_history_media_info.transcode_decision',
|
'session_history_media_info.transcode_decision',
|
||||||
'session_history.user',
|
'session_history.user',
|
||||||
'session_history.user_id as custom_user_id',
|
'session_history.user_id as custom_user_id',
|
||||||
|
@ -279,6 +283,7 @@ class Users(object):
|
||||||
'year': item['year'],
|
'year': item['year'],
|
||||||
'media_index': item['media_index'],
|
'media_index': item['media_index'],
|
||||||
'parent_media_index': item['parent_media_index'],
|
'parent_media_index': item['parent_media_index'],
|
||||||
|
'live': item['live'],
|
||||||
'transcode_decision': item['transcode_decision'],
|
'transcode_decision': item['transcode_decision'],
|
||||||
'friendly_name': item['friendly_name'],
|
'friendly_name': item['friendly_name'],
|
||||||
'user_id': item['custom_user_id']
|
'user_id': item['custom_user_id']
|
||||||
|
@ -538,7 +543,7 @@ class Users(object):
|
||||||
'session_history.rating_key, session_history.parent_rating_key, session_history.grandparent_rating_key, ' \
|
'session_history.rating_key, session_history.parent_rating_key, session_history.grandparent_rating_key, ' \
|
||||||
'title, parent_title, grandparent_title, original_title, ' \
|
'title, parent_title, grandparent_title, original_title, ' \
|
||||||
'thumb, parent_thumb, grandparent_thumb, media_index, parent_media_index, ' \
|
'thumb, parent_thumb, grandparent_thumb, media_index, parent_media_index, ' \
|
||||||
'year, started, user ' \
|
'year, originally_available_at, added_at, live, started, user ' \
|
||||||
'FROM session_history_metadata ' \
|
'FROM session_history_metadata ' \
|
||||||
'JOIN session_history ON session_history_metadata.id = session_history.id ' \
|
'JOIN session_history ON session_history_metadata.id = session_history.id ' \
|
||||||
'WHERE user_id = ? ' \
|
'WHERE user_id = ? ' \
|
||||||
|
@ -553,30 +558,38 @@ class Users(object):
|
||||||
result = []
|
result = []
|
||||||
|
|
||||||
for row in result:
|
for row in result:
|
||||||
if row['media_type'] == 'episode' and row['parent_thumb']:
|
if row['media_type'] == 'episode' and row['parent_thumb']:
|
||||||
thumb = row['parent_thumb']
|
thumb = row['parent_thumb']
|
||||||
elif row['media_type'] == 'episode':
|
elif row['media_type'] == 'episode':
|
||||||
thumb = row['grandparent_thumb']
|
thumb = row['grandparent_thumb']
|
||||||
else:
|
else:
|
||||||
thumb = row['thumb']
|
thumb = row['thumb']
|
||||||
|
|
||||||
recent_output = {'row_id': row['id'],
|
if row['live']:
|
||||||
'media_type': row['media_type'],
|
# Fake Live TV air date using added_at timestamp
|
||||||
'rating_key': row['rating_key'],
|
originally_available_at = row['originally_available_at'] or arrow.get(row['added_at']).format('YYYY-MM-DD')
|
||||||
'parent_rating_key': row['parent_rating_key'],
|
else:
|
||||||
'grandparent_rating_key': row['grandparent_rating_key'],
|
originally_available_at = row['originally_available_at']
|
||||||
'title': row['title'],
|
|
||||||
'parent_title': row['parent_title'],
|
recent_output = {'row_id': row['id'],
|
||||||
'grandparent_title': row['grandparent_title'],
|
'media_type': row['media_type'],
|
||||||
'original_title': row['original_title'],
|
'rating_key': row['rating_key'],
|
||||||
'thumb': thumb,
|
'parent_rating_key': row['parent_rating_key'],
|
||||||
'media_index': row['media_index'],
|
'grandparent_rating_key': row['grandparent_rating_key'],
|
||||||
'parent_media_index': row['parent_media_index'],
|
'title': row['title'],
|
||||||
'year': row['year'],
|
'parent_title': row['parent_title'],
|
||||||
'time': row['started'],
|
'grandparent_title': row['grandparent_title'],
|
||||||
'user': row['user']
|
'original_title': row['original_title'],
|
||||||
}
|
'thumb': thumb,
|
||||||
recently_watched.append(recent_output)
|
'media_index': row['media_index'],
|
||||||
|
'parent_media_index': row['parent_media_index'],
|
||||||
|
'year': row['year'],
|
||||||
|
'originally_available_at': originally_available_at,
|
||||||
|
'live': row['live'],
|
||||||
|
'time': row['started'],
|
||||||
|
'user': row['user']
|
||||||
|
}
|
||||||
|
recently_watched.append(recent_output)
|
||||||
|
|
||||||
return recently_watched
|
return recently_watched
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue