32nd TwitterIrcGateway

2009-11-13

接頭辞によってポスト先を変えるスクリプト

23:39

例によって Configs/${User}/Scripts の下に 90post_33.py のような名前で入れます。

# -*- coding: utf-8 -*-
# vim: fileencoding=utf-8
# vi:set ts=4 sw=4:

import urllib, urllib2
import time, sys, re
import clr
sys.path.append('/usr/lib/python2.5')
import commands

def OnPreSendUpdateStatus(sender, e):
	status = e.Text
	skip = re.match('^([Dd]\s+|@[_a-zA-Z0-9]+).*$', status)
	if skip:
		return
	match = re.match('^33\s+(.*)', status)
	if not match:
		return
	status = match.group(1)
	user = "takano33"
	password = "passphrase"

 	cmd = "wget -O - --user=%s --password=%s " \
 	    "--post-data='status=%s&source=TwitterIrcGateway' " \
 	    "http://twitter.com/statuses/update.xml" % \
 	    (user, password, urllib.quote_plus(status.encode('utf-8')))
 	result = commands.getoutput(cmd)
	e.Text = "D " #None

Session.PreSendUpdateStatus += OnPreSendUpdateStatus

re.match のなかの正規表現アカウント投稿用プレフィックスを指定します。この例では "33" が先頭にあるときに機能します。

"user = ..." の部分と "password = ..." の部分をアカウントにあわせて書き換えて下さい。

この場合は "33 hoge" と入力すると @takano33 が "hoge" と発言します。

テクニカルというか、バッドノウハウとしては、"D " をついったーに送信するとなにもしないので、それで発言をキャンセルしているというあたりですかね。

urllib2 import して使ってないのとかははじめ使おうと思ったんですが、 IronPython 起因らしき文字コードエラーみたいなのがでて、ローカルで Python 2.5 あたりでは動く部分的なコードがどーしてもうごかんかったからですわ。

TwitterIrcGatewayの方の処理は重くしてもクライアントからは非同期にみえるので、無意味なほど重い処理を入れてもストレスにはなりませんね。地球にはやさしくないと思います。

YeumbeulYeumbeul2012/06/28 05:23This is cysrtal clear. Thanks for taking the time!

fbetaidpncdfbetaidpncd2012/06/29 04:08cX8JTu <a href="http://yeolqrtdurgw.com/">yeolqrtdurgw</a>

dpdhfnytdpdhfnyt2012/06/29 15:13OORKGr , [url=http://wlkhzhnuakoo.com/]wlkhzhnuakoo[/url], [link=http://eywvprczroep.com/]eywvprczroep[/link], http://bsmqxxrzwete.com/

zxcxunnkgnzxcxunnkgn2012/07/01 00:54TctFOR <a href="http://eeplyjnvqalo.com/">eeplyjnvqalo</a>