Hatena::Grouprubyist

yuisekiのいまさらruby厨日記

 | 

2008-12-22

SkypeAPIでMitterの最近見た動画をオープンチャットへ報告する

| 17:31 | はてなブックマーク - SkypeAPIでMitterの最近見た動画をオープンチャットへ報告する - yuisekiのいまさらruby厨日記

require 'rubygems'
gem 'mechanize', '= 0.7.8'
require 'mechanize'
require 'cgi'
require 'kconv'
require 'time'
require 'skypeapi'
SkypeAPI.init
SkypeAPI.attachWait
id = "#どっかのskypeチャットID"

  agent = WWW::Mechanize.new
  agent.max_history = 1
  page = agent.get('http://mitter.jp/yuiseki')
  page.body = page.body.toutf8
  videos=[]
  page.search('div.log-details').each do |log|
    title = log.search('h3.title').search('a').first.inner_text
    url = log.search('span.service').search('a').first.get_attribute(:href)
    time_row = log.search('span.watched-at').first.get_attribute(:title)
    time = Time.parse(time_row)+(60*60*9) # GMT+9
    videos.push({:title => title, :url => url, :time => time})
  end
  now = Time.now
  videos.each do |video|
    how_ago = (now - video[:time])
    if how_ago < 60*5 # 5分以内に新たに追加されたログだったら投稿
      string = "また動画Mitter: " + video[:title] + " " + video[:url]
      SkypeAPI::ChatMessage.create(id, string)
    end
  end

RSSのほうが楽なのかもしれないがそんなに行数変わらないかもしれない。

MechanizeTime.parseも、すげー適当に書いてもうごくのでいいなあ。

トラックバック - http://rubyist.g.hatena.ne.jp/yuiseki/20081222
 |