import time␊ |
␊ |
from iwla import IWLA␊ |
from iplugin import IPlugin␊ |
from display import *␊ |
␊ |
class IWLADisplayTopPages(IPlugin):␊ |
def __init__(self, iwla):␊ |
super(IWLADisplayTopPages, self).__init__(iwla)␊ |
self.API_VERSION = 1␊ |
self.requires = ['IWLAPostAnalysisTopPages']␊ |
␊ |
def hook(self):␊ |
top_pages = self.iwla.getMonthStats()['top_pages']␊ |
␊ |
top_pages = sorted(top_pages.items(), key=lambda t: t[1], reverse=True)␊ |
␊ |
index = self.iwla.getDisplayIndex()␊ |
␊ |
table = DisplayHTMLBlockTable('Top Pages', ['URI', 'Entrance']) ␊ |
for (uri, entrance) in top_pages[:10]:␊ |
table.appendRow([uri, entrance])␊ |
index.appendBlock(table)␊ |
␊ |
cur_time = self.iwla.getCurTime()␊ |
title = time.strftime('Top Pages - %B %Y', cur_time)␊ |
␊ |
filename = 'top_pages_%d.html' % (cur_time.tm_mon)␊ |
path = '%d/%s' % (cur_time.tm_year, filename)␊ |
␊ |
page = DisplayHTMLPage(title, path)␊ |
table = DisplayHTMLBlockTable('Top Pages', ['URI', 'Entrance']) ␊ |
for (uri, entrance) in top_pages:␊ |
table.appendRow([uri, entrance])␊ |
page.appendBlock(table)␊ |
␊ |
display = self.iwla.getDisplay()␊ |
display.addPage(page)␊ |
␊ |
block = DisplayHTMLRawBlock()␊ |
block.setRawHTML('<a href=\'%s\'>All pages</a>' % (filename))␊ |
index.appendBlock(block)␊ |