diff --git a/var/www/Flask_server.py b/var/www/Flask_server.py
index 8b6e05e3..1ab98d60 100755
--- a/var/www/Flask_server.py
+++ b/var/www/Flask_server.py
@@ -472,7 +472,7 @@ def sentiment_analysis_trending():
return render_template("sentiment_analysis_trending.html")
-@app.route("/sentiment_analysis_getplotdata/")
+@app.route("/sentiment_analysis_getplotdata/", methods=['GET'])
def sentiment_analysis_getplotdata():
# Get the top providers based on number of pastes
oneHour = 60*60
@@ -481,19 +481,22 @@ def sentiment_analysis_getplotdata():
dateStart = dateStart.replace(minute=0, second=0, microsecond=0)
dateStart_timestamp = calendar.timegm(dateStart.timetuple())
- to_return = {}
- range_providers = r_serv_charts.zrevrangebyscore('providers_set_'+ get_date_range(0)[0], '+inf', '-inf', start=0, num=8)
- # if empty, get yesterday top providers
- print 'providers_set_'+ get_date_range(1)[1]
- range_providers = r_serv_charts.zrevrangebyscore('providers_set_'+ get_date_range(1)[1], '+inf', '-inf', start=0, num=8) if range_providers == [] else range_providers
- # if still empty, takes from all providers
- if range_providers == []:
- print 'today provider empty'
- range_providers = r_serv_charts.smembers('all_provider_set')
+ getAllProviders = request.args.get('getProviders')
+ provider = request.args.get('provider')
+ if getAllProviders == 'True':
+ range_providers = r_serv_charts.zrevrangebyscore('providers_set_'+ get_date_range(0)[0], '+inf', '-inf', start=0, num=8)
+ # if empty, get yesterday top providers
+ range_providers = r_serv_charts.zrevrangebyscore('providers_set_'+ get_date_range(1)[1], '+inf', '-inf', start=0, num=8) if range_providers == [] else range_providers
+ # if still empty, takes from all providers
+ if range_providers == []:
+ print 'today provider empty'
+ range_providers = r_serv_charts.smembers('all_provider_set')
+ return jsonify(range_providers)
- for cur_provider in range_providers:
- print cur_provider
- cur_provider_name = cur_provider + '_'
+ elif provider is not None:
+ to_return = {}
+
+ cur_provider_name = provider + '_'
list_date = {}
for cur_timestamp in range(int(dateStart_timestamp), int(dateStart_timestamp)-sevenDays-oneHour, -oneHour):
cur_set_name = cur_provider_name + str(cur_timestamp)
@@ -503,9 +506,10 @@ def sentiment_analysis_getplotdata():
cur_value = r_serv_sentiment.get(cur_id)
list_value.append(cur_value)
list_date[cur_timestamp] = list_value
- to_return[cur_provider] = list_date
+ to_return[provider] = list_date
- return jsonify(to_return)
+ return jsonify(to_return)
+ return "Bad request"
diff --git a/var/www/static/js/sentiment_trending.js b/var/www/static/js/sentiment_trending.js
index a56723b8..af1614c3 100644
--- a/var/www/static/js/sentiment_trending.js
+++ b/var/www/static/js/sentiment_trending.js
@@ -1,4 +1,6 @@
+/* Functions and config */
+
function generate_offset_to_time(num){
var to_ret = {};
for(i=0; i<=num; i++) {
@@ -15,7 +17,7 @@
var to_ret = {};
for(i=day; i>=0; i--){
for(j=0; j<24; j++){
- var t1 =now.getDate()-i + ":";
+ var t1 =now.getDate()-i + ":";
var t2 =now.getHours()-(23-j);
t2 = t2 < 0 ? 24+t2 : t2;
t2 += "h";
@@ -40,34 +42,52 @@
barColor: '#00bf5f',
negBarColor: '#f22929',
zeroColor: '#ffff00',
-
+
tooltipFormat: '● {{offset:names}}, {{value}} ',
};
-$.getJSON("/sentiment_analysis_getplotdata/",
- function(data) {
- var all_data = [];
- var plot_data = [];
- var graph_avg = [];
- var array_provider = Object.keys(data);
- var dates_providers = Object.keys(data[array_provider[0]]);
- var dateStart = parseInt(dates_providers[0]);
- var oneHour = 60*60;
- var oneWeek = oneHour*24*7;
+/* Plot and queries */
- var all_graph_day_sum = 0.0;
- var all_graph_hour_sum = 0.0;
- var all_graph_hour_maxVal = 0.0;
- var all_day_avg = 0.0;
- var all_day_avg_maxVal = 0.0;
+var all_graph_day_sum = 0.0;
+var all_graph_hour_sum = 0.0;
+var all_graph_hour_maxVal = 0.0;
+var all_day_avg = 0.0;
+var all_day_avg_maxVal = 0.0;
+var graph_avg = [];
+var all_data = [];
+
+function draw_page() {
+ $.getJSON("/sentiment_analysis_getplotdata/?getProviders=True",
+ function(data) {
+ var promises = [];
+ for(i=0; i all_graph_hour_maxVal ? Math.abs(hour_sum) : all_graph_hour_maxVal;
- var curr_avg = curr_sum / (curr_sum_elem);
+ var curr_avg = curr_sum / (curr_sum_elem);
if(isNaN(curr_avg))
curr_avg = 0.0
- //var curr_avg = curr_sum / (oneWeek/oneHour);
- //var curr_avg = curr_sum / (spark_data.length);
graph_avg.push([curr_provider, curr_avg]);
plot_data.push(spark_data);
all_data.push(graph_data);
-
+
sparklineOptions.chartRangeMax = max_value;
sparklineOptions.chartRangeMin = -max_value;
@@ -141,11 +158,11 @@ $.getJSON("/sentiment_analysis_getplotdata/",
var num = graphNum + 1;
var placeholder = '.sparkLineStatsWeek' + num;
sparklineOptions.barWidth = 2;
- $(placeholder).sparkline(plot_data[graphNum], sparklineOptions);
+ $(placeholder).sparkline(plot_data[0], sparklineOptions);
$(placeholder+'t').text(curr_provider);
- var curr_avg_text = isNaN(curr_avg) ? "No data" : curr_avg.toFixed(5);
+ var curr_avg_text = isNaN(curr_avg) ? "No data" : curr_avg.toFixed(5);
$(placeholder+'s').text(curr_avg_text);
-
+
sparklineOptions.barWidth = 18;
sparklineOptions.tooltipFormat = '● Avg: {{value}} '
$(placeholder+'b').sparkline([curr_avg], sparklineOptions);
@@ -169,8 +186,8 @@ $.getJSON("/sentiment_analysis_getplotdata/",
// print today
- var data_length = plot_data[graphNum].length;
- var data_today = plot_data[graphNum].slice(data_length-24, data_length);
+ var data_length = plot_data[0].length;
+ var data_today = plot_data[0].slice(data_length-24, data_length);
placeholder = '.sparkLineStatsToday' + num;
sparklineOptions.barWidth = 14;
@@ -199,188 +216,24 @@ $.getJSON("/sentiment_analysis_getplotdata/",
$(avgName).addClass("panel-warning")
}
- }//for loop
-
-
-
- /* ---------------- Gauge ---------------- */
- var gaugeOptions = {
- animateEasing: true,
-
- elementWidth: 200,
- elementHeight: 125,
-
- arcFillStart: 10,
- arcFillEnd: 12,
- arcFillTotal: 20,
- incTot: 1.0,
-
- arcBgColorLight: 200,
- arcBgColorSat: 0,
- arcStrokeFg: 20,
- arcStrokeBg: 30,
-
- colorArcFg: '#FF3300',
- animateSpeed: 1,
-
- };
- // Clone object
- var gaugeOptions2 = jQuery.extend(true, {}, gaugeOptions);
- var gaugeOptions3 = jQuery.extend(true, {}, gaugeOptions);
-
-
-
- gaugeOptions.appendTo = '#gauge_today_last_hour';
- gaugeOptions.dialLabel = 'Last hour';
- gaugeOptions.elementId = 'gauge1';
- var piePercent = (all_graph_hour_sum / 8) / all_graph_hour_maxVal;
- gaugeOptions.inc = piePercent;
- var gauge_today_last_hour = new FlexGauge(gaugeOptions);
-
- gaugeOptions2.appendTo = '#gauge_today_last_days';
- gaugeOptions2.dialLabel = 'Today';
- gaugeOptions2.elementId = 'gauge2';
- //piePercent = (all_graph_day_sum / (8*24)) / max_value;
- piePercent = (all_day_avg / 8) / all_day_avg_maxVal;
- gaugeOptions2.inc = piePercent;
- var gauge_today_last_days = new FlexGauge(gaugeOptions2);
-
- gaugeOptions3.appendTo = '#gauge_week';
- gaugeOptions3.dialLabel = 'Week';
- gaugeOptions3.elementId = 'gauge3';
-
- var graph_avg_sum = 0.0;
- var temp_max_val = 0.0;
- for (i=0; i temp_max_val ? Math.abs(graph_avg[i][1]) : temp_max_val;
- }
-
- piePercent = (graph_avg_sum / graph_avg.length) / temp_max_val;
- gaugeOptions3.inc = piePercent;
- var gauge_today_last_days = new FlexGauge(gaugeOptions3);
-
-
- /* --------- Sort providers -------- */
-
- graph_avg.sort(function(a, b){return b[1]-a[1]});
-
- for (i=1; i<6; i++){
- $('.worst'+i).text(graph_avg[7-(i-1)][0]);
- $('.best'+i).text(graph_avg[i-1][0]);
- }
-
- /* ----------- CanvasJS ------------ */
-
- var comp_sum_day_pos = 0.0;
- var comp_sum_day_neg = 0.0;
- var comp_sum_hour_pos = 0.0;
- var comp_sum_hour_neg = 0.0;
- for(graphNum=0; graphNum<8; graphNum++){
- curr_graphData = all_data[graphNum];
- var gauge_data = curr_graphData.slice(curr_graphData.length-24, curr_graphData.length);
- for (i=1; i< gauge_data.length; i++){
- comp_sum_day_pos += gauge_data[i].compoundPos;
- comp_sum_day_neg += gauge_data[i].compoundNeg;
-
- if(i == 23){
- comp_sum_hour_pos += gauge_data[i].compoundPos;
- comp_sum_hour_neg += gauge_data[i].compoundNeg;
- }
- }
}
-
- var options_canvasJS_1 = {
-
- animationEnabled: true,
- axisY: {
- tickThickness: 0,
- lineThickness: 0,
- valueFormatString: " ",
- gridThickness: 0
- },
- axisX: {
- tickThickness: 0,
- lineThickness: 0,
- labelFontSize: 0.1,
- },
- data: [
- {
- toolTipContent: "Positive: {y}",
- type: "bar",
- color: "green",
- dataPoints: [
- {y: comp_sum_hour_pos/8}
- ]
- },
- {
- toolTipContent: "Negative: {y}",
- type: "bar",
- color: "red",
- dataPoints: [
- {y: comp_sum_hour_neg/8}
- ]
- }
- ]
- };
-
- var chart_canvas1 = new CanvasJS.Chart("bar_today_last_hour", options_canvasJS_1);
-
- var options_canvasJS_2 = {
-
- animationEnabled: true,
- axisY: {
- tickThickness: 0,
- lineThickness: 0,
- valueFormatString: " ",
- gridThickness: 0
- },
- axisX: {
- tickThickness: 0,
- lineThickness: 0,
- labelFontSize: 0.1,
- },
- data: [
- {
- toolTipContent: "Positive: {y}",
- type: "bar",
- color: "green",
- dataPoints: [
- {y: comp_sum_day_pos/8}
- ]
- },
- {
- toolTipContent: "Negative: {y}",
- type: "bar",
- color: "red",
- dataPoints: [
- {y: comp_sum_day_neg/8}
- ]
- }
- ]
- };
-
- var chart_canvas2 = new CanvasJS.Chart("bar_today_last_days", options_canvasJS_2);
-
- chart_canvas1.render();
- chart_canvas2.render();
-
-
-
- }
-);
-
-
-
-
-
-
-
-
+ );
+ return query_plot
+}
+function draw_widgets() {
+ /* ---------------- Gauge ---------------- */
+ var gaugeOptions = {
+ animateEasing: true,
+ elementWidth: 200,
+ elementHeight: 125,
+ arcFillStart: 10,
+ arcFillEnd: 12,
+ arcFillTotal: 20,
+ incTot: 1.0,
diff --git a/var/www/templates/sentiment_analysis_trending.html b/var/www/templates/sentiment_analysis_trending.html
index 3a927251..944fab1d 100644
--- a/var/www/templates/sentiment_analysis_trending.html
+++ b/var/www/templates/sentiment_analysis_trending.html
@@ -508,7 +508,7 @@
$("#"+activePage).addClass("active");
$('[data-toggle="tooltip"]').tooltip();
-
+ draw_page();
// Reload every 30min
setTimeout(function(){ location.reload(); }, 30*60*1000);
});