class Amazon2irc::Process
Attributes
conn[RW]
Public Class Methods
new(opts)
click to toggle source
# 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
Public Instance Methods
connect()
click to toggle source
# 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()
click to toggle source
# File lib/amazon2irc.rb, line 27 def init_persistent_array unless File.exist? File.expand_path "store.yml" open('store.yml', 'w') {|f| YAML.dump(@items, f)} else @items = load_persistent_array end end
irc_logger(item)
click to toggle source
# File lib/amazon2irc.rb, line 107 def irc_logger item @conn.puts "PRIVMSG #{@opts['channel']} :#{item.title} - #{item.link}&tag=jaycorpinc-20&camp=1789&linkCode=xm2" end
irc_logger2(item)
click to toggle source
# File lib/amazon2irc.rb, line 111 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=&tag=jaycorpinc-20&camp=1789&linkCode=xm2" end
kw_match(item)
click to toggle source
# File lib/amazon2irc.rb, line 97 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()
click to toggle source
# File lib/amazon2irc.rb, line 36 def load_persistent_array @items = open('store.yml') {|f| YAML.load(f) } end
parse(items)
click to toggle source
# File lib/amazon2irc.rb, line 89 def parse items items.each do |item| unless @items.include? "#{item.title}" kw_match(item) end end end
pullDeals()
click to toggle source
# File lib/amazon2irc.rb, line 84 def pullDeals rss = RSS::Parser.parse('https://rssfeeds.s3.amazonaws.com/goldbox', false) rss.items end
scanning()
click to toggle source
# File lib/amazon2irc.rb, line 62 def scanning parse(pullDeals) @conn.puts "PRIVMSG #{@opts['channel']} :Bot Scanned: #{@opts['keywords'].flatten}" end
spidering()
click to toggle source
# File lib/amazon2irc.rb, line 68 def spidering @opts['keywords'].each do |item| @conn.puts "PRIVMSG #{@opts['channel']} :Bot Spidering: #{item}" AmazonMechanize.scan(item).each do |res| unless @items.include? res irc_logger2(res) @items.push("#{res}") sleep @opts['chat-delay'] end end @conn.puts "PRIVMSG #{@opts['channel']} :Bot Spidered: #{item}" end end
wait()
click to toggle source
# File lib/amazon2irc.rb, line 54 def wait (1..10).each do |i| msg = @conn.gets puts msg end end
write_persistent_array()
click to toggle source
# File lib/amazon2irc.rb, line 40 def write_persistent_array open('store.yml', 'w') {|f| YAML.dump(@items, f)} end