hiki_fortune.py

30分シリーズ、その17。
手前味噌ながら、Hikiのfortuneプラグインのデータを本当のfortuneの形式に変換するためのプログラム。

$ python hiki_fortune.py http://mzp.sakura.ne.jp/wiki/hiki.cgi fortune
この頃(西暦37年)、マクロの勢力が絶頂にあった。(タクトゥス年代記 via TeXブック)
%
TMTOWTDI(やり方はひとつじゃない)
%
....

実際にfortuneで使えるようにするには、

$ python hiki_fortune.py http://mzp.sakura.ne.jp/wiki/hiki.cgi fortune > hiki

$ strfile hiki

$ fortune hiki
TMTOWTDI(やり方はひとつじゃない)

とする。

#!/usr/bin/env python
# make fortune data from hiki
import sys
import xmlrpclib
 
def getPage(url,page):
    hiki = xmlrpclib.ServerProxy(url)
    return hiki.wiki.getPage(page)
 
def splitData(data):
    def p(item):
	return item.startswith('*')
 
    def f(item):
	return item.strip('* ')
 
    return map(f,filter(p,data.split("\n")))
 
def make_fortune(item):
    return "%s\n%%" % item
 
try:
    fortune = getPage(sys.argv[1],sys.argv[2])
    for item in map(make_fortune,splitData(str(fortune))):
	print item
except xmlrpclib.Fault,v:
    sys.stderr.write(v.faultString+"\n")
    sys.exit(1)