diff --git a/data/interfaces/default/config.html b/data/interfaces/default/config.html
index 92a92e14..8c90cfff 100644
--- a/data/interfaces/default/config.html
+++ b/data/interfaces/default/config.html
@@ -184,9 +184,10 @@
Full path and file name of your PlexWatch database.
-
Global History
-
Enable global history grouping.
+
Enable Grouping
+
Show grouped history data. More info.
+
diff --git a/data/interfaces/default/graphs.html b/data/interfaces/default/graphs.html
index 1ffae824..e3a939a5 100644
--- a/data/interfaces/default/graphs.html
+++ b/data/interfaces/default/graphs.html
@@ -85,6 +85,7 @@ from plexpy import helpers
type: 'get',
data: { time_range: '30' },
dataType: "json",
+ cache: false,
success: function(data) {
var dateArray = [];
for (var i = 0; i < data.categories.length; i++) {
@@ -102,6 +103,7 @@ from plexpy import helpers
type: 'get',
data: { time_range: '30' },
dataType: "json",
+ cache: false,
success: function(data) {
hc_plays_by_dayofweek_options.xAxis.categories = data.categories;
hc_plays_by_dayofweek_options.series = data.series;
@@ -114,6 +116,7 @@ from plexpy import helpers
type: 'get',
data: { time_range: '30' },
dataType: "json",
+ cache: false,
success: function(data) {
hc_plays_by_hourofday_options.xAxis.categories = data.categories;
hc_plays_by_hourofday_options.series = data.series;
diff --git a/data/interfaces/default/js/graphs/plays_by_day.js b/data/interfaces/default/js/graphs/plays_by_day.js
index f80140fc..10474ab5 100644
--- a/data/interfaces/default/js/graphs/plays_by_day.js
+++ b/data/interfaces/default/js/graphs/plays_by_day.js
@@ -40,7 +40,7 @@ var hc_plays_by_day_options = {
},
tooltip: {
formatter: function() {
- var monthStr = moment(this.x).format("MMM D");
+ var monthStr = moment(this.x).format("ddd MMM D");
var s = ''+ monthStr +'';
$.each(this.points, function(i, point) {
diff --git a/plexpy/__init__.py b/plexpy/__init__.py
index 21ab0148..15c2e351 100644
--- a/plexpy/__init__.py
+++ b/plexpy/__init__.py
@@ -298,7 +298,7 @@ def sig_handler(signum=None, frame=None):
def dbcheck():
- conn = sqlite3.connect(DB_FILE)
+ conn = sqlite3.connect(plexpy.CONFIG.PLEXWATCH_DATABASE)
c = conn.cursor()
conn.commit()
c.close()
diff --git a/plexpy/datatables.py b/plexpy/datatables.py
index a8812df5..f90103f3 100644
--- a/plexpy/datatables.py
+++ b/plexpy/datatables.py
@@ -99,10 +99,9 @@ class DataTables(object):
if int(order_column) == parameter['index']:
if parameter['data'] in column_data['column_named'] and parameter['orderable'] == 'true':
order = 'ORDER BY %s COLLATE NOCASE %s' % (parameter['data'], order_dir)
- logger.debug(u"order string %s " % order)
else:
order = 'ORDER BY %s COLLATE NOCASE %s' % (column_data['column_named'][order_column], order_dir)
- logger.debug(u"order string (NO param received) %s " % order)
+
return order
@staticmethod
@@ -115,11 +114,9 @@ class DataTables(object):
for parameter in parameters:
if column in parameter['data']:
if parameter['searchable'] == 'true':
- logger.debug(u"Column %s is searchable." % column)
where += column + ' LIKE "%' + search_value + '%" OR '
search_skip = True
else:
- logger.debug(u"Column %s is NOT searchable." % column)
search_skip = True
if not search_skip:
diff --git a/plexpy/db.py b/plexpy/db.py
index 86c03ae7..34fcb2f1 100644
--- a/plexpy/db.py
+++ b/plexpy/db.py
@@ -100,20 +100,6 @@ class DBConnection:
return sqlResult
- def get_history_table_name(self):
-
- if plexpy.CONFIG.GROUPING_GLOBAL_HISTORY:
- return "grouped"
- else:
- return "processed"
-
- def get_user_table_name(self):
-
- if plexpy.CONFIG.GROUPING_USER_HISTORY:
- return "grouped"
- else:
- return "processed"
-
def upsert(self, tableName, valueDict, keyDict):
changesBefore = self.connection.total_changes
diff --git a/plexpy/plexwatch.py b/plexpy/plexwatch.py
index af67bbce..b87ea4cb 100644
--- a/plexpy/plexwatch.py
+++ b/plexpy/plexwatch.py
@@ -13,7 +13,7 @@
# You should have received a copy of the GNU General Public License
# along with PlexPy. If not, see .
-from plexpy import logger, helpers, request, datatables, config, db
+from plexpy import logger, helpers, datatables, db
from xml.dom import minidom
import sys
if sys.version_info < (2, 7):
@@ -22,7 +22,6 @@ else:
from collections import defaultdict, Counter
import datetime
import plexpy
-import json
class PlexWatch(object):
@@ -41,14 +40,6 @@ class PlexWatch(object):
else:
return "processed"
- @staticmethod
- def get_user_table_name():
-
- if plexpy.CONFIG.GROUPING_USER_HISTORY:
- return "grouped"
- else:
- return "processed"
-
def get_user_list(self, start='', length='', kwargs=None):
data_tables = datatables.DataTables()
@@ -78,7 +69,7 @@ class PlexWatch(object):
'ip_address',
'COUNT(title) as plays']
try:
- query = data_tables.ssp_query(table_name=self.get_user_table_name(),
+ query = data_tables.ssp_query(table_name=self.get_history_table_name(),
columns=columns,
start=start,
length=length,
@@ -150,7 +141,7 @@ class PlexWatch(object):
]
try:
- query = data_tables.ssp_query(table_name=self.get_user_table_name(),
+ query = data_tables.ssp_query(table_name=self.get_history_table_name(),
columns=columns,
start=start,
length=length,
@@ -408,11 +399,11 @@ class PlexWatch(object):
try:
if user:
query = 'SELECT time, user, xml FROM %s WHERE user = "%s" ORDER BY time DESC LIMIT %s' % \
- (self.get_user_table_name(), user, limit)
+ (self.get_history_table_name(), user, limit)
xml = myDB.select(query)
else:
query = 'SELECT time, user, xml FROM %s ORDER BY time DESC LIMIT %s' % \
- (self.get_user_table_name(), limit)
+ (self.get_history_table_name(), limit)
xml = myDB.select(query)
except:
logger.warn("Unable to open PlexWatch database.")
@@ -467,7 +458,7 @@ class PlexWatch(object):
try:
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)
+ 'FROM %s %s' % (self.get_history_table_name(), where)
result = myDB.select(query)
except:
logger.warn("Unable to open PlexWatch database.")
@@ -501,7 +492,7 @@ class PlexWatch(object):
'FROM %s ' \
'WHERE user = "%s" ' \
'GROUP BY platform ' \
- 'ORDER BY platform_count DESC' % (self.get_user_table_name(), user)
+ 'ORDER BY platform_count DESC' % (self.get_history_table_name(), user)
result = myDB.select(query)
except:
logger.warn("Unable to open PlexWatch database.")
@@ -542,7 +533,7 @@ class PlexWatch(object):
query = 'SELECT xml ' \
'FROM %s ' \
'WHERE user = "%s" ' \
- 'ORDER BY id DESC LIMIT 1' % (self.get_user_table_name(), user)
+ 'ORDER BY id DESC LIMIT 1' % (self.get_history_table_name(), user)
result = myDB.select_single(query)
except:
logger.warn("Unable to open PlexWatch database.")
@@ -588,7 +579,7 @@ class PlexWatch(object):
'WHERE datetime(stopped, "unixepoch", "localtime") >= datetime("now", "-%s days", "localtime") ' \
'AND episode != "" ' \
'GROUP BY orig_title ' \
- 'ORDER BY total_plays DESC LIMIT 10' % (self.get_user_table_name(), time_range)
+ 'ORDER BY total_plays DESC LIMIT 10' % (self.get_history_table_name(), time_range)
result = myDB.select(query)
except:
logger.warn("Unable to open PlexWatch database.")
@@ -631,7 +622,7 @@ class PlexWatch(object):
'WHERE datetime(stopped, "unixepoch", "localtime") >= datetime("now", "-%s days", "localtime") ' \
'AND episode != "" ' \
'GROUP BY orig_title ' \
- 'ORDER BY users_watched DESC, total_plays DESC LIMIT 10' % (self.get_user_table_name(), time_range)
+ 'ORDER BY users_watched DESC, total_plays DESC LIMIT 10' % (self.get_history_table_name(), time_range)
result = myDB.select(query)
except:
logger.warn("Unable to open PlexWatch database.")
@@ -673,7 +664,7 @@ class PlexWatch(object):
'FROM %s ' \
'WHERE datetime(stopped, "unixepoch", "localtime") >= datetime("now", "-%s days", "localtime") ' \
'GROUP BY user ' \
- 'ORDER BY total_plays DESC LIMIT 10' % (self.get_user_table_name(), time_range)
+ 'ORDER BY total_plays DESC LIMIT 10' % (self.get_history_table_name(), time_range)
result = myDB.select(query)
except:
logger.warn("Unable to open PlexWatch database.")
@@ -699,7 +690,7 @@ class PlexWatch(object):
'FROM %s ' \
'WHERE datetime(stopped, "unixepoch", "localtime") >= datetime("now", "-%s days", "localtime") ' \
'GROUP BY platform ' \
- 'ORDER BY total_plays DESC' % (self.get_user_table_name(), time_range)
+ 'ORDER BY total_plays DESC' % (self.get_history_table_name(), time_range)
result = myDB.select(query)
except:
logger.warn("Unable to open PlexWatch database.")
@@ -750,7 +741,7 @@ class PlexWatch(object):
'FROM %s ' \
'WHERE datetime(stopped, "unixepoch", "localtime") >= datetime("now", "-%s days", "localtime") ' \
'GROUP BY date_played ' \
- 'ORDER BY time ASC' % (self.get_user_table_name(), time_range)
+ 'ORDER BY time ASC' % (self.get_history_table_name(), time_range)
result = myDB.select(query)
except:
@@ -808,7 +799,7 @@ class PlexWatch(object):
'when 5 then "Friday" ' \
'else "Saturday" end as dayofweek, ' \
'COUNT(id) as total_plays ' \
- 'from ' + self.get_user_table_name() + ' ' + \
+ 'from ' + self.get_history_table_name() + ' ' + \
'WHERE datetime(stopped, "unixepoch", "localtime") >= ' \
'datetime("now", "-' + time_range + ' days", "localtime") ' \
'GROUP BY dayofweek ' \
@@ -849,7 +840,7 @@ class PlexWatch(object):
query = 'select strftime("%H", datetime(time, "unixepoch", "localtime")) as hourofday, ' \
'COUNT(id) ' \
- 'FROM ' + self.get_user_table_name() + ' ' + \
+ 'FROM ' + self.get_history_table_name() + ' ' + \
'WHERE datetime(stopped, "unixepoch", "localtime") >= ' \
'datetime("now", "-' + time_range + ' days", "localtime") ' \
'GROUP BY hourofday ' \
diff --git a/plexpy/pmsconnect.py b/plexpy/pmsconnect.py
index 523268ea..c065430b 100644
--- a/plexpy/pmsconnect.py
+++ b/plexpy/pmsconnect.py
@@ -13,23 +13,13 @@
# You should have received a copy of the GNU General Public License
# along with PlexPy. If not, see .
-from plexpy import logger, helpers, common, request
+from plexpy import logger, helpers
from xml.dom import minidom
from httplib import HTTPSConnection
from httplib import HTTPConnection
-from urlparse import parse_qsl
-from urllib import urlencode
-from pynma import pynma
-import base64
-import cherrypy
-import urllib
-import urllib2
import plexpy
-import os.path
-import subprocess
-import json
class PmsConnect(object):
@@ -291,11 +281,9 @@ class PmsConnect(object):
if a.getElementsByTagName('Directory'):
metadata_main = a.getElementsByTagName('Directory')[0]
metadata_type = self.get_xml_attr(metadata_main, 'type')
- logger.debug(u"Metadata type: %s" % metadata_type)
elif a.getElementsByTagName('Video'):
metadata_main = a.getElementsByTagName('Video')[0]
metadata_type = self.get_xml_attr(metadata_main, 'type')
- logger.debug(u"Metadata type: %s" % metadata_type)
else:
logger.debug(u"Metadata failed")
@@ -307,22 +295,18 @@ class PmsConnect(object):
if metadata_main.getElementsByTagName('Genre'):
for genre in metadata_main.getElementsByTagName('Genre'):
genres.append(self.get_xml_attr(genre, 'tag'))
- logger.debug(u"Metadata genre: %s" % self.get_xml_attr(genre, 'tag'))
if metadata_main.getElementsByTagName('Role'):
for actor in metadata_main.getElementsByTagName('Role'):
actors.append(self.get_xml_attr(actor, 'tag'))
- logger.debug(u"Metadata actor: %s" % self.get_xml_attr(actor, 'tag'))
if metadata_main.getElementsByTagName('Writer'):
for writer in metadata_main.getElementsByTagName('Writer'):
writers.append(self.get_xml_attr(writer, 'tag'))
- logger.debug(u"Metadata genre: %s" % self.get_xml_attr(writer, 'tag'))
if metadata_main.getElementsByTagName('Director'):
for director in metadata_main.getElementsByTagName('Director'):
directors.append(self.get_xml_attr(director, 'tag'))
- logger.debug(u"Metadata actor: %s" % self.get_xml_attr(director, 'tag'))
if metadata_type == 'show':
metadata = {'type': metadata_type,
@@ -386,7 +370,6 @@ class PmsConnect(object):
elif metadata_type == 'season':
parent_rating_key = self.get_xml_attr(metadata_main, 'parentRatingKey')
show_details = self.get_metadata_details(parent_rating_key)
- logger.debug(u"show_details = %r" % show_details)
metadata = {'type': metadata_type,
'ratingKey': self.get_xml_attr(metadata_main, 'ratingKey'),
'parentTitle': self.get_xml_attr(metadata_main, 'parentTitle'),
@@ -447,7 +430,6 @@ class PmsConnect(object):
for a in xml_head:
if a.getAttribute('size'):
if a.getAttribute('size') == '0':
- logger.debug(u"No active sessions.")
session_list = {'stream_count': '0',
'sessions': []
}
@@ -456,14 +438,12 @@ class PmsConnect(object):
if a.getElementsByTagName('Track'):
session_data = a.getElementsByTagName('Track')
session_type = 'track'
- logger.debug(u"Track session active.")
for session in session_data:
session_output = self.get_session_each(session_type, session)
session_list.append(session_output)
if a.getElementsByTagName('Video'):
session_data = a.getElementsByTagName('Video')
session_type = 'video'
- logger.debug(u"Video session active.")
for session in session_data:
session_output = self.get_session_each(session_type, session)
session_list.append(session_output)
diff --git a/plexpy/webserve.py b/plexpy/webserve.py
index 4ac81d08..e11b5a5e 100644
--- a/plexpy/webserve.py
+++ b/plexpy/webserve.py
@@ -13,25 +13,17 @@
# You should have received a copy of the GNU General Public License
# along with PlexPy. If not, see .
-from plexpy import logger, helpers, notifiers, plextv, pmsconnect, plexwatch
-from plexpy.helpers import checked, radio, today, cleanName
-from xml.dom import minidom
+from plexpy import logger, notifiers, plextv, pmsconnect, plexwatch
+from plexpy.helpers import checked, radio
from mako.lookup import TemplateLookup
from mako import exceptions
-from operator import itemgetter
-
import plexpy
-import threading
import cherrypy
-import urllib2
import hashlib
import random
-import urllib
import json
-import time
-import sys
import os
try:
@@ -524,7 +516,6 @@ class WebInterface(object):
try:
pms_connect = pmsconnect.PmsConnect()
result = pms_connect.get_image(img, width, height)
- logger.debug(u'Image proxy queried. Content type is %s' % result[0])
cherrypy.response.headers['Content-type'] = result[0]
return result[1]
except: