今頃といえば今頃だけど、直近の仕事で使えそうなので。
- トラックバック技術仕様書 http://lowlife.jp/yasusii/stories/8.html
- トラックバック技術仕様書の ?__mode=rss はなかったことに http://d.hatena.ne.jp/naoya/20050818/1124325381 やっぱりこの部分はなかったことになってるんだ。調べてよかった。
はてなのトラックバックを使って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)