mirror of
https://github.com/Tautulli/Tautulli.git
synced 2025-08-14 02:26:58 -07:00
Add recently watched to user screen
This commit is contained in:
parent
fe6d5f17f0
commit
ba18c5b96e
6 changed files with 112 additions and 3 deletions
|
@ -414,9 +414,45 @@ class PlexWatch(object):
|
|||
'thumb': thumb,
|
||||
'index': self.get_xml_attr(a, 'index'),
|
||||
'parentIndex': self.get_xml_attr(a, 'parentIndex'),
|
||||
'year': self.get_xml_attr(a, 'year'),
|
||||
'time': row[0],
|
||||
'user': row[1]
|
||||
}
|
||||
recently_watched.append(recent_output)
|
||||
|
||||
return recently_watched
|
||||
return recently_watched
|
||||
|
||||
def get_user_watch_time_stats(self, user=None):
|
||||
myDB = db.DBConnection()
|
||||
|
||||
time_queries = [1, 7, 30, 0]
|
||||
user_watch_time_stats = []
|
||||
|
||||
for days in time_queries:
|
||||
if days > 0:
|
||||
where = 'WHERE datetime(stopped, "unixepoch", "localtime") >= datetime("now", "-%s days", "localtime") ' \
|
||||
'AND user = "%s"' % (days, user)
|
||||
else:
|
||||
where = 'WHERE user = "%s"' % user
|
||||
|
||||
query = 'SELECT (SUM(stopped - time) - SUM(CASE WHEN paused_counter is null THEN 0 ELSE paused_counter END)) as total_time, ' \
|
||||
'COUNT(id) AS total_plays ' \
|
||||
'FROM %s %s' % (self.get_user_table_name(), where)
|
||||
result = myDB.select(query)
|
||||
|
||||
for item in result:
|
||||
if item[0]:
|
||||
total_time = item[0]
|
||||
total_plays = item[1]
|
||||
else:
|
||||
total_time = 0
|
||||
total_plays = 0
|
||||
|
||||
row = {'query_days': days,
|
||||
'total_time': total_time,
|
||||
'total_plays': total_plays
|
||||
}
|
||||
|
||||
user_watch_time_stats.append(row)
|
||||
|
||||
return user_watch_time_stats
|
|
@ -543,7 +543,19 @@ class WebInterface(object):
|
|||
if result:
|
||||
return serve_template(templatename="user_recently_watched.html", recently_watched=result, title="Recently Watched")
|
||||
else:
|
||||
return serve_template(templatename="user_recently_watched.html", metadata='', title="Recently Watched")
|
||||
return serve_template(templatename="user_recently_watched.html", recently_watched='', title="Recently Watched")
|
||||
logger.warn('Unable to retrieve data.')
|
||||
|
||||
@cherrypy.expose
|
||||
def get_user_watch_time_stats(self, user=None, **kwargs):
|
||||
|
||||
plex_watch = plexwatch.PlexWatch()
|
||||
result = plex_watch.get_user_watch_time_stats(user)
|
||||
|
||||
if result:
|
||||
return serve_template(templatename="user_watch_time_stats.html", watch_stats=result, title="Watch Stats")
|
||||
else:
|
||||
return serve_template(templatename="user_watch_time_stats.html", watch_stats='', title="Watch Stats")
|
||||
logger.warn('Unable to retrieve data.')
|
||||
|
||||
@cherrypy.expose
|
||||
|
@ -618,3 +630,15 @@ class WebInterface(object):
|
|||
return json.dumps(result)
|
||||
else:
|
||||
logger.warn('Unable to retrieve data.')
|
||||
|
||||
@cherrypy.expose
|
||||
def get_time_stats(self, user=None, **kwargs):
|
||||
|
||||
plex_watch = plexwatch.PlexWatch()
|
||||
result = plex_watch.get_user_watch_time_stats(user)
|
||||
|
||||
if result:
|
||||
cherrypy.response.headers['Content-type'] = 'application/json'
|
||||
return json.dumps(result)
|
||||
else:
|
||||
logger.warn('Unable to retrieve data.')
|
Loading…
Add table
Add a link
Reference in a new issue