class Feedig::Session
Public Class Methods
new(*args)
click to toggle source
Calls superclass method
# File lib/feedig/session.rb, line 16 def initialize(*args) super end
Public Instance Methods
channels()
click to toggle source
# File lib/feedig/session.rb, line 12 def channels ['#notification'] end
client()
click to toggle source
# File lib/feedig/session.rb, line 20 def client @client ||= YAML.load_file('./lib/feedig/resources.yml').inject({}) { |hash, (name, url)| hash[name] = Feedzirra::Feed.fetch_and_parse url hash } end
on_disconnected()
click to toggle source
# File lib/feedig/session.rb, line 27 def on_disconnected @retrieve_thread.kill rescue nil end
on_user(m)
click to toggle source
Calls superclass method
# File lib/feedig/session.rb, line 31 def on_user(m) super channels.each { |channel| post @nick, JOIN, channel } client.each_pair do |name, feed| post( "RECENT", PRIVMSG, "#notification", "\0035#{name}:\017 \00314#{feed.entries[0].title} [ #{feed.entries[0].url} ] #{feed.entries[0].last_modified}\017" ) end @retrieve_thread = Thread.start do loop do retrieve @opts.interval end end end
server_version()
click to toggle source
# File lib/feedig/session.rb, line 8 def server_version Feedig::VERSION end
Private Instance Methods
retrieve(interval)
click to toggle source
# File lib/feedig/session.rb, line 54 def retrieve(interval) @log.info 'retrieveing feed...' client.each_pair do |name, feed| feed = Feedzirra::Feed.update feed if feed.has_new_entries? feed.new_entries.each do |new_entry| post( "NEW", PRIVMSG, "#notification", "\0035#{name}:\017 \00314#{new_entry.title} [ #{new_entry.url} ] #{new_entry.last_modified}\017" ) end feed.new_entries = [] end end @log.info 'sleep' sleep interval rescue Exception => e @log.error e.inspect e.backtrace.each do |l| @log.error "\t#{l}" end sleep 10 end