class Botolo::API::Blog
Public Class Methods
new(options={})
click to toggle source
# File lib/botolo/api/blog.rb, line 7 def initialize(options={}) @url = options[:url] @tweet = options[:tweet_api] end
Public Instance Methods
promote_latest(hashtags="")
click to toggle source
# File lib/botolo/api/blog.rb, line 43 def promote_latest(hashtags="") return nil if @feed.nil? || @feed.size == 0 post = @feed[0] m = "\"#{post[:title]}\" (#{post[:link]}) #blog #sicurezza #informatica." $logger.debug "#{m} - #{m.length}" begin @tweet.tweet(m) rescue => e $logger.err("error tweeting #{m}: #{e.message}") end end
refresh_rss()
click to toggle source
# File lib/botolo/api/blog.rb, line 12 def refresh_rss rss = nil open("#{@url}/feed.xml") do |http| response = http.read rss = RSS::Parser.parse(response, false) end @feed = [] rss.items.each_with_index do |item, i| @feed << {:title=>item.title.content, :link=>item.link.href} end $logger.info "#{@feed.size} elements loaded from feed" end
tweet_random_posts(limit = 3, hashtags="")
click to toggle source
# File lib/botolo/api/blog.rb, line 26 def tweet_random_posts(limit = 3, hashtags="") return nil if @feed.nil? || @feed.size == 0 (0..limit-1).each do |l| post = @feed[SecureRandom.random_number(@feed.size)] m = "\"#{post[:title]}\" (#{post[:link]}) #{hashtags}" $logger.debug "#{m} - #{m.length}" begin @tweet.tweet(m) $logger.debug "tweet sent!" rescue => e $logger.err("error tweeting #{m}: #{e.message}") end sleep(10) end end