Class: Amazon2irc::Process

Inherits:
Object
  • Object
show all
Defined in:
lib/amazon2irc.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

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

#connObject

Returns the value of attribute conn.



9
10
11
# File 'lib/amazon2irc.rb', line 9

def conn
  @conn
end

Instance Method Details

#connectObject



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_arrayObject



24
25
26
27
28
29
# File 'lib/amazon2irc.rb', line 24

def init_persistent_array
  unless File.exist? File.expand_path "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_arrayObject



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

#pullDealsObject



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

#scanningObject



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

#waitObject



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_arrayObject



35
36
37
# File 'lib/amazon2irc.rb', line 35

def write_persistent_array
  open('store.yml', 'w') {|f| YAML.dump(@items, f)}
end