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.



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

#connObject

Returns the value of attribute conn.



11
12
13
# File 'lib/amazon2irc.rb', line 11

def conn
  @conn
end

Instance Method Details

#connectObject



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_arrayObject



27
28
29
30
31
32
33
34
# 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) ⇒ 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_arrayObject



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

#pullDealsObject



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

#scanningObject



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

#spideringObject



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

#waitObject



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_arrayObject



40
41
42
# File 'lib/amazon2irc.rb', line 40

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