feature: Added draft support of discussion in Trendings

pull/9/head
Sami Mokaddem 2017-11-17 16:50:04 +01:00
parent 7ebeed6012
commit b17d480360
5 changed files with 43 additions and 6 deletions

View File

@ -538,6 +538,18 @@ def getTrendingSightings():
data = trendings_helper.getTrendingSightings(dateS, dateE)
return jsonify(data)
@app.route("/_getTrendingDisc")
def getTrendingDisc():
try:
dateS = datetime.datetime.fromtimestamp(float(request.args.get('dateS')))
dateE = datetime.datetime.fromtimestamp(float(request.args.get('dateE')))
except:
dateS = datetime.datetime.now() - datetime.timedelta(days=7)
dateE = datetime.datetime.now()
data = trendings_helper.getTrendingDisc(dateS, dateE)
return jsonify(data)
if __name__ == '__main__':
app.run(host='localhost', port=8001, threaded=True)

View File

@ -8,6 +8,7 @@ var categLine = ["#categLine"];
var tagPie = ["#tagPie"];
var tagLine = ["#tagLine"];
var sightingLineWidget;
var discLine = ["#discussionLine"];
/* OPTIONS */
var datePickerOptions = {
@ -192,7 +193,7 @@ function updatePie(pie, data) {
}
}
function updateLine(line, data) {
function updateLine(line, data, chartOptions) {
lineID = line[0];
lineWidget = line[1];
@ -203,7 +204,10 @@ function updateLine(line, data) {
lineWidget.setupGrid();
lineWidget.draw();
} else {
lineWidget = $.plot(lineID, toPlot, lineChartOption);
if (chartOptions === undefined) {
chartOptions = lineChartOption;
}
lineWidget = $.plot(lineID, toPlot, chartOptions);
line.push(lineWidget);
$(lineID).bind("plothover", function (event, pos, item) {
if (item) {
@ -258,6 +262,15 @@ function updatePieLine(pie, line, url) {
});
}
function updateDisc() {
var lineChartOptionDisc = jQuery.extend(true, {}, lineChartOption);
lineChartOptionDisc['legend']['show'] = true;
lineChartOptionDisc['legend']['position'] = 'nw';
$.getJSON( url_getTrendingDisc+"?dateS="+parseInt(dateStart.getTime()/1000)+"&dateE="+parseInt(dateEnd.getTime()/1000), function( data ) {
updateLine(discLine, data, lineChartOptionDisc);
});
}
function dateChanged() {
dateStart = datePickerWidgetStart.datepicker( "getDate" );
dateEnd = datePickerWidgetEnd.datepicker( "getDate" );
@ -265,6 +278,7 @@ function dateChanged() {
updatePieLine(categPie, categLine, url_getTrendingCateg);
updatePieLine(tagPie, tagLine, url_getTrendingTag);
updateSignthingsChart();
updateDisc();
}
$(document).ready(function () {
@ -282,7 +296,7 @@ $(document).ready(function () {
updatePieLine(categPie, categLine, url_getTrendingCateg)
updatePieLine(tagPie, tagLine, url_getTrendingTag)
updateSignthingsChart();
updateDisc();
$("<div id='tooltip'></div>").css({
position: "absolute",

View File

@ -185,10 +185,10 @@ small {
<div class="col-lg-6">
<div class="panel panel-default" style="">
<div class="panel-heading bg-info" style="font-weight: bold;">
<b>Empty</b>
<b>Discussion</b>
</div>
<div id="panelbody" class="panel-body" style="">
<div id="" style="width:100%; height: 20vh;"></div>
<div id="discussionLine" style="width:100%; height: 20vh;"></div>
</div>
</div><!-- /.panel-body -->
</div>
@ -212,6 +212,7 @@ small {
var url_getTrendingCateg = "{{ url_for('getTrendingCategs') }}";
var url_getTrendingTag = "{{ url_for('getTrendingTags') }}";
var url_getTrendingSightings = "{{ url_for('getTrendingSightings') }}";
var url_getTrendingDisc = "{{ url_for('getTrendingDisc') }}";
/* DATA FROM CONF */

View File

@ -29,6 +29,9 @@ class Trendings_helper:
def addTrendingCateg(self, categName, timestamp):
self.addGenericTrending('TRENDINGS_CATEGS', categName, timestamp)
def addTrendingDisc(self, eventName, timestamp):
self.addGenericTrending('TRENDINGS_DISC', eventName, timestamp)
def addTrendingTags(self, tags, timestamp):
for tag in tags:
ordDic = OrderedDict() #keep fields with the same layout in redis
@ -95,3 +98,6 @@ class Trendings_helper:
fp = 0 if fp is None else int(fp.decode('utf8'))
to_ret.append([util.getTimestamp(curDate), { 'sightings': sight, 'false_positive': fp}])
return to_ret
def getTrendingDisc(self, dateS, dateE):
return self.getGenericTrending('TRENDINGS_DISC', dateS, dateE)

View File

@ -145,7 +145,7 @@ def handleContribution(zmq_name, org, contribType, categ, action, pntMultiplier=
pnts_to_add = DEFAULT_PNTS_REWARD
# if there is a contribution, there is a login (even if ti comes from the API)
users_helper.add_user_login(timestamp, org)
users_helper.add_user_login(nowSec, org)
# is a valid contribution
if categ is not None:
@ -214,11 +214,15 @@ def handler_conversation(zmq_name, jsonevent):
org = jsonpost['org_name']
categ = None
action = 'add'
eventName = 'no name or id yet...'
handleContribution(zmq_name, org,
'Discussion',
None,
action,
isLabeled=False)
# add Discussion
nowSec = int(time.time())
trendings_helper.addTrendingDisc(eventName, nowSec)
def handler_object(zmq_name, jsondata):
print('obj')