# -*- coding: utf8 -*-
from Globals import ImageFile
import Globals
from Products.ZAWSTATS import app
from App.Common import package_home
import os
def initialize(context):
context.registerClass(
app.ZAWSTATS,
permission="Add ZAWSTATS Object",
constructors=(
app.manage_addZAWSTATS,
)
)
misc_ = {
'app_icon.gif': ImageFile('icon/app.gif', globals()),
}
# -*- coding: utf8 -*-index_html後はZope上でプロダクトを作成して、その下にindex_htmlでMethodを呼び出すだけ。
import AccessControl
import Globals, OFS
from Globals import HTMLFile
from App.Common import package_home
import os
import socket
import re
import string
import urllib2
def manage_addZAWSTATS(self, REQUEST=None):
""" ZAWSTATS ZMI Add Method """
obj = ZAWSTATS('ZAWSTATS')
self._setObject('ZAWSTATS', obj)
obj = getattr(self, 'ZAWSTATS')
obj.instance_root = obj.absolute_url()
return self.manage_main(self, REQUEST)
class ZAWSTATS(OFS.Folder.Folder):
""" ZAWSTATS Main Class """
meta_type = "ZAWSTATS HP"
icon = "misc_/ZAWSTATS/app_icon.gif"
security = AccessControl.ClassSecurityInfo()
security.setPermissionDefault('Manage ZAWSTATS', ['Manager'])
def __init__(self, id):
self.id = id
self.flags = re.I | re.M | re.S
self.pat_daysofmonth = re.compile('<a name="daysofmonth"> </a><br />(.*?)<br />.<table>', self.flags)
self.pat_table = re.compile('<center>.(.*?)end_of_html', self.flags)
self.url = 'http://[awstats.url]/awstats.pl?config=[my.domain]&framename=mainright'
def get_awstats_html(self):
""" get_awstats_html """
body = self.get_site(self.url)
return body
def get_site(self, url):
""" get_site """
socket.setdefaulttimeout(120)
request = urllib2.Request(url)
request.add_header("User-Agent","AWStats Scanner 1.0")
opener = urllib2.build_opener()
body = opener.open(request).read()
return body
def get_first_match(self, pat, body):
""" get_first_match """
m = re.search(pat,body,self.flags)
if m and m.groups():
return m.groups()[0]
else:
return ""
<dtml-var standard_html_header>まあ、この形じゃプロダクト作った時点でClassが生成されるので最新の情報を取ってこない。
<h2><dtml-var title_or_id> <dtml-var document_title></h2>
<p>
<dtml-var get_awstats_html>
</p>
<dtml-var standard_html_footer>
http://kapi.jp/kapi_blog/163
2008年08月20日
関連カテゴリ Zope