RSS Twitter Bot
Join the DZone community and get the full member experience.
Join For FreeRepublish an RSS feed on a twitter account. This was the source I used to run the Woot Twitter Bot before they took it over.
require 'rubygems'
require 'active_record'
require 'simple-rss'
require 'open-uri'
require 'twitter'
#twitter account to post to
twitter_email = "yourtwitteremail@bla.com"
twitter_password = "secret"
#rss feed to post
rss_url = "http://yoursite.com/index.xml"
rss_user_agent = "http://twitter.com/yourbot"
#sqlite db
path_to_sqlite_db = "/PATH/TO/db.sqlite"
ActiveRecord::Base.logger = Logger.new(STDERR)
ActiveRecord::Base.colorize_logging = false
ActiveRecord::Base.establish_connection(
:adapter => "sqlite3",
:dbfile => path_to_sqlite_db
)
#uncomment this section the first time to create the table
#
#ActiveRecord::Schema.define do
# create_table :item do |table|
# table.column :title, :string
# table.column :link, :string
# end
#end
class Item < ActiveRecord::Base
def to_s
"#{self.title[0..(130-self.link.length)]} - #{self.link}"
end
end
#run the beast
rss_items = SimpleRSS.parse open(rss_url ,"User-Agent" => rss_user_agent)
for item in rss_items.items
Item.transaction do
unless existing_item = Item.find(:all, :conditions => ["link=?", item.link]).first
twitter ||= Twitter::Base.new(twitter_email, twitter_password)
new_item = Item.create(:title => item.title, :link => item.link)
twitter.post(new_item.to_s)
end
end
end
Run this once with the lines uncommented to create the DB, then slap it in your crontab.
Twitter bot
twitter
Opinions expressed by DZone contributors are their own.
Comments