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