amazon2irc 7.10.2017.1853 → 7.11.2017.056

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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