Hatena::Grouprubyist

たばさの RSSフィード

06/22(月) 2009

mixi足あとチェック

| mixi足あとチェック - たばさの を含むブックマーク はてなブックマーク - mixi足あとチェック - たばさの

mixi_ashiato.rb

#!ruby
# cf. http://yoosee.net/d/archives/2005/09/02/002.html
require 'mechanize'
#require 'logger'
require 'kconv'
require 'optparse'

username = id
password = pass
baseurl='http://mixi.jp'


def notify
  # sound, player
  wave = "c:/windows/media/notify.wav"
  player = "mplayer.exe"
  `#{player} #{wave}`
end

def loglist view
  f=view.search('div[@class="logListCenter"]')
  li= (f.inner_text.split("\n")-["","\n"]).map{|i| i.tosjis.chomp.sub(/\d:\d\d/){"#{$&} "} }
  li.reverse
end

opt = OptionParser.new
opt.on('-t val') {|v| $timer=v.to_i }
opt.parse!(ARGV)
# 最短のチェック間隔
min=60*5
interval= ($timer ? [$timer,min].max : -1)
$stderr.puts "interval: #{interval} sec."

agent = WWW::Mechanize.new 
page = agent.get("#{baseurl}/home.pl")
form = page.forms[0]
form.fields.find {|f| f.name == 'email'}.value = username
form.fields.find {|f| f.name == 'password'}.value = password
form.fields.find {|f| f.name == 'next_url'}.value = '/home.pl'
page = agent.submit(form, form.buttons.first)

#if /url=([^"])"/ =~ page.body
#  link = 'http://mixi.jp' + $1.to_s
#  agent.get(link)
#end

last=[]
url="#{baseurl}/show_log.pl"
while true
  begin
    $res=agent.get(url)
  rescue  Exception => e
    $stderr.puts e
  end
  list=loglist $res
  print"\r"
  sa=list-last
  if sa !=[]
    notify
    puts sa.join("\n").tosjis
  end
  print"#{Time.now}   "
  last=list
  exit if interval<0
  sleep interval
end

5分ごとにチェック

> mixi_ashiato.rb -t 300
トラックバック - http://rubyist.g.hatena.ne.jp/hatecha/20090622
カレンダー
<< 2009/06 >>
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
archive Error : RSSが取得できませんでした。