예제 #1
0
파일: routes.py 프로젝트: nattgomes/laze
def dashboard():
    active_user = current_user.name
    start_time = time.time()

    if 'monthVisit' in request.form.keys():
        monthYear = request.form['monthVisit']
    else:
        monthYear = None

    now = datetime.datetime.now()
    currentYear = now.year
    currentMonth = now.month

    if monthYear is not None:
        pieces = monthYear.split("-")
        month = int(pieces[1])
        year = int(pieces[0])
    else:
        month = currentMonth
        year = currentYear

    initial_year = datetime.datetime(year,1,1)
    final_year = datetime.datetime(year+1,1,1)

    initial_date = datetime.datetime(year,month,1)
    print(initial_date)
    if month < 12:
        final_date = datetime.datetime(year,month+1,1)
    else:
        final_date = datetime.datetime(year+1,1,1)


    domainDoughnutChart = Request.getTopDomainDoughnut(initial_date, final_date)
    print("pós graph1: " + str(time.time() - start_time))

    userDoughnutChart = Request.getTopUsersDoughnut(initial_date, final_date)
    print ("pós graph2: " + str(time.time() - start_time))

    monthChart = Request.getBytesRequestsByMonth(initial_year, final_year)
    print ("pós graph3: " + str(time.time() - start_time))

    dailyChart = Request.getBytesRequestsByDay(initial_date, final_date)
    print("pós graph4: " + str(time.time() - start_time))

    pieChart = VW_content_types.getTypesChart(year, month)
    print ("pós graph5: " + str(time.time() - start_time))

    resultRequestChart = VW_result_codes.getResultsChart(year, month)
    print ("pós graph6: " + str(time.time() - start_time))


    colors = ["rgba(39, 44, 51,1)","rgba(39, 44, 51,0.9)","rgba(39, 44, 51,0.8)","rgba(39, 44, 51,0.7)","rgba(39, 44, 51,0.6)","rgba(39, 44, 51,0.5)","rgba(39, 44, 51,0.4)","rgba(39, 44, 51,0.3)","rgba(39, 44, 51,0.2)","rgba(39, 44, 51,0.1)"]

    colors2 = ["rgba(238, 108, 77,1)","rgba(238, 108, 77,0.9)","rgba(238, 108, 77,0.8)","rgba(238, 108, 77,0.7)","rgba(238, 108, 77,0.6)","rgba(238, 108, 77,0.5)","rgba(238, 108, 77,0.4)","rgba(238, 108, 77,0.3)","rgba(238, 108, 77,0.2)","rgba(238, 108, 77,0.1)"]

    colors3 = ["#E5FFDE", "#634B66", "#BBCBCB", "#9590A8", "#FFB997", "#7C898B", "#D6DBB2", "#759FBC", "#FFBA49", "#EF5B5B"]

    params = {'active_user': active_user, 'domaindatadoughnut': domainDoughnutChart, 'userDoughnutChart': userDoughnutChart, 'datapie': pieChart, 'dailyChart':dailyChart, 'monthChart':monthChart, 'resultRequestChart':resultRequestChart, 'colors': colors, 'colors2': colors2,  'colors3': colors3, 'valuesToQuery':monthYear, 'month': month, 'year': year}

    return template ('welcome.jinja2', **params)
예제 #2
0
파일: routes.py 프로젝트: nattgomes/laze
def pdf():
    option = request.args.get('option')
    initial_date = datetime.datetime.strptime(request.args.get('initial_date'), "%Y-%m-%d")
    final_date = datetime.datetime.strptime(request.args.get('final_date'), "%Y-%m-%d")
    final_date = final_date + datetime.timedelta(days=1)
    initialDate = initial_date.strftime("%d/%m/%Y")
    finalDate = final_date.strftime("%d/%m/%Y")

    if option == "user":
        user = request.args.get('user')
        title = u"Lista de domínios acessados pelo cliente " + user
        title2 = u"Período: " + initialDate + " - " + finalDate
        fields = (u"URL", u"Data", u"Hora", u"Bytes", u"Duração", u"Resultado", u"MIME")
        values = Request.getDomainsByClientPDF(user, initial_date, final_date)
        tmplt = template("PDF.jinja2", values=values, title=title, title2=title2, fields=fields)

    elif option == "domain":
        domain = request.args.get('domain')
        title = u"Lista de usuários que acessaram o domínio " + domain
        title2 = u"Período: " + initialDate + " - " + finalDate
        fields = (u"Cliente", u"Data", u"Hora", u"Bytes", u"Duração", u"URL", u"Resultado", u"MIME")
        values = Request.getClientsByDomainPDF(domain, initial_date, final_date)
        tmplt = template("PDF.jinja2", values=values, title=title, title2=title2, fields=fields)

    elif option == "comunication":
        user = request.args.get('user')
        domain = request.args.get('domain')
        title = u"Comunicação entre o cliente " + user +  u" e o domínio " + domain
        title2 = u"Período: " + initialDate + " - " + finalDate
        fields = (u"URL", u"Data", u"Hora", u"Bytes", u"Duração", u"Método", u"Resultado", u"MIME")
        values = Request.getComunicationDomainClientPDF(domain, user, initial_date, final_date)
        tmplt = template("PDF.jinja2", values=values, title=title, title2=title2, fields=fields)

    else:
        title = u"Requisições negadas"
        title2 = u"Período: " + initialDate + " - " + finalDate
        fields = (u"Domínio", u"Cliente", u"Data", u"Hora", u"Resultado")
        values = Request.getDeniedPDF(initial_date, final_date)
        print(values)
        tmplt = template("PDF.jinja2", values=values, title=title, title2=title2, fields=fields)


    pdf = pdfkit.from_string(tmplt, False)
    
    response = Response(response=pdf, status=200, mimetype="application/pdf")

    # write to PDF
    return response
