From 6d13051b1eef2fd9aae5206ea0bb5206b6265adf Mon Sep 17 00:00:00 2001 From: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com> Date: Sat, 27 Mar 2021 19:54:21 -0700 Subject: [PATCH] Optimize library watch time query --- plexpy/libraries.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/plexpy/libraries.py b/plexpy/libraries.py index 19ef21c9..4c97927f 100644 --- a/plexpy/libraries.py +++ b/plexpy/libraries.py @@ -22,6 +22,7 @@ from future.builtins import object import json import os +from datetime import datetime, timedelta import plexpy if plexpy.PYTHON2: @@ -910,6 +911,8 @@ class Libraries(object): group_by = 'session_history.reference_id' if grouping else 'session_history.id' for days in query_days: + timestamp = int((datetime.now(tz=plexpy.SYS_TIMEZONE) - timedelta(days=days)).timestamp()) + try: if days > 0: if str(section_id).isdigit(): @@ -918,8 +921,8 @@ class Libraries(object): 'COUNT(DISTINCT %s) AS total_plays ' \ 'FROM session_history ' \ 'JOIN session_history_metadata ON session_history_metadata.id = session_history.id ' \ - 'WHERE datetime(stopped, "unixepoch", "localtime") >= datetime("now", "-%s days", "localtime") ' \ - 'AND section_id = ?' % (group_by, days) + 'WHERE stopped >= %s ' \ + 'AND section_id = ?' % (group_by, timestamp) result = monitor_db.select(query, args=[section_id]) else: result = []