Add visitors in addition to visits

This commit is contained in:
Grégory Soutadé 2014-12-15 20:43:43 +01:00
parent caeab70ca6
commit e327a1ff35

38
iwla.py
View File

@ -50,6 +50,7 @@ from display import *
# not_viewed_bandwidth # not_viewed_bandwidth
# viewed_pages # viewed_pages
# viewed_hits # viewed_hits
# nb_visits
# nb_visitors # nb_visitors
# #
# month_stats : # month_stats :
@ -57,7 +58,7 @@ from display import *
# not_viewed_bandwidth # not_viewed_bandwidth
# viewed_pages # viewed_pages
# viewed_hits # viewed_hits
# nb_visitors # nb_visits
# #
# days_stats : # days_stats :
# day => # day =>
@ -65,6 +66,7 @@ from display import *
# not_viewed_bandwidth # not_viewed_bandwidth
# viewed_pages # viewed_pages
# viewed_hits # viewed_hits
# nb_visits
# nb_visitors # nb_visitors
# #
# visits : # visits :
@ -338,18 +340,18 @@ class IWLA(object):
page = self.display.createPage(title, filename, conf.css_path) page = self.display.createPage(title, filename, conf.css_path)
_, nb_month_days = monthrange(cur_time.tm_year, cur_time.tm_mon) _, nb_month_days = monthrange(cur_time.tm_year, cur_time.tm_mon)
days = self.display.createBlock(DisplayHTMLBlockTableWithGraph, 'By day', ['Day', 'Visitors', 'Pages', 'Hits', 'Bandwidth', 'Not viewed Bandwidth'], None, nb_month_days, range(1,6)) days = self.display.createBlock(DisplayHTMLBlockTableWithGraph, 'By day', ['Day', 'Visits', 'Pages', 'Hits', 'Bandwidth', 'Not viewed Bandwidth'], None, nb_month_days, range(1,6))
days.setColsCSSClass(['', 'iwla_visitor', 'iwla_page', 'iwla_hit', 'iwla_bandwidth', 'iwla_bandwidth']) days.setColsCSSClass(['', 'iwla_visit', 'iwla_page', 'iwla_hit', 'iwla_bandwidth', 'iwla_bandwidth'])
nb_visits = 0 nb_visits = 0
nb_days = 0 nb_days = 0
for i in range(1, nb_month_days+1): for i in range(1, nb_month_days+1):
day = '%d<br/>%s' % (i, time.strftime('%b', cur_time)) day = '%d<br/>%s' % (i, time.strftime('%b', cur_time))
full_day = '%d %s %d' % (i, time.strftime('%b', cur_time), cur_time.tm_year) full_day = '%02d %s %d' % (i, time.strftime('%b', cur_time), cur_time.tm_year)
if i in self.current_analysis['days_stats'].keys(): if i in self.current_analysis['days_stats'].keys():
stats = self.current_analysis['days_stats'][i] stats = self.current_analysis['days_stats'][i]
row = [full_day, stats['nb_visitors'], stats['viewed_pages'], stats['viewed_hits'], row = [full_day, stats['nb_visits'], stats['viewed_pages'], stats['viewed_hits'],
stats['viewed_bandwidth'], stats['not_viewed_bandwidth']] stats['viewed_bandwidth'], stats['not_viewed_bandwidth']]
nb_visits += stats['nb_visitors'] nb_visits += stats['nb_visits']
nb_days += 1 nb_days += 1
else: else:
row = [full_day, 0, 0, 0, 0, 0] row = [full_day, 0, 0, 0, 0, 0]
@ -391,10 +393,10 @@ class IWLA(object):
cur_time = time.localtime() cur_time = time.localtime()
months_name = ['', 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'June', 'July', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] months_name = ['', 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'June', 'July', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
title = 'Summary %d' % (year) title = 'Summary %d' % (year)
cols = ['Month', 'Visitors', 'Pages', 'Hits', 'Bandwidth', 'Not viewed Bandwidth', 'Details'] cols = ['Month', 'Visitors', 'Visits', 'Pages', 'Hits', 'Bandwidth', 'Not viewed Bandwidth', 'Details']
graph_cols=range(1,6) graph_cols=range(1,7)
months = self.display.createBlock(DisplayHTMLBlockTableWithGraph, title, cols, None, 12, graph_cols) months = self.display.createBlock(DisplayHTMLBlockTableWithGraph, title, cols, None, 12, graph_cols)
months.setColsCSSClass(['', 'iwla_visitor', 'iwla_page', 'iwla_hit', 'iwla_bandwidth', 'iwla_bandwidth', '']) months.setColsCSSClass(['', 'iwla_visitor', 'iwla_visit', 'iwla_page', 'iwla_hit', 'iwla_bandwidth', 'iwla_bandwidth', ''])
total = [0] * len(cols) total = [0] * len(cols)
for i in range(1, 13): for i in range(1, 13):
month = '%s<br/>%d' % (months_name[i], year) month = '%s<br/>%d' % (months_name[i], year)
@ -402,15 +404,15 @@ class IWLA(object):
if i in month_stats.keys(): if i in month_stats.keys():
stats = month_stats[i] stats = month_stats[i]
link = '<a href="%d/%02d/index.html">Details</a>' % (year, i) link = '<a href="%d/%02d/index.html">Details</a>' % (year, i)
row = [full_month, stats['nb_visitors'], stats['viewed_pages'], stats['viewed_hits'], row = [full_month, stats['nb_visitors'], stats['nb_visits'], stats['viewed_pages'], stats['viewed_hits'],
stats['viewed_bandwidth'], stats['not_viewed_bandwidth'], link] stats['viewed_bandwidth'], stats['not_viewed_bandwidth'], link]
for j in graph_cols: for j in graph_cols:
total[j] += row[j] total[j] += row[j]
else: else:
row = [full_month, 0, 0, 0, 0, 0, ''] row = [full_month, 0, 0, 0, 0, 0, 0, '']
months.appendRow(row) months.appendRow(row)
months.setCellValue(i-1, 4, bytesToStr(row[4]))
months.setCellValue(i-1, 5, bytesToStr(row[5])) months.setCellValue(i-1, 5, bytesToStr(row[5]))
months.setCellValue(i-1, 6, bytesToStr(row[6]))
months.appendShortTitle(month) months.appendShortTitle(month)
if year == cur_time.tm_year and i == cur_time.tm_mon: if year == cur_time.tm_year and i == cur_time.tm_mon:
css = months.getCellCSSClass(i-1, 0) css = months.getCellCSSClass(i-1, 0)
@ -419,8 +421,8 @@ class IWLA(object):
months.setCellCSSClass(i-1, 0, css) months.setCellCSSClass(i-1, 0, css)
total[0] = 'Total' total[0] = 'Total'
total[4] = bytesToStr(total[4])
total[5] = bytesToStr(total[5]) total[5] = bytesToStr(total[5])
total[6] = bytesToStr(total[6])
months.appendRow(total) months.appendRow(total)
page.appendBlock(months) page.appendBlock(months)
@ -431,7 +433,7 @@ class IWLA(object):
page = self.display.createPage(title, filename, conf.css_path) page = self.display.createPage(title, filename, conf.css_path)
last_update = '<b>Last update</b> %s<br />' % (time.strftime('%d %b %Y %H:%M', time.localtime())) last_update = '<b>Last update</b> %s<br />' % (time.strftime('%02d %b %Y %H:%M', time.localtime()))
page.appendBlock(self.display.createBlock(DisplayHTMLRaw, last_update)) page.appendBlock(self.display.createBlock(DisplayHTMLRaw, last_update))
for year in self.meta_infos['stats'].keys(): for year in self.meta_infos['stats'].keys():
@ -451,7 +453,7 @@ class IWLA(object):
stats['not_viewed_bandwidth'] = 0 stats['not_viewed_bandwidth'] = 0
stats['viewed_pages'] = 0 stats['viewed_pages'] = 0
stats['viewed_hits'] = 0 stats['viewed_hits'] = 0
stats['nb_visitors'] = 0 stats['nb_visits'] = 0
return stats return stats
@ -485,7 +487,7 @@ class IWLA(object):
continue continue
self.valid_visitors[k] = v self.valid_visitors[k] = v
duplicated_stats['visitors'] = stats['visitors'] = len(self.valid_visitors.keys()) duplicated_stats['nb_visitors'] = stats['nb_visitors'] = len(self.valid_visitors.keys())
self._callPlugins(conf.POST_HOOK_DIRECTORY) self._callPlugins(conf.POST_HOOK_DIRECTORY)
@ -535,9 +537,9 @@ class IWLA(object):
if (conf.count_hit_only_visitors or\ if (conf.count_hit_only_visitors or\
viewed_pages) and\ viewed_pages) and\
not super_hit['robot']: not super_hit['robot']:
stats['nb_visitors'] += 1 stats['nb_visits'] += 1
print "== Stats for %d/%02d/%d ==" % (cur_time.tm_year, cur_time.tm_mon, cur_time.tm_mday) print "== Stats for %d/%02d/%02d ==" % (cur_time.tm_year, cur_time.tm_mon, cur_time.tm_mday)
print stats print stats