diff --git a/display.py b/display.py
index d414604..3f5ae3c 100644
--- a/display.py
+++ b/display.py
@@ -1,3 +1,4 @@
+import os
class DisplayHTMLBlock(object):
@@ -56,7 +57,13 @@ class DisplayHTMLPage(object):
self.blocks.append(block)
def build(self, root):
- f = open(root + self.filename, 'w')
+ filename = root + self.filename
+
+ base = os.path.dirname(filename)
+ if not os.path.exists(base):
+ os.makedirs(base)
+
+ f = open(filename, 'w')
f.write('
%s' % (self.title))
for block in self.blocks:
block.build(f)
diff --git a/iwla.py b/iwla.py
index 2261e80..c467687 100755
--- a/iwla.py
+++ b/iwla.py
@@ -77,11 +77,17 @@ class IWLA(object):
def isValidForCurrentAnalysis(self, request):
cur_time = self.meta_infos['start_analysis_time']
- return (time.mktime(cur_time) <= time.mktime(request['time_decoded']))
+ # Analyse not started
+ if not cur_time: return False
+ return (time.mktime(cur_time) < time.mktime(request['time_decoded']))
def hasBeenViewed(self, request):
return int(request['status']) in conf.viewed_http_codes
+ def getCurDisplayRoot(self):
+ cur_time = self.meta_infos['last_time']
+ return '%d/%d/' % (cur_time.tm_year, cur_time.tm_mon)
+
def _clearMeta(self):
self.meta_infos = {
'last_time' : None
@@ -93,7 +99,7 @@ class IWLA(object):
return self.display
def getDBFilename(self, time):
- return (conf.DB_ROOT + '%d/%d_%s') % (time.tm_year, time.tm_mon, conf.DB_FILENAME)
+ return (conf.DB_ROOT + '%d/%d/%s') % (time.tm_year, time.tm_mon, conf.DB_FILENAME)
def _serialize(self, obj, filename):
base = os.path.dirname(filename)
@@ -214,14 +220,14 @@ class IWLA(object):
def getDisplayIndex(self):
cur_time = self.meta_infos['last_time']
- filename = '%d/index_%d.html' % (cur_time.tm_year, cur_time.tm_mon)
+ filename = '%s/index.html' % (self.getCurDisplayRoot())
return self.display.getPage(filename)
def _generateDisplayDaysStat(self):
cur_time = self.meta_infos['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)
+ filename = '%s/index.html' % (self.getCurDisplayRoot())
print '==> Generate display (%s)' % (filename)
page = DisplayHTMLPage(title, filename)
@@ -367,7 +373,7 @@ class IWLA(object):
self.analyse_started = True
else:
if not self.analyse_started:
- if not self.isValidForCurrentAnalysis(hit):
+ if time.mktime(t) < time.mktime(cur_time):
return False
else:
self.analyse_started = True
diff --git a/plugins/display/all_visits.py b/plugins/display/all_visits.py
index 2374233..ae9ed40 100644
--- a/plugins/display/all_visits.py
+++ b/plugins/display/all_visits.py
@@ -15,11 +15,10 @@ class IWLADisplayAllVisits(IPlugin):
last_access = sorted(hits.values(), key=lambda t: t['last_access'], reverse=True)
- cur_time = self.iwla.getCurTime()
- title = time.strftime('All visits - %B %Y', cur_time)
+ title = time.strftime('All visits - %B %Y', self.iwla.getCurTime())
- filename = 'all_visits_%d.html' % (cur_time.tm_mon)
- path = '%d/%s' % (cur_time.tm_year, filename)
+ filename = 'all_visits.html'
+ path = '%s/%s' % (self.iwla.getCurDisplayRoot(), filename)
page = DisplayHTMLPage(title, path)
table = DisplayHTMLBlockTable('Last seen', ['Host', 'Pages', 'Hits', 'Bandwidth', 'Last seen'])
diff --git a/plugins/display/referers.py b/plugins/display/referers.py
index 318c94f..329f998 100644
--- a/plugins/display/referers.py
+++ b/plugins/display/referers.py
@@ -54,8 +54,8 @@ class IWLADisplayReferers(IPlugin):
cur_time = self.iwla.getCurTime()
title = time.strftime('Connexion from - %B %Y', cur_time)
- filename = 'referers_%d.html' % (cur_time.tm_mon)
- path = '%d/%s' % (cur_time.tm_year, filename)
+ filename = 'referers.html'
+ path = '%s/%s' % (self.iwla.getCurDisplayRoot(), filename)
page = DisplayHTMLPage(title, path)
table = DisplayHTMLBlockTable('Connexion from', ['Origin', 'Pages', 'Hits'])
@@ -93,8 +93,8 @@ class IWLADisplayReferers(IPlugin):
# All key phrases in a file
title = time.strftime('Key Phrases - %B %Y', cur_time)
- filename = 'key_phrases_%d.html' % (cur_time.tm_mon)
- path = '%d/%s' % (cur_time.tm_year, filename)
+ filename = 'key_phrases.html'
+ path = '%s/%s' % (self.iwla.getCurDisplayRoot(), filename)
page = DisplayHTMLPage(title, path)
table = DisplayHTMLBlockTable('Top key phrases', ['Key phrase', 'Search'])
diff --git a/plugins/display/top_downloads.py b/plugins/display/top_downloads.py
index 970e104..44141a9 100644
--- a/plugins/display/top_downloads.py
+++ b/plugins/display/top_downloads.py
@@ -22,11 +22,10 @@ class IWLADisplayTopDownloads(IPlugin):
table.appendRow([uri, entrance])
index.appendBlock(table)
- cur_time = self.iwla.getCurTime()
- title = time.strftime('Top Downloads - %B %Y', cur_time)
+ title = time.strftime('Top Downloads - %B %Y', self.iwla.getCurTime())
- filename = 'top_downloads_%d.html' % (cur_time.tm_mon)
- path = '%d/%s' % (cur_time.tm_year, filename)
+ filename = 'top_downloads.html'
+ path = '%s/%s' % (self.iwla.getCurDisplayRoot(), filename)
page = DisplayHTMLPage(title, path)
table = DisplayHTMLBlockTable('All Downloads', ['URI', 'Hit'])
diff --git a/plugins/display/top_hits.py b/plugins/display/top_hits.py
index 4809d0b..fb7fe47 100644
--- a/plugins/display/top_hits.py
+++ b/plugins/display/top_hits.py
@@ -22,11 +22,10 @@ class IWLADisplayTopHits(IPlugin):
table.appendRow([uri, entrance])
index.appendBlock(table)
- cur_time = self.iwla.getCurTime()
- title = time.strftime('All Hits - %B %Y', cur_time)
+ title = time.strftime('All Hits - %B %Y', self.iwla.getCurTime())
- filename = 'top_hits_%d.html' % (cur_time.tm_mon)
- path = '%d/%s' % (cur_time.tm_year, filename)
+ filename = 'top_hits.html'
+ path = '%s/%s' % (self.iwla.getCurDisplayRoot(), filename)
page = DisplayHTMLPage(title, path)
table = DisplayHTMLBlockTable('Top Hits', ['URI', 'Entrance'])
diff --git a/plugins/display/top_pages.py b/plugins/display/top_pages.py
index 100f97b..e2e29c0 100644
--- a/plugins/display/top_pages.py
+++ b/plugins/display/top_pages.py
@@ -22,11 +22,10 @@ class IWLADisplayTopPages(IPlugin):
table.appendRow([uri, entrance])
index.appendBlock(table)
- cur_time = self.iwla.getCurTime()
- title = time.strftime('All Pages - %B %Y', cur_time)
+ title = time.strftime('All Pages - %B %Y', self.iwla.getCurTime())
- filename = 'top_pages_%d.html' % (cur_time.tm_mon)
- path = '%d/%s' % (cur_time.tm_year, filename)
+ filename = 'top_pages.html'
+ path = '%s/%s' % (self.iwla.getCurDisplayRoot(), filename)
page = DisplayHTMLPage(title, path)
table = DisplayHTMLBlockTable('Top Pages', ['URI', 'Entrance'])