い〜さねっと

雑多メモ

天気予報BOT作ってみた

なんとなく,Twitterで天気予報を発してくれたらいいな〜と思ったので,
勉強がてら勢いだけで取り組んでみた
軽く検索してみたところ,東京のものは既にあるみたいなのでリスペクトしてみる
Tokyo Forecast (tokyoforecast) | Twitter


なんとなくRubyでしてみようと思ったので,
RubyRSSを取得するやTwitterにPOSTする方法とか調べてみた
RSSを扱う方法はこちらを参考に
http://doc.loveruby.net/refm/api/view/library/rss
Twitter関連はTwitter4Rを使うのがよさそうということで,色々参考に
http://twitter4r.rubyforge.org/
http://ontherails.jp/2007/7/18/9


まず,FreeBSDでTwitter4Rをインストール

$ cd /usr/ports/net/rubygem-twitter4r
$ sudo make install clean

これでTwitter4Rが使えるようになる


そして実際に作ってみたしょぼいプログラムがこれ

require 'rss/2.0'
require 'open-uri'
require 'rubygems'
gem('twitter4r', '0.3.0')
require 'twitter'
require 'pp'

rss = nil
url = rss_url # rssのURLを入力 今回はlivedoor天気を利用
begin
    rss = RSS::Parser.parse(url)
rescue RSS::InvalidRSSError
    rss = RSS::Parser.parse(url, false)
end

desc = rss.channel.item(1).description
link = rss.channel.item(1).link

msg = desc + " " + link

client = Twitter::Client.new(:login => username, :password => password)
p client.authenticate?(username, password)
p status = client.status(:post, msg)


RSS操作って全然操作したことなかったけど,結構簡単にできるもんやねんな〜
ライブラリ偉大やね!
後はcronにでも仕込んでおけばOK!


作ってて少しはまったのは,
TwitterAPIが同じPOSTをはじいているらしく,
そのことがわかるまでPOSTできてないな〜と思ってたこと
要注意だ…