def general(request): params = { 'multichart': True, 'columns': GENERAL_COLUMNS, 'title': 'General Data' } if 'date_from' in request.GET: date_from = datetime.datetime( *time.strptime(request.GET['date_from'], '%m/%d/%Y')[:6]) else: date_from = datetime.datetime.now() - datetime.timedelta(days=7) if 'date_to' in request.GET: date_to = datetime.datetime( *time.strptime(request.GET['date_to'], '%m/%d/%Y')[:6]) else: date_to = datetime.datetime.now() params['date_from'] = date_from.strftime('%m/%d/%Y') params['date_to'] = date_to.strftime('%m/%d/%Y') data = data_formater( query_to_dicts( ''' select reward, hits, projects as "count", spam_projects, start_time from main_crawlagregates where start_time >= %s and start_time <= %s order by start_time asc ''', date_from, date_to)) def _is_anomaly(a, others): mid = sum(map(lambda e: int(e['row'][0]), others)) / len(others) return abs(mid - int(a['row'][0])) > 7000 def _fixer(a, others): val = sum(map(lambda e: int(e['row'][0]), others)) / len(others) a['row'] = (str(val), a['row'][1], a['row'][2], a['row'][3]) return a if settings.DATASMOOTHING: params['data'] = plot.repair(list(data), _is_anomaly, _fixer, 2) else: params['data'] = list(data) return direct_to_template(request, 'main/graphs/timeline.html', params)
def general(request): params = { 'multichart': True, 'columns': GENERAL_COLUMNS, 'title': 'General Data' } if 'date_from' in request.GET: date_from = datetime.datetime( *time.strptime(request.GET['date_from'], '%m/%d/%Y')[:6]) else: date_from = datetime.datetime.now() - datetime.timedelta(days=7) if 'date_to' in request.GET: date_to = datetime.datetime( *time.strptime(request.GET['date_to'], '%m/%d/%Y')[:6]) else: date_to = datetime.datetime.now() params['date_from'] = date_from.strftime('%m/%d/%Y') params['date_to'] = date_to.strftime('%m/%d/%Y') data = data_formater(query_to_dicts(''' select reward, hits, projects as "count", spam_projects, start_time from main_crawlagregates where start_time >= %s and start_time <= %s order by start_time asc ''', date_from, date_to)) def _is_anomaly(a, others): mid = sum(map(lambda e: int(e['row'][0]), others)) / len(others) return abs(mid - int(a['row'][0])) > 7000 def _fixer(a, others): val = sum(map(lambda e: int(e['row'][0]), others)) / len(others) a['row'] = (str(val), a['row'][1], a['row'][2], a['row'][3]) return a if settings.DATASMOOTHING: params['data'] = plot.repair(list(data), _is_anomaly, _fixer, 2) else: params['data'] = list(data) return direct_to_template(request, 'main/graphs/timeline.html', params)
def general(request, tab_slug=None): tab = GeneralTabEnum.value_for_slug.get(tab_slug, GeneralTabEnum.ALL) ctx = { 'multichart': tab == GeneralTabEnum.ALL, 'columns': GeneralTabEnum.get_graph_columns(tab), 'title': GeneralTabEnum.get_tab_title(tab), 'current_tab': GeneralTabEnum.enum_dict[tab], 'top_tabs': GeneralTabEnum.enum_dict.values(), } date_from, date_to = get_time_interval(request.GET, ctx, days_ago=7) data = data_formater(query_to_dicts(''' SELECT reward, hits, projects as "count", spam_projects, start_time FROM main_crawlagregates WHERE start_time >= %s AND start_time <= %s ORDER BY start_time ASC ''', date_from, date_to)) def _is_anomaly(a, others): mid = sum(map(lambda e: int(e['row'][0]), others)) / len(others) return abs(mid - int(a['row'][0])) > 7000 def _fixer(a, others): val = sum(map(lambda e: int(e['row'][0]), others)) / len(others) a['row'] = (str(val), a['row'][1], a['row'][2], a['row'][3]) return a if settings.DATASMOOTHING: ctx['data'] = plot.repair(list(data), _is_anomaly, _fixer, 2) else: ctx['data'] = list(data) ctx['data'] = GeneralTabEnum.data_set_processor[tab](ctx['data']) return direct_to_template(request, 'main/graphs/timeline.html', ctx)