Sha256: 443512f7264f5e1caebeb10f4299cf56924c9b0c2837399fecf6456d6dbd7adc

Contents?: true

Size: 1.07 KB

Versions: 2

Compression:

Stored size: 1.07 KB

Contents

require "em-http-request"
require "rss/1.0"
require "rss/2.0"

module Muzang
  module Plugins
    class Reddit
      include Muzang::Plugins::Helpers
      attr_accessor :last_update

      def initialize(bot)
        @bot = bot
        create_database("last_update.yml", Time.now, :last_update)
      end

      def call(connection, message)
        on_join(connection, message) do
          EventMachine::add_periodic_timer(period) do
            http = EventMachine::HttpRequest.new('http://www.reddit.com/r/ruby/.rss').get

            http.callback {
              rss = RSS::Parser.parse(http.response, false)
              rss.items.each do |item|
                connection.msg(message.channel, "#{item.title} | #{item.link}") if item.date > @last_update
              end
              save(rss)
            }
          end
        end
      end

      def save(rss)
        @last_update = rss.items.max_by{|i|i.date}.date
        file = File.open(@config + "/last_update.yml", "w"){|f| f.write YAML::dump(@last_update)}
      end

      def period
        30
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
muzang-plugins-1.1.6 lib/muzang-plugins/muzang-reddit.rb
muzang-plugins-1.1.5 lib/muzang-plugins/muzang-reddit.rb