#! /usr/bin/python
import sys
import BaseHTTPServer
import SocketServer
import libxml2
import libxslt
import re
import urllib
class myHTTPServer ( SocketServer.ThreadingMixIn, BaseHTTPServer.HTTPServer ): pass
class myHTTPRequestHandler(BaseHTTPServer.BaseHTTPRequestHandler):
def query(self,q):
style = createStylesheet(q)
doc = libxml2.parseFile( blogfile )
try:
result = style.applyStylesheet(doc, None)
except:
return "bad query: %s" % q
strResult = style.saveResultToString(result)
css = getCss()
script = getScript()
preamble = getPreamble(q)
page = """
XPath query of Jon's Radio
%s %s
""" % (css, script, preamble, strResult)
style.freeStylesheet()
doc.freeDoc()
result.freeDoc()
return page
def do_GET(self):
xhtml = self.send_head()
self.wfile.write(xhtml)
def send_head(self):
q = self.requestline.split()[1]
q = re.sub('^/\?','',q)
q = urllib.unquote(q)
xhtml = self.query(q)
if ( len (xhtml) > maxchars ):
xhtml = "query returned more than %d characters" % maxchars
self.send_response(200)
self.send_header("Content-type", "text/html")
self.send_header("Content-Length", len(xhtml))
self.end_headers()
return xhtml
def getXsltTemplate():
return '''
Results:
Entries searched:
Date of oldest entry searched:
Date of newest entry searched:
http://weblog.infoworld.com/udell/.html#
()
Source:
'''
def getPreamble(q):
preamble = '''
choose xpath query from list, modify/reenter below |
|
all paragraphs containing phrase |
|
|
|
'''
preamble = preamble.replace('__QUERY__', q)
option = '