もうタイトルは無視して頂いてかまいません。
さて、先日から
C++版、
IronPython版、
CPython版とmixi APIを使ったコードを書いてきましたが、今日は実際にアプケーションを作ってみたいと思います。ただ
先日も書いた通り、現状のmixi APIは足跡くらいしかWebAPIとして使える物がなく、POST(PUSH)やDELETEなどの更新系メソッドも無い為、純粋に、ただ純粋に、足跡をXMLデータとして参照するくらいしか出来ない状況にあります。
さっさと他のAPI出してくれなきゃブログネタが持たないよ...
唯一できそうなものとして、足跡監視ツールくらいですか...
先日作ったCPython用の
MixiAPI.pyを使って足跡をポーリングし、新しい足跡があったらお知らせするってシステムを作ってみましょう。
作り方は簡単。get_footstamps()でfootstampディクショナリのリストを受け取り、前回値と比較します。日付ソートした状態でIDが異り始めれば、最初のレコードから違ったレコードまでが新規足跡になる訳です。
以下のソースでは、相異点毎にコンソール出力しています。コンソール出力部分の直下に、「firefox-remote」等を引数「link」で起動するよう修正すれば、「
自動足跡踏み返し機」が出来上がる訳です。これを使えば貴方のたるんだ腹筋もどんどん引き締まっていきます。
はぁ...こんなものしか作れないAPIって...
もう...寝ます...
#しかしこのAPIサーバ、よく失敗を返しますね...
MixiAPI.pyにHTTPステータス判定を追加しました。
以下のソースと合わせ、下のダウンロードリンクからダウンロード願います。
import sys
import time
import MixiAPI
if len(sys.argv) < 3:
sys.exit()
service = MixiAPI.Service(sys.argv[1], sys.argv[2])
oldstamps = []
while 1:
try:
footstamps = service.get_footstamps()
if len(oldstamps) > 0:
footstamps.sort(lambda x, y: cmp(y['updated'], x['updated']))
n = len(footstamps)
for i in range(n):
if footstamps[i]['id'] == oldstamps[0]['id']:
break
i -= 1
while i >= 0:
print footstamps[i]['title']
i -= 1
oldstamps = footstamps
except:
pass
time.sleep(3)
ダウンロード:
MixiAPI.py,
MixiWatch.py