Class: Amazon2irc::Process
- Inherits:
-
Object
- Object
- Amazon2irc::Process
- Defined in:
- lib/amazon2irc.rb
Instance Attribute Summary collapse
-
#conn ⇒ Object
Returns the value of attribute conn.
Instance Method Summary collapse
- #connect ⇒ Object
- #init_persistent_array ⇒ Object
-
#initialize(opts) ⇒ Process
constructor
A new instance of Process.
- #irc_logger(item) ⇒ Object
- #kw_match(item) ⇒ Object
- #load_persistent_array ⇒ Object
- #parse(items) ⇒ Object
- #pullDeals ⇒ Object
- #scanning ⇒ Object
- #wait ⇒ Object
- #write_persistent_array ⇒ Object
Constructor Details
#initialize(opts) ⇒ Process
Returns a new instance of Process.
10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/amazon2irc.rb', line 10 def initialize opts @opts = opts @items = [] init_persistent_array connect wait loop do scanning write_persistent_array sleep @opts['scan-delay'] end end |
Instance Attribute Details
#conn ⇒ Object
Returns the value of attribute conn.
9 10 11 |
# File 'lib/amazon2irc.rb', line 9 def conn @conn end |
Instance Method Details
#connect ⇒ Object
39 40 41 42 43 44 45 46 47 |
# File 'lib/amazon2irc.rb', line 39 def connect @conn = TCPSocket.open(@opts['server'], @opts['port']) print("addr: ", @conn.addr.join(":"), "\n") print("peer: ", @conn.peeraddr.join(":"), "\n") @conn.puts "USER testing 0 * Testing" @conn.puts "NICK #{@opts['botnick']}" @conn.puts "JOIN #{@opts['channel']}" @conn.puts "PRIVMSG #{@opts['channel']} :Bot Scanning: #{@opts['keywords'].flatten}" end |
#init_persistent_array ⇒ Object
24 25 26 27 28 29 |
# File 'lib/amazon2irc.rb', line 24 def init_persistent_array unless File.exist? File. "store.yml" open('store.yml', 'w') {|f| YAML.dump(@items, f)} end load_persistent_array end |
#irc_logger(item) ⇒ Object
85 86 87 |
# File 'lib/amazon2irc.rb', line 85 def irc_logger item @conn.puts "PRIVMSG #{@opts['channel']} :#{item.title} - #{item.link}" end |
#kw_match(item) ⇒ Object
75 76 77 78 79 80 81 82 83 |
# File 'lib/amazon2irc.rb', line 75 def kw_match item @opts['keywords'].each do |kw| if item.title.downcase.include? kw.downcase irc_logger(item) @items.push("#{item.title}") sleep @opts['chat-delay'] end end end |
#load_persistent_array ⇒ Object
31 32 33 |
# File 'lib/amazon2irc.rb', line 31 def load_persistent_array @items = open('store.yml') {|f| YAML.load(f) } end |
#parse(items) ⇒ Object
67 68 69 70 71 72 73 |
# File 'lib/amazon2irc.rb', line 67 def parse items items.each do |item| unless @items.include? "#{item.title}" kw_match(item) end end end |
#pullDeals ⇒ Object
62 63 64 65 |
# File 'lib/amazon2irc.rb', line 62 def pullDeals rss = RSS::Parser.parse('https://rssfeeds.s3.amazonaws.com/goldbox', false) rss.items end |
#scanning ⇒ Object
57 58 59 60 |
# File 'lib/amazon2irc.rb', line 57 def scanning parse(pullDeals) @conn.puts "PRIVMSG #{@opts['channel']} :Bot Scanned: #{@opts['keywords'].flatten}" end |
#wait ⇒ Object
49 50 51 52 53 54 |
# File 'lib/amazon2irc.rb', line 49 def wait (1..10).each do |i| msg = @conn.gets puts msg end end |
#write_persistent_array ⇒ Object
35 36 37 |
# File 'lib/amazon2irc.rb', line 35 def write_persistent_array open('store.yml', 'w') {|f| YAML.dump(@items, f)} end |