2009/10/24

第13回北海道開発オフ成果:だべさのTumblrを作った

第13回北海道開発オフにて。

@dabesaをTumblrデビューさせることにしました。

だべさ - Tumblr

そして、ふぁぼったー人気タブから、その日最もFavされたポストを抜き出して、ポストさせることにしました。1日1回、日付変更の直前に動きます。

初めてTumblr APIを触ったのですが、ポストさせること自体はそんなに難しく無いですね。
ソースは以下。



#! /usr/bin/ruby

require 'rss/2.0'
require 'open-uri'
require 'net/http'
require 'cgi'

begin
  open('http://favotter.matope.com/rss.php?mode=best') do |http|
    response = http.read

    result = RSS::Parser.parse(response, false)

    post = result.items[0].description
    # pの前のスペースは本当は不要
    post.gsub!(/< p align=\"right\" class=\"favotters\">.+?fav by/,'')
    post.gsub!(/<.+?>/,'')
    post.sub!(/\s/,' ')
    link = result.items[0].link

    mess = "@" + post + "\r\n" + link
    pmess = CGI.escape(mess)
    opt =  "email=メールアドレス&password=パスワード&type=regular&body=" + pmess

    Net::HTTP.version_1_2
    Net::HTTP.start("www.tumblr.com", 80) do |http|
      responce = http.post("/api/write", opt)
    end
  end


rescue
  print "RuntimeError: ", $!, "\n";
end