mirror of
https://github.com/Tautulli/Tautulli.git
synced 2025-07-12 00:06:07 -07:00
Merge pull request #1372 from KaasKop97/custom_time_queries
Allow custom time_queries for get_watch_stats (Closes #1345)
This commit is contained in:
commit
bcbfaae630
4 changed files with 21 additions and 8 deletions
2
API.md
2
API.md
|
@ -1066,6 +1066,7 @@ Required parameters:
|
||||||
|
|
||||||
Optional parameters:
|
Optional parameters:
|
||||||
grouping (int): 0 or 1
|
grouping (int): 0 or 1
|
||||||
|
time_queries (str): "1, 7, 30, 0"
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
json:
|
json:
|
||||||
|
@ -2378,6 +2379,7 @@ Required parameters:
|
||||||
|
|
||||||
Optional parameters:
|
Optional parameters:
|
||||||
grouping (int): 0 or 1
|
grouping (int): 0 or 1
|
||||||
|
time_queries (str): "1, 7, 30, 0"
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
json:
|
json:
|
||||||
|
|
|
@ -812,16 +812,20 @@ class Libraries(object):
|
||||||
# If there is no library data we must return something
|
# If there is no library data we must return something
|
||||||
return default_return
|
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):
|
if not session.allow_session_library(section_id):
|
||||||
return []
|
return []
|
||||||
|
|
||||||
if grouping is None:
|
if grouping is None:
|
||||||
grouping = plexpy.CONFIG.GROUP_HISTORY_TABLES
|
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()
|
monitor_db = database.MonitorDatabase()
|
||||||
|
|
||||||
time_queries = [1, 7, 30, 0]
|
|
||||||
library_watch_time_stats = []
|
library_watch_time_stats = []
|
||||||
|
|
||||||
group_by = 'session_history.reference_id' if grouping else 'session_history.id'
|
group_by = 'session_history.reference_id' if grouping else 'session_history.id'
|
||||||
|
|
|
@ -434,16 +434,20 @@ class Users(object):
|
||||||
# Use "Local" user to retain compatibility with PlexWatch database value
|
# Use "Local" user to retain compatibility with PlexWatch database value
|
||||||
return default_return
|
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):
|
if not session.allow_session_user(user_id):
|
||||||
return []
|
return []
|
||||||
|
|
||||||
if grouping is None:
|
if grouping is None:
|
||||||
grouping = plexpy.CONFIG.GROUP_HISTORY_TABLES
|
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()
|
monitor_db = database.MonitorDatabase()
|
||||||
|
|
||||||
time_queries = [1, 7, 30, 0]
|
|
||||||
user_watch_time_stats = []
|
user_watch_time_stats = []
|
||||||
|
|
||||||
group_by = 'reference_id' if grouping else 'id'
|
group_by = 'reference_id' if grouping else 'id'
|
||||||
|
|
|
@ -812,7 +812,7 @@ class WebInterface(object):
|
||||||
@cherrypy.tools.json_out()
|
@cherrypy.tools.json_out()
|
||||||
@requireAuth(member_of("admin"))
|
@requireAuth(member_of("admin"))
|
||||||
@addtoapi()
|
@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.
|
""" Get a library's watch time statistics.
|
||||||
|
|
||||||
```
|
```
|
||||||
|
@ -821,6 +821,7 @@ class WebInterface(object):
|
||||||
|
|
||||||
Optional parameters:
|
Optional parameters:
|
||||||
grouping (int): 0 or 1
|
grouping (int): 0 or 1
|
||||||
|
time_queries (str): "1, 7, 30, 0"
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
json:
|
json:
|
||||||
|
@ -847,7 +848,8 @@ class WebInterface(object):
|
||||||
|
|
||||||
if section_id:
|
if section_id:
|
||||||
library_data = libraries.Libraries()
|
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:
|
if result:
|
||||||
return result
|
return result
|
||||||
else:
|
else:
|
||||||
|
@ -1431,7 +1433,7 @@ class WebInterface(object):
|
||||||
@cherrypy.tools.json_out()
|
@cherrypy.tools.json_out()
|
||||||
@requireAuth(member_of("admin"))
|
@requireAuth(member_of("admin"))
|
||||||
@addtoapi()
|
@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.
|
""" Get a user's watch time statistics.
|
||||||
|
|
||||||
```
|
```
|
||||||
|
@ -1440,6 +1442,7 @@ class WebInterface(object):
|
||||||
|
|
||||||
Optional parameters:
|
Optional parameters:
|
||||||
grouping (int): 0 or 1
|
grouping (int): 0 or 1
|
||||||
|
time_queries (str): "1, 7, 30, 0"
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
json:
|
json:
|
||||||
|
@ -1466,7 +1469,7 @@ class WebInterface(object):
|
||||||
|
|
||||||
if user_id:
|
if user_id:
|
||||||
user_data = users.Users()
|
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:
|
if result:
|
||||||
return result
|
return result
|
||||||
else:
|
else:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue