Ruby で mixi ボイスをいじってみました.
api がないので,Mechanize で適当に切り出し.
#!/usr/bin/ruby
# -*- coding: utf-8 -*-
require "rubygems"
require "mechanize"
require "nokogiri"
class MixiVoice
def initialize(id, pass)
@id = id
@pass = pass
@agent = WWW::Mechanize.new
end
def set_proxy(host, port)
@agent.set_proxy(host, port)
end
def login
page = @agent.get("http://mixi.jp/")
form = page.forms.first
form["email"] = @id
form["password"] = @pass
form.submit
end
def get_timeline
a = []
page = @agent.get('http://mixi.jp/recent_echo.pl')
doc = Nokogiri::HTML(page.body)
items = doc.xpath("id('echo')/div[2]/div[3]/table/tr")
items.each do |i|
id = i.xpath("td[3]/div[1]/text()")
time = i.xpath("td[3]/div[2]/text()")
nick = i.xpath("td[3]/div[3]/text()")
comment = i.xpath("td[3]/div[4]/text()")
a << [id, time, nick, comment]
end
return a
end
def voice(str)
page = @agent.get('http://mixi.jp/recent_echo.pl')
form = page.forms[1]
form["body"] = str
form.click_button
end
end
ID = "fuga"
PASS = "hoge"
mv = MixiVoice.new(ID, PASS)
mv.set_proxy("192.168.0.1", "3128")
mv.login
puts mv.get_timeline
mv.voice("テスト")
タイムラインをどう使うか決めていないので,
とりあえず,配列で返しています.
ユーザ毎のタイムラインは
http://mixi.jp/list_echo.pl?id=#{id}
発言は
http://mixi.jp/view_echo.pl?id=#{id}&post_time=#{time}
あと,thumbnail も取れるようにするか.
参考
- twitterからmixiボイスにマルチポストするRubyスクリプト書いた - 5.1さらうどん
http://d.hatena.ne.jp/gigi-net/20090918/1253224665
Referrer (Inside):
[2009-12-10-2] Amebaなうを Ruby でいじってみた
comments powered by Disqus
[2009-12-10-2] Amebaなうを Ruby でいじってみた