예제 #3
0
파일: routes.py 프로젝트: nattgomes/laze
def user_domain(client):
    active_user = current_user.name

    client = cgi.escape(client)
    values = Request.getDomainsByClient(client)
    title = u"Domínios acessados pelo usuário " + str(client)
    fields = (u"Posição", u"Domínio", "Bytes", u"Duração", u"Requisições")

    return template ('domainsByClient.jinja2', active_user=active_user, values=values, title=title, fields=fields, client=client)
예제 #4
0
파일: routes.py 프로젝트: nattgomes/laze
def domain_user(domain):
    active_user = current_user.name

    domain = cgi.escape(domain)
    values = Request.getClientsByDomain(domain)
    title = u"Usuários que acessaram o domínio " + str(domain)
    fields = (u"Posição", u"Cliente", "KBytes", u"Duração (s)", u"Requisições")

    return template ('clientsByDomain.jinja2', active_user=active_user, values=values, title=title, fields=fields, domain=domain)
예제 #5
0
파일: routes.py 프로젝트: nattgomes/laze
def user_domains(domain,client):
    active_user = current_user.name

    domain = cgi.escape(domain)
    client = cgi.escape(client)
    values = Request.getClientAndUser(domain, client)

    title = u"Requisições ao domínio "  + str(domain)  + u" pelo cliente " + str(client) + "."
    fields = (u"Posição", u"Data", u"Hora", "Bytes", u"Duração", u"Método", u"Resultado", u"MIME")

    return template('queryDomainClient.jinja2', active_user=active_user,  values = values,  title = title,  fields = fields)
예제 #6
0
파일: routes.py 프로젝트: nattgomes/laze
def ranking_comunications():
    active_user = current_user.name

    if 'monthVisit' in request.form.keys():
        monthYear = request.form['monthVisit']
    else:
        monthYear = None
    result = monthyear(monthYear)
    initial_date = result['initial_date']
    final_date = result['final_date']

    values = Request.getComunicationsByMonth(initial_date, final_date)
    title = u"Ranking comunicações Cliente-Domínio"
    fields = (u"Posição", u"Domínio", u"Cliente", "KBytes", u"Duração (s)", u"Quantidade de Requisições")

    return template ('comunications.jinja2',  active_user=active_user,  values = values,  title = title,  fields = fields,  valuesToQuery = monthYear)
예제 #7
0
파일: routes.py 프로젝트: nattgomes/laze
def ranking_users_by_day():
    active_user = current_user.name

    if 'dayVisit' in request.form.keys():
        dayMonthYear = request.form['dayVisit']
    else:
        dayMonthYear = None
    result = daymonthyear(dayMonthYear)
    initial_date = result['initial_date']
    final_date = result['final_date']

    values = Request.getTopClients(initial_date, final_date)
    title = u"Ranking de clientes por quantidade de requisições  - por dia"
    fields = (u"Posição", u"Cliente", u"Duração (s)", "KBytes", u"Total de requisições", u"Total de domínios acessados")

    return template ('clientsByDay.jinja2', active_user=active_user, values=values, title=title, fields=fields, valuesToQuery=dayMonthYear)
예제 #8
0
파일: routes.py 프로젝트: nattgomes/laze
def ranking_domainsByDay():
    active_user = current_user.name

    if 'dayVisit' in request.form.keys():
        dayMonthYear = request.form['dayVisit']
    else:
        dayMonthYear = None
    result = daymonthyear(dayMonthYear)
    initial_date = result['initial_date']
    final_date = result['final_date']

    values = Request.getTopDomains(initial_date, final_date)
    title = u"Ranking de domínios mais acessados no dia"
    fields = (u"Posição", u"Domínio", "KBytes", u"Duração (s)", u"Usuários", u"Acessos")

    return template('domainsByDay.jinja2', active_user=active_user, values=values, title=title, fields=fields, valuesToQuery=dayMonthYear)
예제 #9
0
파일: routes.py 프로젝트: nattgomes/laze
def requests_results():
    active_user = current_user.name

    if 'dayVisit' in request.form.keys():
        dayMonthYear = request.form['dayVisit']
    else:
        dayMonthYear = None
    result = daymonthyear(dayMonthYear)
    initial_date = result['initial_date']
    final_date = result['final_date']

    if 'requestResult' in request.form.keys():
        resultCode = request.form['requestResult']
    else:
        resultCode = "TCP"

    print(initial_date)
    print(final_date)

    values = Request.getResultCodes(resultCode, initial_date, final_date)
    title = u"Requisições com resultado " + str(resultCode)
    fields = (u"Posição", u"Domínio", u"Usuário", u"Data", u"Hora", u"Resultado")

    return template('requestByDay.jinja2', active_user=active_user, values = values, title=title, fields=fields, valuesToQuery=dayMonthYear)