Twitter -> mixi をPRaggerで。

gem install mechanize
gem install twitter4r

twitter4rのString#to_http_str に問題があるので修正。

lib/ruby/gems/1.8/gems/twitter4r-0.2.4/lib/twitter/ext/stdlib.rb

  def to_http_str
    result = ''
    return result if self.empty?
    self.each do |key, val|
      val = URI.encode(val.httpdate, /[^a-zA-Z0-9 ]/).gsub(/ /, '+') if val.kind_of?(Time)
      result << "#{key}=#{URI.encode(val.to_s)}&"
    end
    result.chop # remove the last '&' character, since it can be discarded
  end

twitter.rb をplugin/Feed/twitter.rb へ置く

require 'rubygems'
gem 'twitter4r', '>0.2.0'
require 'twitter'
require 'kconv'

def twitter(config, data)
	output_str = ""
	since = Time.now
	since = eval(config['since']) if config['since']
	twitter = Twitter::Client.new(:login => config['username'], :password => config['password'])
	public_timeline = twitter.timeline_for(:me, :since => since) do |status|
		output_str << "#{status.created_at.strftime('%X')} #{status.text}\n"
	end
	return [output_str]
end

config.xml を書く

- module: Feed::twitter
  config: 
    username: your twitter username
    password: your twitter password
- module: Publish::mixi_diary_writer
  config:
    username: your mixi username
    password: your mixi password
    title: "今日のTwitterった"
    merge_feeds: 1