From 34aec57c46a8791b8bdee8c192afad71430413df Mon Sep 17 00:00:00 2001 From: Gregory Soutade Date: Thu, 20 Nov 2014 16:31:00 +0100 Subject: [PATCH] Separate display functions into display.py --- display.py | 40 ++++++++++++++++++++++++++++++++++++++++ iwla.py | 47 +++++++++-------------------------------------- 2 files changed, 49 insertions(+), 38 deletions(-) create mode 100644 display.py diff --git a/display.py b/display.py new file mode 100644 index 0000000..aa11976 --- /dev/null +++ b/display.py @@ -0,0 +1,40 @@ +def createPage(display, filename, title): + page = {} + page['title'] = title; + page['blocks'] = [] + display[filename] = page + + return page + +def appendBlockToPage(page, block): + page['blocks'].append(block) + +def createTable(title, cols): + table = {'type' : 'table', 'title' : title} + table['cols'] = cols + table['rows'] = [] + +def appendRowToTable(table, row): + table['rows'].append(row) + +def buildPages(display): + for filename in display.keys(): + page = display[filename] + with open(DISPLAY_ROOT + filename, 'w') as f: + f.write('%s' % (page['title'])) + for block in page['blocks']: + if block['type'] == 'html': + f.write(block['value']) + elif block['type'] == 'table': + f.write('') + f.write('') + for title in block['cols']: + f.write('' % (title)) + f.write('') + for row in block['rows']: + f.write('') + for v in row: + f.write('' % (v)) + f.write('') + f.write('
%s
%s
') + f.write('') diff --git a/iwla.py b/iwla.py index a60d9ec..f8441f2 100755 --- a/iwla.py +++ b/iwla.py @@ -8,6 +8,8 @@ import imp import pickle import gzip +from display import * + # Default configuration DB_ROOT = './output/' @@ -85,14 +87,6 @@ def createEmptyDisplay(): display = {} return display -def createPage(filename, title): - page = {} - page['title'] = title; - page['blocks'] = [] - display[filename] = page - - return page - def getDBFilename(time): return (DB_ROOT + '%d/%d_%s') % (time.tm_year, time.tm_mon, DB_FILENAME) @@ -211,37 +205,14 @@ def decodeTime(hit): hit['time_decoded'] = time.strptime(t, time_format) -def buildPages(): - for filename in display.keys(): - page = display[filename] - with open(DISPLAY_ROOT + filename, 'w') as f: - f.write('%s' % (page['title'])) - for block in page['blocks']: - if block['type'] == 'html': - f.write(block['value']) - elif block['type'] == 'table': - f.write('') - f.write('') - for title in block['cols']: - f.write('' % (title)) - f.write('') - for row in block['rows']: - f.write('') - for v in row: - f.write('' % (v)) - f.write('') - f.write('
%s
%s
') - f.write('') - def generateDisplayDaysStat(): cur_time = meta_visit['last_time'] title = 'Stats %d/%d' % (cur_time.tm_mon, cur_time.tm_year) filename = '%d/index_%d.html' % (cur_time.tm_year, cur_time.tm_mon) - page = createPage(filename, title) + page = createPage(display, filename, title) - days = {'type' : 'table', 'title' : 'By day'} - days['cols'] = ['Day', 'Visits', 'Pages', 'Hits', 'Bandwith', 'Robot Bandwith'] - days['rows'] = [] + days = createTable('By day', ['Day', 'Visits', 'Pages', 'Hits', 'Bandwith', 'Robot Bandwith']) + keys = current_visits['days_stats'].keys() keys.sort() nb_visits = 0 @@ -249,7 +220,7 @@ def generateDisplayDaysStat(): stats = current_visits['days_stats'][k] row = [k, stats['nb_visitors'], stats['viewed_pages'], stats['viewed_hits'], stats['viewed_bandwidth'], stats['not_viewed_bandwidth']] row = map(lambda(v): str(v), row) - days['rows'].append(row) + appendRowToTable(days, row) nb_visits += stats['nb_visitors'] stats = current_visits['month_stats'] @@ -262,12 +233,12 @@ def generateDisplayDaysStat(): row = map(lambda(v): '0', row) row[0] = 'Average' - days['rows'].append(row) + appendRowToTable(days, row) row = ['Total', nb_visits, stats['viewed_pages'], stats['viewed_hits'], stats['viewed_bandwidth'], stats['not_viewed_bandwidth']] row = map(lambda(v): str(v), row) - days['rows'].append(row) - page['blocks'].append(days) + appendRowToTable(days, row) + appendBlockToPage(page, days) def generateDisplay(): generateDisplayDaysStat()