import BaseHTTPServer
import re
import urllib
import sys

class myHTTPRequestHandler(BaseHTTPServer.BaseHTTPRequestHandler):

    def query(self,url):

        tpage = urllib.urlopen('http://www.technorati.com/cosmos/search.html?url=' + url).read()

        m = re.search ('from <span class="greentext">(\d+)</span>',tpage)

        count = int (m.group(1))

        if ( count > 0 ):

            return """
document.write('Technorati comments: <a href="http://www.technorati.com/cosmos/search.html?url=%s">%d</a>')
""" % (url, count)
        else:
            return ''

    def do_GET(self):
        try:
            q = self.requestline.split()[1]
            print q
            m = re.search('url=([^\s]+)', q)
            url = m.group(1)
            print url
#            url = 'http://weblog.infoworld.com/udell/2004/04/12.html'

            page = self.query(url)
            print page
            self.send_response(200)
            self.send_header("Content-type", "text/html")
            self.send_header("Content-Length", len(page))
            self.end_headers()
            self.wfile.write(page)

        except:
            self.send_error(500)


def run(HandlerClass = myHTTPRequestHandler, 
        ServerClass = BaseHTTPServer.HTTPServer, protocol="HTTP/1.0"):

    if sys.argv[1:]:
        port = int(sys.argv[1])
    else:
        port = 8005
    server_address = ('', port)

    HandlerClass.protocol_version = protocol
    httpd = ServerClass(server_address, HandlerClass)

    sa = httpd.socket.getsockname()
    print "Serving HTTP on", sa[0], "port", sa[1], "..."
    httpd.serve_forever()

if __name__ == '__main__':
    run()

