Home > All > bot source

bot source

April 15th, 2010 Leave a comment Go to comments
#!/usr/bin/env ruby
require 'rubygems'
require 'rss'
require 'logger'
require 'twitter'

log = Logger.new('feed.log')
log.level = Logger::DEBUG

def shorten(long_url)
  id = 'YOUR_BITLY_ID'
  api_key = 'BITLY_API_KEY'
  version = '2.0.1'

  query = "version=#{version}&longUrl=#{long_url}&login=#{id}&apiKey=#{api_key}"
  result = JSON.parse(Net::HTTP.get("api.bit.ly", "/shorten?#{query}"))
  result['results'].each_pair {|long_url, value|
    return value['shortUrl']
  }
end

feeds = []
feeds << {
  'author' => 'yusukezzz',
  'url' => 'http://yusukezzz.net/blog/feed'}

$KCODE = 'u'
latest = 0
httpauth = Twitter::HTTPAuth.new('twitter_account', 'password')
client = Twitter::Base.new(httpauth)
begin
  File.open('latest.dat'){ |f| latest = f.gets }
rescue => e
  log.debug(e.message)
end
feeds.each do |feed|
  rss = RSS::Parser.parse(feed['url'])
  rss.channel.items.reverse.each do |i|
    if latest.to_i < i.pubDate.to_i
      post = "#{feed['author']} > #{i.title} #{shorten(i.link)}"
      begin
        client.update(post)
      rescue => e
        log.debug(e.message)
      end
      File.open('latest.dat', 'w') do |f|
        f.puts i.pubDate.to_i.to_s
        log.debug('update latest date')
      end
    end
  end
end

関連記事:

Tags: ,
  1. No comments yet.
  1. No trackbacks yet.