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