mirror of https://github.com/CIRCL/AIL-framework
				
				
				
			
		
			
				
	
	
		
			161 lines
		
	
	
		
			5.4 KiB
		
	
	
	
		
			Python
		
	
	
			
		
		
	
	
			161 lines
		
	
	
		
			5.4 KiB
		
	
	
	
		
			Python
		
	
	
| #!/usr/bin/env python3
 | |
| # -*-coding:UTF-8 -*
 | |
| 
 | |
| # '''
 | |
| #     Flask functions and routes for the trending modules page
 | |
| # '''
 | |
| # import os
 | |
| # import sys
 | |
| # import datetime
 | |
| # import calendar
 | |
| # import flask
 | |
| # from flask import Flask, render_template, jsonify, request, Blueprint
 | |
| #
 | |
| # from Role_Manager import login_admin, login_analyst, login_read_only
 | |
| # from flask_login import login_required
 | |
| #
 | |
| # sys.path.append(os.environ['AIL_BIN'])
 | |
| # ##################################
 | |
| # # Import Project packages
 | |
| # ##################################
 | |
| # from packages.Date import Date
 | |
| #
 | |
| # # ============ VARIABLES ============
 | |
| # import Flask_config
 | |
| #
 | |
| # app = Flask_config.app
 | |
| # baseUrl = Flask_config.baseUrl
 | |
| # r_serv_charts = Flask_config.r_serv_charts
 | |
| # r_serv_sentiment = Flask_config.r_serv_sentiment
 | |
| #
 | |
| # sentiments = Blueprint('sentiments', __name__, template_folder='templates')
 | |
| #
 | |
| # # ============ FUNCTIONS ============
 | |
| #
 | |
| # def get_date_range(num_day):
 | |
| #     curr_date = datetime.date.today()
 | |
| #     date = Date(str(curr_date.year)+str(curr_date.month).zfill(2)+str(curr_date.day).zfill(2))
 | |
| #     date_list = []
 | |
| #
 | |
| #     for i in range(0, num_day+1):
 | |
| #         date_list.append(date.substract_day(i))
 | |
| #     return date_list
 | |
| #
 | |
| #
 | |
| # # ============ ROUTES ============
 | |
| #
 | |
| # @sentiments.route("/sentiment_analysis_trending/")
 | |
| # @login_required
 | |
| # @login_read_only
 | |
| # def sentiment_analysis_trending():
 | |
| #     return render_template("sentiment_analysis_trending.html")
 | |
| #
 | |
| #
 | |
| # @sentiments.route("/sentiment_analysis_getplotdata/", methods=['GET'])
 | |
| # @login_required
 | |
| # @login_read_only
 | |
| # def sentiment_analysis_getplotdata():
 | |
| #     # Get the top providers based on number of pastes
 | |
| #     oneHour = 60*60
 | |
| #     sevenDays = oneHour*24*7
 | |
| #     dateStart = datetime.datetime.now()
 | |
| #     dateStart = dateStart.replace(minute=0, second=0, microsecond=0)
 | |
| #     dateStart_timestamp = calendar.timegm(dateStart.timetuple())
 | |
| #
 | |
| #     getAllProviders = request.args.get('getProviders')
 | |
| #     provider = request.args.get('provider')
 | |
| #     allProvider = request.args.get('all')
 | |
| #     if getAllProviders == 'True':
 | |
| #         if allProvider == "True":
 | |
| #             range_providers = r_serv_charts.smembers('all_provider_set')
 | |
| #
 | |
| #             return jsonify(list(range_providers))
 | |
| #         else:
 | |
| #             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(list(range_providers))
 | |
| #
 | |
| #     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)
 | |
| #
 | |
| #             list_value = []
 | |
| #             for cur_id in r_serv_sentiment.smembers(cur_set_name):
 | |
| #                 cur_value = (r_serv_sentiment.get(cur_id))
 | |
| #                 list_value.append(cur_value)
 | |
| #             list_date[cur_timestamp] = list_value
 | |
| #         to_return[provider] = list_date
 | |
| #
 | |
| #         return jsonify(to_return)
 | |
| #     return "Bad request"
 | |
| #
 | |
| #
 | |
| #
 | |
| # @sentiments.route("/sentiment_analysis_plot_tool/")
 | |
| # @login_required
 | |
| # @login_read_only
 | |
| # def sentiment_analysis_plot_tool():
 | |
| #     return render_template("sentiment_analysis_plot_tool.html")
 | |
| #
 | |
| #
 | |
| #
 | |
| # @sentiments.route("/sentiment_analysis_plot_tool_getdata/", methods=['GET'])
 | |
| # @login_required
 | |
| # @login_read_only
 | |
| # def sentiment_analysis_plot_tool_getdata():
 | |
| #     getProviders = request.args.get('getProviders')
 | |
| #
 | |
| #     if getProviders == 'True':
 | |
| #         providers = []
 | |
| #         for cur_provider in r_serv_charts.smembers('all_provider_set'):
 | |
| #             providers.append(cur_provider)
 | |
| #         return jsonify(providers)
 | |
| #
 | |
| #     else:
 | |
| #         query = request.args.get('query')
 | |
| #         query = query.split(',')
 | |
| #         Qdate = request.args.get('Qdate')
 | |
| #
 | |
| #         date1 = (Qdate.split('-')[0]).split('/')
 | |
| #         date1 = datetime.date(int(date1[2]), int(date1[0]), int(date1[1]))
 | |
| #
 | |
| #         date2 = (Qdate.split('-')[1]).split('/')
 | |
| #         date2 = datetime.date(int(date2[2]), int(date2[0]), int(date2[1]))
 | |
| #
 | |
| #         timestamp1 = calendar.timegm(date1.timetuple())
 | |
| #         timestamp2 = calendar.timegm(date2.timetuple())
 | |
| #
 | |
| #         oneHour = 60*60
 | |
| #         oneDay = oneHour*24
 | |
| #
 | |
| #         to_return = {}
 | |
| #         for cur_provider in query:
 | |
| #             list_date = {}
 | |
| #             cur_provider_name = cur_provider + '_'
 | |
| #             for cur_timestamp in range(int(timestamp1), int(timestamp2)+oneDay, oneHour):
 | |
| #                 cur_set_name = cur_provider_name + str(cur_timestamp)
 | |
| #
 | |
| #                 list_value = []
 | |
| #                 for cur_id in r_serv_sentiment.smembers(cur_set_name):
 | |
| #                     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
 | |
| #
 | |
| #         return jsonify(to_return)
 | |
| #
 | |
| # # ========= REGISTRATION =========
 | |
| # app.register_blueprint(sentiments, url_prefix=baseUrl)
 |