今頃といえば今頃だけど、直近の仕事で使えそうなので。
はてなのトラックバックを使ってCGIを作って練習してみた。
tb.py
#!/usr/bin/env python2.4
# -*- coding: utf-8 -*-
"""トラックバックを受けて、テキストファイルに出力する。
"""
import os
DB='/tmp/tb.txt'
if not os.path.exists(DB):
f = file(DB,'w')
f.write('--- trackbacks ---\n')
f.close()
def resp(error_code=0,message=None):
s = "%d" % error_code
if message:
s += "%s" % message
return s
def xml_resp(s):
return """
%s
""" % s
class TrackbackRequest(object):
title = ""
url = ""
blog_name = ""
excerpt = ""
def __init__(self,form):
if form.has_key('title'):self.title = form['title'].value
if form.has_key('url'):self.url = form['url'].value
if form.has_key('blog_name'):self.blog_name = form['blog_name'].value
if form.has_key('excerpt'):self.excerpt = form['excerpt'].value
if not self.url:
raise Exception,"url should exists."
def save(self,file_name):
f = file(file_name,'a')
f.write('%s\t%s\t%s\t%s\n' % (self.url,self.title,self.blog_name,self.excerpt))
f.close()
import cgi
print "Content-type: text/xml\n"
try:
tb = TrackbackRequest(cgi.FieldStorage())
tb.save(DB)
print xml_resp(resp(0,str(tb)))
except Exception,msg:
print resp(1,msg)