はてなブックマークエントリのTwitter自動投稿
今までのあらすじ:
次は、これらを組み合わせて、はてなブックマークの新着エントリをTwitterに自動投稿することを試してみます。
(要はtwitterfeedと同じような機能を再現したい)
現時点では、最新のエントリを投稿するところまでできました。投稿済みのエントリを覚えておいて、未投稿のエントリを投稿する処理ができれば一応の完成です。
test1.rb:
require 'rubygems' require 'jcode' require 'rss' require 'twitter' HEADER = '[bookmark]' # 投稿内容の先頭につける固定文字列 BODY_LENGTH = 115 # 本文を切り詰める文字数 class String # 文字列を指定した文字数に切り詰める def truncate(length) return self if self.jlength <= length i = 0 new_string = '' self.each_char {|char| break if i >= length new_string << char i += 1 } return new_string end end rss = RSS::Parser.parse('rss.xml') item = rss.items[0] tag_string = item.dc_subjects.map{|subject| "[#{subject.content}]"}.join comment = (item.description == '' ? '' : ": #{item.description}") message = "#{HEADER}#{tag_string} #{item.title}#{comment}".truncate(BODY_LENGTH) + " #{item.link}" client = Twitter::Client.new(:login => <ユーザ名>, :password => <パスワード>) client.status(:post, message)
備忘録として、いくつかポイントを列挙します。