amazon2irc 7.10.2017.1853 → 7.11.2017.056

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 41b2335197035a29b88bf96d7ca0e4399cc79348
4
- data.tar.gz: 03c08ce3054f3c48b914ee32149d72e7245727fe
3
+ metadata.gz: 5989179a00b4f3bddb361dcef8b9d39e828dc675
4
+ data.tar.gz: 6a5a949d2b6f44eebef88aa7e91f5ceeab03e338
5
5
  SHA512:
6
- metadata.gz: 1ccbf253f7e88447ebb3a3cc94818ce2ea0b5a3dc1905bbb6f0b082cc8115f4d5147fea7968ba805910c07acbfbee6ab5d91d5d9ee74eb9e0e32cdc53d72003c
7
- data.tar.gz: 0b6915cc2ca64793c63190c13c499458839615cf441528682dd5459978130b5e3ed4552ca432900d166af1d3dd9a11f3d114d39cadb7e98adcca929d26bb985a
6
+ metadata.gz: 9e0ad42c2fdbde497391e8802616318ab99744d361304fce9e267d32402f1856e6302ab1609a0aee83031822cde85fe4749f484992bb8e178890d35c714f49f0
7
+ data.tar.gz: 79c29155aa4fad50836c95f463df757eb5bc1eacff191c9189550df6865fbe3820f5bb02777f46d0c834ad6b9d3d91b4a3bb86a66c43496f8f4eaf183da8f32c
@@ -1,3 +1,3 @@
1
1
  module Amazon2irc
2
- VERSION = "7.10.2017.1853"
2
+ VERSION = "7.11.2017.056"
3
3
  end
data/lib/amazon2irc.rb CHANGED
@@ -15,6 +15,7 @@ module Amazon2irc
15
15
  wait
16
16
  loop do
17
17
  scanning
18
+ spidering
18
19
  write_persistent_array
19
20
  sleep @opts['scan-delay']
20
21
  end
@@ -61,6 +62,19 @@ module Amazon2irc
61
62
  @conn.puts "PRIVMSG #{@opts['channel']} :Bot Scanned: #{@opts['keywords'].flatten}"
62
63
  end
63
64
 
65
+
66
+ def spidering
67
+ @opts['keywords'].each do |item|
68
+ AmazonMechanize.scan(item).each do |res|
69
+ unless @items.include? res
70
+ irc_logger2(res)
71
+ @items.push("#{res}")
72
+ sleep @opts['chat-delay']
73
+ end
74
+ end
75
+ end
76
+ end
77
+
64
78
  def pullDeals
65
79
  rss = RSS::Parser.parse('https://rssfeeds.s3.amazonaws.com/goldbox', false)
66
80
  rss.items
@@ -87,5 +101,52 @@ module Amazon2irc
87
101
  def irc_logger item
88
102
  @conn.puts "PRIVMSG #{@opts['channel']} :#{item.title} - #{item.link}"
89
103
  end
104
+
105
+ def irc_logger2 item
106
+ @conn.puts "PRIVMSG #{@opts['channel']} :#{item}"
107
+ end
90
108
  end
109
+
110
+
111
+
112
+
113
+
114
+ class AmazonMechanize
115
+ def self.scan keyword
116
+ begin
117
+ agent = Mechanize.new
118
+ agent.max_history = nil # unlimited history
119
+ html = agent.get("https://www.amazon.com/s/ref=nb_sb_noss?url=search-alias%3Dprime-day&field-keywords=#{keyword}")
120
+ items = []
121
+ loop do
122
+ doc = Nokogiri::HTML::Document.parse(html.body)
123
+
124
+ doc.xpath('//*[@class="s-item-container"]').each do |item|
125
+ last_title=''
126
+ offer_link=''
127
+ item.css('a').each do |a|
128
+ last_title=a['title'] unless a['title'].to_s.length == 0
129
+ offer_link = a['href'] unless (a.to_s.length == 0 || (a['href'].include?("offer")) || (a['href'].include?("Reviews")) || (a['href'].include?("void(0)")) || (a['href'].include?("Promotions")) )
130
+ end
131
+ items.push("#{last_title} : #{offer_link}")
132
+ end
133
+
134
+ next_page=false
135
+ html.links.each do |l|
136
+ next_page=true if l.text.include? 'Next Page'
137
+ sleep 3 if l.text.include? 'Next Page'
138
+ html = l.click if ((l.text.include? 'Next Page') && (l.href.to_s.length > 10))
139
+ next if l.text.include? 'Next Page'
140
+ end
141
+ return items if next_page == false
142
+ end
143
+ rescue => error
144
+ sleep 10
145
+ puts "Error! #{error}"
146
+ retry
147
+ end
148
+ end
149
+ end
150
+
151
+
91
152
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: amazon2irc
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.10.2017.1853
4
+ version: 7.11.2017.056
5
5
  platform: ruby
6
6
  authors:
7
7
  - jlee
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-07-10 00:00:00.000000000 Z
11
+ date: 2017-07-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler