Allow custom time_queries for get_watch_stats

This commit is contained in:
Mitch 2020-04-05 20:03:57 +02:00
parent 16ffbd9940
commit d1f1763919
4 changed files with 21 additions and 8 deletions

2
API.md
View file

@ -1066,6 +1066,7 @@ Required parameters:
Optional parameters:
grouping (int): 0 or 1
time_queries (str): "1, 7, 30, 0"
Returns:
json:
@ -2378,6 +2379,7 @@ Required parameters:
Optional parameters:
grouping (int): 0 or 1
time_queries (str): "1, 7, 30, 0"
Returns:
json:

View file

@ -812,16 +812,20 @@ class Libraries(object):
# If there is no library data we must return something
return default_return
def get_watch_time_stats(self, section_id=None, grouping=None):
def get_watch_time_stats(self, section_id=None, grouping=None, time_queries=None):
if not session.allow_session_library(section_id):
return []
if grouping is None:
grouping = plexpy.CONFIG.GROUP_HISTORY_TABLES
if time_queries is not None:
time_queries = map(int, time_queries.split(","))
else:
time_queries = [1, 7, 30, 0]
monitor_db = database.MonitorDatabase()
time_queries = [1, 7, 30, 0]
library_watch_time_stats = []
group_by = 'session_history.reference_id' if grouping else 'session_history.id'

View file

@ -434,16 +434,20 @@ class Users(object):
# Use "Local" user to retain compatibility with PlexWatch database value
return default_return
def get_watch_time_stats(self, user_id=None, grouping=None):
def get_watch_time_stats(self, user_id=None, grouping=None, time_queries=None):
if not session.allow_session_user(user_id):
return []
if grouping is None:
grouping = plexpy.CONFIG.GROUP_HISTORY_TABLES
if time_queries is not None:
time_queries = map(int, time_queries.split(","))
else:
time_queries = [1, 7, 30, 0]
monitor_db = database.MonitorDatabase()
time_queries = [1, 7, 30, 0]
user_watch_time_stats = []
group_by = 'reference_id' if grouping else 'id'

View file

@ -810,7 +810,7 @@ class WebInterface(object):
@cherrypy.tools.json_out()
@requireAuth(member_of("admin"))
@addtoapi()
def get_library_watch_time_stats(self, section_id=None, grouping=None, **kwargs):
def get_library_watch_time_stats(self, section_id=None, grouping=None, time_queries=None, **kwargs):
""" Get a library's watch time statistics.
```
@ -819,6 +819,7 @@ class WebInterface(object):
Optional parameters:
grouping (int): 0 or 1
time_queries (str): "1, 7, 30, 0"
Returns:
json:
@ -845,7 +846,8 @@ class WebInterface(object):
if section_id:
library_data = libraries.Libraries()
result = library_data.get_watch_time_stats(section_id=section_id, grouping=grouping)
result = library_data.get_watch_time_stats(section_id=section_id, grouping=grouping,
time_queries=time_queries)
if result:
return result
else:
@ -1427,7 +1429,7 @@ class WebInterface(object):
@cherrypy.tools.json_out()
@requireAuth(member_of("admin"))
@addtoapi()
def get_user_watch_time_stats(self, user_id=None, grouping=None, **kwargs):
def get_user_watch_time_stats(self, user_id=None, grouping=None, time_queries=None, **kwargs):
""" Get a user's watch time statistics.
```
@ -1436,6 +1438,7 @@ class WebInterface(object):
Optional parameters:
grouping (int): 0 or 1
time_queries (str): "1, 7, 30, 0"
Returns:
json:
@ -1462,7 +1465,7 @@ class WebInterface(object):
if user_id:
user_data = users.Users()
result = user_data.get_watch_time_stats(user_id=user_id, grouping=grouping)
result = user_data.get_watch_time_stats(user_id=user_id, grouping=grouping, time_queries=time_queries)
if result:
return result
else: