From 914514023bb81bd7be6031334f13bcf3e1e47a94 Mon Sep 17 00:00:00 2001 From: Sami Mokaddem Date: Tue, 21 Nov 2017 08:42:54 +0100 Subject: [PATCH] Added typeahead plot for events --- server.py | 3 ++- static/js/trendings.js | 8 ++++---- trendings_helper.py | 17 +++++++++++++++-- 3 files changed, 21 insertions(+), 7 deletions(-) diff --git a/server.py b/server.py index f2efbad..f8c5692 100755 --- a/server.py +++ b/server.py @@ -497,7 +497,8 @@ def getTrendingEvents(): dateS = datetime.datetime.now() - datetime.timedelta(days=7) dateE = datetime.datetime.now() - data = trendings_helper.getTrendingEvents(dateS, dateE) + specificLabel = request.args.get('specificLabel') + data = trendings_helper.getTrendingEvents(dateS, dateE, specificLabel) return jsonify(data) @app.route("/_getTrendingCategs") diff --git a/static/js/trendings.js b/static/js/trendings.js index ae7b75c..27cfe7d 100644 --- a/static/js/trendings.js +++ b/static/js/trendings.js @@ -70,7 +70,7 @@ var typeaheadOption_event = { } }, updater: function(theevent) { - console.log(theevent); + updateLineForLabel(eventLine, theevent, undefined, url_getTrendingEvent); } } var typeaheadOption_categ = { @@ -166,7 +166,7 @@ function generateEmptyAndFillData(data, specificLabel, colorMapping) { for(var item_arr of items) { var count = item_arr[1]; var itemStr = JSON.stringify(item_arr[0]); - if (specificLabel === undefined || specificLabel == itemStr) { + if (specificLabel === undefined || specificLabel == item_arr[0]) { if(toPlot_obj[itemStr] === undefined) toPlot_obj[itemStr] = {}; toPlot_obj[itemStr][date] = count; @@ -273,7 +273,7 @@ function updatePie(pie, line, data, url) { var specificLabel = obj.series.label; colorMapping[specificLabel] = {}; colorMapping[specificLabel] = { colour: obj.series.color }; - updateLineForLabel(line, specificLabel, colorMapping, url); + updateLineForLabel(line, specificLabel.substring(1, specificLabel.length-1), colorMapping, url); }); for (item of pieWidget.getData()) { colorMapping[item.label] = {colour: item.color}; @@ -344,7 +344,7 @@ function updateSignthingsChart() { } function updateLineForLabel(line, specificLabel, colorMapping, url) { - $.getJSON( url+"?dateS="+parseInt(dateStart.getTime()/1000)+"&dateE="+parseInt(dateEnd.getTime()/1000), function( data ) { + $.getJSON( url+"?dateS="+parseInt(dateStart.getTime()/1000)+"&dateE="+parseInt(dateEnd.getTime()/1000)+"&specificLabel="+specificLabel, function( data ) { updateLine(line, data, undefined, specificLabel, colorMapping); }); } diff --git a/trendings_helper.py b/trendings_helper.py index 8d32b14..e178230 100644 --- a/trendings_helper.py +++ b/trendings_helper.py @@ -65,8 +65,21 @@ class Trendings_helper: to_ret.append([util.getTimestamp(curDate), data]) return to_ret - def getTrendingEvents(self, dateS, dateE): - return self.getGenericTrending('TRENDINGS_EVENTS', dateS, dateE) + def getSpecificTrending(self, trendingType, dateS, dateE, specificLabel=''): + to_ret = [] + prev_days = (dateE - dateS).days + for curDate in util.getXPrevDaysSpan(dateE, prev_days): + keyname = "{}:{}".format(trendingType, util.getDateStrFormat(curDate)) + data = self.serv_redis_db.zscore(keyname, specificLabel) + data = [[specificLabel, data]] if data is not None else [] + to_ret.append([util.getTimestamp(curDate), data]) + return to_ret + + def getTrendingEvents(self, dateS, dateE, specificLabel=None): + if specificLabel is None: + return self.getGenericTrending('TRENDINGS_EVENTS', dateS, dateE) + else: + return self.getSpecificTrending('TRENDINGS_EVENTS', dateS, dateE, specificLabel) def getTrendingCategs(self, dateS, dateE): return self.getGenericTrending('TRENDINGS_CATEGS', dateS, dateE)