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
- #irc_logger2(item) ⇒ Object
- #kw_match(item) ⇒ Object
- #load_persistent_array ⇒ Object
- #parse(items) ⇒ Object
- #pullDeals ⇒ Object
- #scanning ⇒ Object
- #spidering ⇒ Object
- #wait ⇒ Object
- #write_persistent_array ⇒ Object
Constructor Details
#initialize(opts) ⇒ Process
Returns a new instance of Process.
12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/amazon2irc.rb', line 12 def initialize opts @opts = opts @items = [] init_persistent_array connect wait loop do scanning if opts['rss'] spidering if opts['spidering'] write_persistent_array sleep @opts['scan-delay'] end end |
Instance Attribute Details
#conn ⇒ Object
Returns the value of attribute conn.
11 12 13 |
# File 'lib/amazon2irc.rb', line 11 def conn @conn end |
Instance Method Details
#connect ⇒ Object
44 45 46 47 48 49 50 51 52 |
# File 'lib/amazon2irc.rb', line 44 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
27 28 29 30 31 32 33 34 |
# File 'lib/amazon2irc.rb', line 27 def init_persistent_array unless File.exist? File. "store.yml" open('store.yml', 'w') {|f| YAML.dump(@items, f)} else @items = load_persistent_array end end |
#irc_logger(item) ⇒ Object
103 104 105 |
# File 'lib/amazon2irc.rb', line 103 def irc_logger item @conn.puts "PRIVMSG #{@opts['channel']} :#{item.title} - #{item.link}" end |
#irc_logger2(item) ⇒ Object
107 108 109 |
# File 'lib/amazon2irc.rb', line 107 def irc_logger2 item @conn.puts "PRIVMSG #{@opts['channel']} :#{item}/ref=sr_1_2?s=prime-day&psr=PDAY&ie=UTF8&qid=1499752396&sr=1-2&keywords=" end |
#kw_match(item) ⇒ Object
93 94 95 96 97 98 99 100 101 |
# File 'lib/amazon2irc.rb', line 93 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
36 37 38 |
# File 'lib/amazon2irc.rb', line 36 def load_persistent_array @items = open('store.yml') {|f| YAML.load(f) } end |
#parse(items) ⇒ Object
85 86 87 88 89 90 91 |
# File 'lib/amazon2irc.rb', line 85 def parse items items.each do |item| unless @items.include? "#{item.title}" kw_match(item) end end end |
#pullDeals ⇒ Object
80 81 82 83 |
# File 'lib/amazon2irc.rb', line 80 def pullDeals rss = RSS::Parser.parse('https://rssfeeds.s3.amazonaws.com/goldbox', false) rss.items end |
#scanning ⇒ Object
62 63 64 65 |
# File 'lib/amazon2irc.rb', line 62 def scanning parse(pullDeals) @conn.puts "PRIVMSG #{@opts['channel']} :Bot Scanned: #{@opts['keywords'].flatten}" end |
#spidering ⇒ Object
68 69 70 71 72 73 74 75 76 77 78 |
# File 'lib/amazon2irc.rb', line 68 def spidering @opts['keywords'].each do |item| AmazonMechanize.scan(item).each do |res| unless @items.include? res irc_logger2(res) @items.push("#{res}") sleep @opts['chat-delay'] end end end end |
#wait ⇒ Object
54 55 56 57 58 59 |
# File 'lib/amazon2irc.rb', line 54 def wait (1..10).each do |i| msg = @conn.gets puts msg end end |
#write_persistent_array ⇒ Object
40 41 42 |
# File 'lib/amazon2irc.rb', line 40 def write_persistent_array open('store.yml', 'w') {|f| YAML.dump(@items, f)} end |