diff --git a/display.py b/display.py
index 101f2ab..f48022f 100644
--- a/display.py
+++ b/display.py
@@ -76,16 +76,16 @@ class DisplayHTMLBlock(DisplayHTMLRaw):
return self.title
def setTitle(self, value):
- self.title = unicode(value)
+ self.title = value
def setCSSClass(self, cssclass):
- self.cssclass = unicode(cssclass)
+ self.cssclass = cssclass
def setTitleCSSClass(self, cssclass):
- self.title_cssclass = unicode(cssclass)
+ self.title_cssclass = cssclass
def setValueCSSClass(self, cssclass):
- self.value_cssclass = unicode(cssclass)
+ self.value_cssclass = cssclass
def _buildHTML(self):
html = u'
' % (self.cssclass)
@@ -143,14 +143,14 @@ class DisplayHTMLBlockTable(DisplayHTMLBlock):
row >= len(self.rows) or col >= len(self.cols):
raise ValueError('Invalid indices %d,%d' % (row, col))
- self.rows[row][col] = unicode(value)
+ self.rows[row][col] = value
def setCellCSSClass(self, row, col, value):
if row < 0 or col < 0 or\
row >= len(self.rows) or col >= len(self.cols):
raise ValueError('Invalid indices %d,%d' % (row, col))
- self.rows_cssclasses[row][col] = unicode(value)
+ self.rows_cssclasses[row][col] = value
def getCellCSSClass(self, row, col):
if row < 0 or col < 0 or\
@@ -169,13 +169,13 @@ class DisplayHTMLBlockTable(DisplayHTMLBlock):
if row < 0 or row >= len(self.rows):
raise ValueError('Invalid indice %d' % (row))
- self.rows_cssclasses[row] = [unicode(value)] * len(self.rows_cssclasses[row])
+ self.rows_cssclasses[row] = [value] * len(self.rows_cssclasses[row])
def setColCSSClass(self, col, value):
if col < 0 or col >= len(self.cols):
raise ValueError('Invalid indice %d' % (col))
- self.cols_cssclasses[col] = unicode(value)
+ self.cols_cssclasses[col] = value
def setColsCSSClass(self, values):
if len(values) != len(self.cols):
@@ -255,7 +255,7 @@ class DisplayHTMLBlockTableWithGraph(DisplayHTMLBlockTable):
super(DisplayHTMLBlockTableWithGraph, self).appendRow(row)
def appendShortTitle(self, short_title):
- self.short_titles.append(unicode(short_title))
+ self.short_titles.append(short_title)
def setShortTitle(self, short_titles):
self.short_titles = listToStr(short_titles)
@@ -267,8 +267,11 @@ class DisplayHTMLBlockTableWithGraph(DisplayHTMLBlockTable):
for i in range(0, self.nb_valid_rows):
row = self.raw_rows[i]
for j in range(1, len(row)):
- if row[j] > self.maxes[j]:
- self.maxes[j] = row[j]
+ try:
+ if row[j] > self.maxes[j]:
+ self.maxes[j] = row[j]
+ except:
+ continue
def _getIconFromStyle(self, style):
if style.startswith(u'iwla_page'): icon = u'vp.png'
@@ -321,7 +324,7 @@ class DisplayHTMLPage(object):
def __init__(self, iwla, title, filename, css_path):
self.iwla = iwla
- self.title = unicode(title)
+ self.title = title
self.filename = filename
self.blocks = []
self.css_path = listToStr(css_path)
@@ -421,27 +424,34 @@ class DisplayHTMLBuild(object):
# Global functions
#
-def bytesToStr(bytes):
+def bytesToStr(_bytes):
suffixes = [u'', u' kB', u' MB', u' GB', u' TB']
+ try:
+ if type(_bytes) != int:
+ _bytes = int(_bytes, 10)
+ except:
+ return _bytes
+
for i in range(0, len(suffixes)):
- if bytes < 1024: break
- bytes /= 1024.0
+ if _bytes < 1024: break
+ _bytes /= 1024.0
if i:
- return u'%.02f%s' % (bytes, suffixes[i])
+ return u'%.02f%s' % (_bytes, suffixes[i])
else:
- return u'%d%s' % (bytes, suffixes[i])
+ return u'%d%s' % (_bytes, suffixes[i])
def _toStr(v):
+ return v
if type(v) != unicode: return unicode(v)
else: return v
-def listToStr(l): return map(lambda v : _toStr(v), l)
+def listToStr(l): return l #map(lambda v : _toStr(v), l)
def generateHTMLLink(url, name=None, max_length=100, prefix=u'http'):
- url = unicode(url)
- if not name: name = unicode(url)
+ url = url
+ if not name: name = url
if not url.startswith(prefix): url = u'%s://%s' % (prefix, url)
return u'
%s' % (url, name[:max_length])
diff --git a/iwla.py b/iwla.py
index 25a2dc7..0f54fca 100755
--- a/iwla.py
+++ b/iwla.py
@@ -482,9 +482,9 @@ class IWLA(object):
row = [0, nb_visits, stats['viewed_pages'], stats['viewed_hits'], stats['viewed_bandwidth'], stats['not_viewed_bandwidth']]
if nb_days:
- average_row = map(lambda v: int(v/nb_days), row)
+ average_row = list(map(lambda v: int(v/nb_days), row))
else:
- average_row = map(lambda v: 0, row)
+ average_row = list(map(lambda v: 0, row))
average_row[0] = self._('Average')
average_row[4] = bytesToStr(average_row[4])
@@ -642,6 +642,8 @@ class IWLA(object):
self._callPlugins(conf.POST_HOOK_DIRECTORY)
if args.display_only:
+ if not 'stats' in self.meta_infos.keys():
+ self.meta_infos['stats'] = {}
self._generateDisplay()
return
diff --git a/plugins/post_analysis/referers.py b/plugins/post_analysis/referers.py
index d4357e9..ee7ed8e 100644
--- a/plugins/post_analysis/referers.py
+++ b/plugins/post_analysis/referers.py
@@ -19,7 +19,7 @@
#
import re
-import urllib
+import urllib.parse
from iwla import IWLA
from iplugin import IPlugin
@@ -113,7 +113,7 @@ class IWLAPostAnalysisReferers(IPlugin):
if groups:
key_phrase = groups.groupdict()['key_phrase']
try:
- key_phrase = urllib.unquote_plus(key_phrase).decode('utf8')
+ key_phrase = urllib.parse.unquote_plus(key_phrase)
except Exception as e:
print(e)
continue