bot source
#!/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
関連記事: