APR
23

IronPython触れてみた。

Published:2009-04-23 01:43:57 UTC

IronPythonの世界 (Windows Script Programming): 荒井 省三は読んだことがあるものの、IronPython自体は一行も書いたことが無かったので試しに書いてみた。

‘Hello World’メッセージをWordPressのBlogに投稿するコード。

# coding=utf8
import System
import clr
import sys

clr.AddReferenceToFile('SharpLab.XML-RPCLib2.dll')
clr.AddReferenceToFile('SharpLab.WP-XML-RPCLib2.dll')

from SharpLab.XMLRPCLib2 import *
from SharpLab.WPXMLRPCLib2 import *

endPointUri = raw_input(u'WordPressのエンドポイントURL:');
username = raw_input(u'WordPressのユーザー名:');
passoword = raw_input(u'WordPressのパスワード:');
client = WordPressClient(endPointUri,'IpyPostMessage');
authInfo = AuthenticationInfo(username, passoword)

postContent = PostContent()
postContent.Title = 'Hello World, from IronPython. [EOM]'
postContent.Description = ''
postContent.TextMore = ''
postContent.Excerpt = ''

client.NewPost(authInfo, 0, postContent, True)

print 'Published!'

最新の記事100件のタイトルとタグを一覧表示するコード。

# coding=utf8
import System
import clr
import sys

clr.AddReferenceToFile('SharpLab.XML-RPCLib2.dll')
clr.AddReferenceToFile('SharpLab.WP-XML-RPCLib2.dll')

from SharpLab.XMLRPCLib2 import *
from SharpLab.WPXMLRPCLib2 import *

endPointUri = raw_input(u'WordPressのエンドポイントURL:');
username = raw_input(u'WordPressのユーザー名:');
passoword = raw_input(u'WordPressのパスワード:');
client = WordPressClient(endPointUri, 'IpyPostMessage');
authInfo = AuthenticationInfo(username, passoword)

result = client.GetRecentPosts(authInfo, 0, 100)

for item in result.Response :
	print item['title'].Value + '(' +item['mt_keywords'].Value + ')'

DLR楽しい。.Netのアセンブリが簡単に扱えるのは嬉しいですね。TabのないコードなんてPythonを書いているとは言えない!というツッコミは無しで。