Twitterの自動follow返しをRubyで
Twitter でイチイチ follow するのが面倒くさい んだけど自前でメールサーバも立ててない - Djangoへの片思い日記 関連.
Rubyだとこんな感じかな? 以下,付属ライブラリのみ使用.
自前のIMAP4サーバに対してしかテストしてないけど,たぶんGmailでも動くんじゃないかと思う.
#!/usr/local/bin/ruby require 'net/imap' require 'open-uri' # IMAP4 configuration: SERVER = 'imap.gmail.com' USER = 'exampleuser@gmail.com' PASSWD = 'gmail_password_here' class Twitter USER = 'twitter_username_here' PASSWD = 'twitter_password_here' TwitterURI = 'http://twitter.com/friendships/create/%s.json' def self.add(id) open(TwitterURI % [id], :http_basic_authentication => [USER, PASSWD]).read end end imap = Net::IMAP.new(SERVER, 993, true) imap.login(USER, PASSWD) imap.select('INBOX') imap.search(['FROM', 'noreply@twitter.com', 'SUBJECT', 'is now following you on Twitter!', 'UNSEEN']). each do |num| data = imap.fetch(num, 'BODY[TEXT]') body = data[0].attr['BODY[TEXT]'] Twitter.add(id = body.match(%r|http://twitter\.com/(\w+)|).to_a[1]) imap.store(num, '+FLAGS.SILENT', [:Seen]) puts "add #{id}" end imap.close