diff --git a/data/interfaces/default/graphs.html b/data/interfaces/default/graphs.html
index b79ef59a..c74fa590 100644
--- a/data/interfaces/default/graphs.html
+++ b/data/interfaces/default/graphs.html
@@ -305,6 +305,23 @@
setLocalStorage(chart_key, JSON.stringify(chart_visibility));
}
+
+ function getGraphColors(data_series) {
+ var colors = {
+ 'TV': '#E5A00D',
+ 'Movies': '#FFFFFF',
+ 'Music': '#F06464',
+ 'Live TV': '#19A0D7',
+ 'Direct Play': '#E5A00D',
+ 'Direct Stream': '#FFFFFF',
+ 'Transcode': '#F06464'
+ };
+ var series_colors = [];
+ $.each(data_series, function(index, series) {
+ series_colors.push(colors[series.name]);
+ });
+ return series_colors;
+ }
@@ -391,6 +408,7 @@
hc_plays_by_day_options.yAxis.min = 0;
hc_plays_by_day_options.xAxis.categories = dateArray;
hc_plays_by_day_options.series = getGraphVisibility(hc_plays_by_day_options.chart.renderTo, data.series);
+ hc_plays_by_day_options.colors = getGraphColors(data.series);
var hc_plays_by_day = new Highcharts.Chart(hc_plays_by_day_options);
}
});
@@ -404,6 +422,7 @@
if (yaxis === 'duration') { dataSecondsToHours(data); }
hc_plays_by_dayofweek_options.xAxis.categories = data.categories;
hc_plays_by_dayofweek_options.series = getGraphVisibility(hc_plays_by_dayofweek_options.chart.renderTo, data.series);
+ hc_plays_by_dayofweek_options.colors = getGraphColors(data.series);
var hc_plays_by_dayofweek = new Highcharts.Chart(hc_plays_by_dayofweek_options);
}
});
@@ -417,6 +436,7 @@
if (yaxis === 'duration') { dataSecondsToHours(data); }
hc_plays_by_hourofday_options.xAxis.categories = data.categories;
hc_plays_by_hourofday_options.series = getGraphVisibility(hc_plays_by_hourofday_options.chart.renderTo, data.series);
+ hc_plays_by_hourofday_options.colors = getGraphColors(data.series);
var hc_plays_by_hourofday = new Highcharts.Chart(hc_plays_by_hourofday_options);
}
});
@@ -430,6 +450,7 @@
if (yaxis === 'duration') { dataSecondsToHours(data); }
hc_plays_by_platform_options.xAxis.categories = data.categories;
hc_plays_by_platform_options.series = getGraphVisibility(hc_plays_by_platform_options.chart.renderTo, data.series);
+ hc_plays_by_platform_options.colors = getGraphColors(data.series);
var hc_plays_by_platform = new Highcharts.Chart(hc_plays_by_platform_options);
}
});
@@ -443,6 +464,7 @@
if (yaxis === 'duration') { dataSecondsToHours(data); }
hc_plays_by_user_options.xAxis.categories = data.categories;
hc_plays_by_user_options.series = getGraphVisibility(hc_plays_by_user_options.chart.renderTo, data.series);
+ hc_plays_by_user_options.colors = getGraphColors(data.series);
var hc_plays_by_user = new Highcharts.Chart(hc_plays_by_user_options);
}
});
@@ -479,6 +501,7 @@
hc_plays_by_stream_type_options.yAxis.min = 0;
hc_plays_by_stream_type_options.xAxis.categories = dateArray;
hc_plays_by_stream_type_options.series = getGraphVisibility(hc_plays_by_stream_type_options.chart.renderTo, data.series);
+ hc_plays_by_stream_type_options.colors = getGraphColors(data.series);
var hc_plays_by_stream_type = new Highcharts.Chart(hc_plays_by_stream_type_options);
}
});
@@ -492,6 +515,7 @@
if (yaxis === 'duration') { dataSecondsToHours(data); }
hc_plays_by_source_resolution_options.xAxis.categories = data.categories;
hc_plays_by_source_resolution_options.series = getGraphVisibility(hc_plays_by_source_resolution_options.chart.renderTo, data.series);
+ hc_plays_by_source_resolution_options.colors = getGraphColors(data.series);
var hc_plays_by_source_resolution = new Highcharts.Chart(hc_plays_by_source_resolution_options);
}
});
@@ -505,6 +529,7 @@
if (yaxis === 'duration') { dataSecondsToHours(data); }
hc_plays_by_stream_resolution_options.xAxis.categories = data.categories;
hc_plays_by_stream_resolution_options.series = getGraphVisibility(hc_plays_by_stream_resolution_options.chart.renderTo, data.series);
+ hc_plays_by_stream_resolution_options.colors = getGraphColors(data.series);
var hc_plays_by_stream_resolution = new Highcharts.Chart(hc_plays_by_stream_resolution_options);
}
});
@@ -518,6 +543,7 @@
if (yaxis === 'duration') { dataSecondsToHours(data); }
hc_plays_by_platform_by_stream_type_options.xAxis.categories = data.categories;
hc_plays_by_platform_by_stream_type_options.series = getGraphVisibility(hc_plays_by_platform_by_stream_type_options.chart.renderTo, data.series);
+ hc_plays_by_platform_by_stream_type_options.colors = getGraphColors(data.series);
var hc_plays_by_platform_by_stream_type = new Highcharts.Chart(hc_plays_by_platform_by_stream_type_options);
}
});
@@ -531,6 +557,7 @@
if (yaxis === 'duration') { dataSecondsToHours(data); }
hc_plays_by_user_by_stream_type_options.xAxis.categories = data.categories;
hc_plays_by_user_by_stream_type_options.series = getGraphVisibility(hc_plays_by_user_by_stream_type_options.chart.renderTo, data.series);
+ hc_plays_by_user_by_stream_type_options.colors = getGraphColors(data.series);
var hc_plays_by_user_by_stream_type = new Highcharts.Chart(hc_plays_by_user_by_stream_type_options);
}
});
@@ -554,6 +581,7 @@
hc_plays_by_month_options.yAxis.min = 0;
hc_plays_by_month_options.xAxis.categories = data.categories;
hc_plays_by_month_options.series = getGraphVisibility(hc_plays_by_month_options.chart.renderTo, data.series);
+ hc_plays_by_month_options.colors = getGraphColors(data.series);
var hc_plays_by_month = new Highcharts.Chart(hc_plays_by_month_options);
}
});
diff --git a/data/interfaces/default/js/graphs/plays_by_day.js b/data/interfaces/default/js/graphs/plays_by_day.js
index da6de24d..3252403e 100644
--- a/data/interfaces/default/js/graphs/plays_by_day.js
+++ b/data/interfaces/default/js/graphs/plays_by_day.js
@@ -40,7 +40,6 @@ var hc_plays_by_day_options = {
}
}
},
- colors: ['#E5A00D', '#FFFFFF', '#F06464', '#19A0D7'],
xAxis: {
type: 'datetime',
labels: {
diff --git a/data/interfaces/default/js/graphs/plays_by_dayofweek.js b/data/interfaces/default/js/graphs/plays_by_dayofweek.js
index d3cf4dfe..84337f8d 100644
--- a/data/interfaces/default/js/graphs/plays_by_dayofweek.js
+++ b/data/interfaces/default/js/graphs/plays_by_dayofweek.js
@@ -23,7 +23,6 @@ var hc_plays_by_dayofweek_options = {
credits: {
enabled: false
},
- colors: ['#E5A00D', '#FFFFFF', '#F06464', '#19A0D7'],
xAxis: {
categories: [{}],
labels: {
diff --git a/data/interfaces/default/js/graphs/plays_by_hourofday.js b/data/interfaces/default/js/graphs/plays_by_hourofday.js
index a36d37c0..e9d0ca4c 100644
--- a/data/interfaces/default/js/graphs/plays_by_hourofday.js
+++ b/data/interfaces/default/js/graphs/plays_by_hourofday.js
@@ -23,7 +23,6 @@ var hc_plays_by_hourofday_options = {
credits: {
enabled: false
},
- colors: ['#E5A00D', '#FFFFFF', '#F06464', '#19A0D7'],
xAxis: {
categories: [{}],
labels: {
diff --git a/data/interfaces/default/js/graphs/plays_by_month.js b/data/interfaces/default/js/graphs/plays_by_month.js
index 9dc4d4da..084c636c 100644
--- a/data/interfaces/default/js/graphs/plays_by_month.js
+++ b/data/interfaces/default/js/graphs/plays_by_month.js
@@ -23,7 +23,6 @@ var hc_plays_by_month_options = {
credits: {
enabled: false
},
- colors: ['#E5A00D', '#FFFFFF', '#F06464', '#19A0D7'],
xAxis: {
labels: {
style: {
diff --git a/data/interfaces/default/js/graphs/plays_by_platform.js b/data/interfaces/default/js/graphs/plays_by_platform.js
index a3e7f890..70e0c193 100644
--- a/data/interfaces/default/js/graphs/plays_by_platform.js
+++ b/data/interfaces/default/js/graphs/plays_by_platform.js
@@ -23,7 +23,6 @@ var hc_plays_by_platform_options = {
credits: {
enabled: false
},
- colors: ['#E5A00D', '#FFFFFF', '#F06464', '#19A0D7'],
xAxis: {
categories: [{}],
labels: {
diff --git a/data/interfaces/default/js/graphs/plays_by_platform_by_stream_type.js b/data/interfaces/default/js/graphs/plays_by_platform_by_stream_type.js
index 0b9e6b19..95727a50 100644
--- a/data/interfaces/default/js/graphs/plays_by_platform_by_stream_type.js
+++ b/data/interfaces/default/js/graphs/plays_by_platform_by_stream_type.js
@@ -23,7 +23,6 @@ var hc_plays_by_platform_by_stream_type_options = {
credits: {
enabled: false
},
- colors: ['#E5A00D', '#FFFFFF', '#F06464'],
xAxis: {
categories: [{}],
labels: {
diff --git a/data/interfaces/default/js/graphs/plays_by_source_resolution.js b/data/interfaces/default/js/graphs/plays_by_source_resolution.js
index e7744138..b8273780 100644
--- a/data/interfaces/default/js/graphs/plays_by_source_resolution.js
+++ b/data/interfaces/default/js/graphs/plays_by_source_resolution.js
@@ -23,7 +23,6 @@ var hc_plays_by_source_resolution_options = {
credits: {
enabled: false
},
- colors: ['#E5A00D', '#FFFFFF', '#F06464'],
xAxis: {
categories: [{}],
labels: {
diff --git a/data/interfaces/default/js/graphs/plays_by_stream_resolution.js b/data/interfaces/default/js/graphs/plays_by_stream_resolution.js
index 54881cf9..103d9443 100644
--- a/data/interfaces/default/js/graphs/plays_by_stream_resolution.js
+++ b/data/interfaces/default/js/graphs/plays_by_stream_resolution.js
@@ -23,7 +23,6 @@ var hc_plays_by_stream_resolution_options = {
credits: {
enabled: false
},
- colors: ['#E5A00D', '#FFFFFF', '#F06464'],
xAxis: {
categories: [{}],
labels: {
diff --git a/data/interfaces/default/js/graphs/plays_by_stream_type.js b/data/interfaces/default/js/graphs/plays_by_stream_type.js
index c34c5706..1be862f4 100644
--- a/data/interfaces/default/js/graphs/plays_by_stream_type.js
+++ b/data/interfaces/default/js/graphs/plays_by_stream_type.js
@@ -40,7 +40,6 @@ var hc_plays_by_stream_type_options = {
}
}
},
- colors: ['#E5A00D', '#FFFFFF', '#F06464'],
xAxis: {
type: 'datetime',
labels: {
diff --git a/data/interfaces/default/js/graphs/plays_by_user.js b/data/interfaces/default/js/graphs/plays_by_user.js
index f49b837f..eb3a528a 100644
--- a/data/interfaces/default/js/graphs/plays_by_user.js
+++ b/data/interfaces/default/js/graphs/plays_by_user.js
@@ -23,7 +23,6 @@ var hc_plays_by_user_options = {
credits: {
enabled: false
},
- colors: ['#E5A00D', '#FFFFFF', '#F06464', '#19A0D7'],
xAxis: {
categories: [{}],
labels: {
diff --git a/data/interfaces/default/js/graphs/plays_by_user_by_stream_type.js b/data/interfaces/default/js/graphs/plays_by_user_by_stream_type.js
index c8daa322..55ca25ca 100644
--- a/data/interfaces/default/js/graphs/plays_by_user_by_stream_type.js
+++ b/data/interfaces/default/js/graphs/plays_by_user_by_stream_type.js
@@ -23,7 +23,6 @@ var hc_plays_by_user_by_stream_type_options = {
credits: {
enabled: false
},
- colors: ['#E5A00D', '#FFFFFF', '#F06464'],
xAxis: {
categories: [{}],
labels: {
diff --git a/plexpy/graphs.py b/plexpy/graphs.py
index ee98dceb..9caf2198 100644
--- a/plexpy/graphs.py
+++ b/plexpy/graphs.py
@@ -18,6 +18,7 @@ import datetime
import plexpy
import common
import database
+import libraries
import logger
import session
@@ -127,8 +128,18 @@ class Graphs(object):
series_4_output = {'name': 'Live TV',
'data': series_4}
+ series_output = []
+ if libraries.has_library_type('show'):
+ series_output.append(series_1_output)
+ if libraries.has_library_type('movie'):
+ series_output.append(series_2_output)
+ if libraries.has_library_type('artist'):
+ series_output.append(series_3_output)
+ if libraries.has_library_type('live'):
+ series_output.append(series_4_output)
+
output = {'categories': categories,
- 'series': [series_1_output, series_2_output, series_3_output, series_4_output]}
+ 'series': series_output}
return output
def get_total_plays_per_dayofweek(self, time_range='30', y_axis='plays', user_id=None, grouping=None):
@@ -248,8 +259,18 @@ class Graphs(object):
series_4_output = {'name': 'Live TV',
'data': series_4}
+ series_output = []
+ if libraries.has_library_type('show'):
+ series_output.append(series_1_output)
+ if libraries.has_library_type('movie'):
+ series_output.append(series_2_output)
+ if libraries.has_library_type('artist'):
+ series_output.append(series_3_output)
+ if libraries.has_library_type('live'):
+ series_output.append(series_4_output)
+
output = {'categories': categories,
- 'series': [series_1_output, series_2_output, series_3_output, series_4_output]}
+ 'series': series_output}
return output
def get_total_plays_per_hourofday(self, time_range='30', y_axis='plays', user_id=None, grouping=None):
@@ -351,8 +372,18 @@ class Graphs(object):
series_4_output = {'name': 'Live TV',
'data': series_4}
+ series_output = []
+ if libraries.has_library_type('show'):
+ series_output.append(series_1_output)
+ if libraries.has_library_type('movie'):
+ series_output.append(series_2_output)
+ if libraries.has_library_type('artist'):
+ series_output.append(series_3_output)
+ if libraries.has_library_type('live'):
+ series_output.append(series_4_output)
+
output = {'categories': categories,
- 'series': [series_1_output, series_2_output, series_3_output, series_4_output]}
+ 'series': series_output}
return output
def get_total_plays_per_month(self, time_range='12', y_axis='plays', user_id=None, grouping=None):
@@ -462,8 +493,18 @@ class Graphs(object):
series_4_output = {'name': 'Live TV',
'data': series_4}
+ series_output = []
+ if libraries.has_library_type('show'):
+ series_output.append(series_1_output)
+ if libraries.has_library_type('movie'):
+ series_output.append(series_2_output)
+ if libraries.has_library_type('artist'):
+ series_output.append(series_3_output)
+ if libraries.has_library_type('live'):
+ series_output.append(series_4_output)
+
output = {'categories': categories,
- 'series': [series_1_output, series_2_output, series_3_output, series_4_output]}
+ 'series': series_output}
return output
def get_total_plays_by_top_10_platforms(self, time_range='30', y_axis='plays', user_id=None, grouping=None):
@@ -548,8 +589,18 @@ class Graphs(object):
series_4_output = {'name': 'Live TV',
'data': series_4}
+ series_output = []
+ if libraries.has_library_type('show'):
+ series_output.append(series_1_output)
+ if libraries.has_library_type('movie'):
+ series_output.append(series_2_output)
+ if libraries.has_library_type('artist'):
+ series_output.append(series_3_output)
+ if libraries.has_library_type('live'):
+ series_output.append(series_4_output)
+
output = {'categories': categories,
- 'series': [series_1_output, series_2_output, series_3_output, series_4_output]}
+ 'series': series_output}
return output
def get_total_plays_by_top_10_users(self, time_range='30', y_axis='plays', user_id=None, grouping=None):
@@ -647,8 +698,18 @@ class Graphs(object):
series_4_output = {'name': 'Live TV',
'data': series_4}
+ series_output = []
+ if libraries.has_library_type('show'):
+ series_output.append(series_1_output)
+ if libraries.has_library_type('movie'):
+ series_output.append(series_2_output)
+ if libraries.has_library_type('artist'):
+ series_output.append(series_3_output)
+ if libraries.has_library_type('live'):
+ series_output.append(series_4_output)
+
output = {'categories': categories,
- 'series': [series_1_output, series_2_output, series_3_output, series_4_output]}
+ 'series': series_output}
return output
def get_total_plays_per_stream_type(self, time_range='30', y_axis='plays', user_id=None, grouping=None):
diff --git a/plexpy/libraries.py b/plexpy/libraries.py
index 24869451..0b5a63cc 100644
--- a/plexpy/libraries.py
+++ b/plexpy/libraries.py
@@ -111,6 +111,14 @@ def add_live_tv_library():
plexpy.CONFIG.write()
+def has_library_type(section_type):
+ monitor_db = database.MonitorDatabase()
+ query = 'SELECT * FROM library_sections WHERE section_type = ? AND deleted_section = 0'
+ args = [section_type]
+ result = monitor_db.select_single(query=query, args=args)
+ return bool(result)
+
+
def update_section_ids():
plexpy.CONFIG.UPDATE_SECTION_IDS = -1