goodwill 0.1.0 → 0.1.2
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 +13 -5
- data/.gitignore +1 -0
- data/.travis.yml +6 -1
- data/README.md +3 -1
- data/goodwill.gemspec +3 -0
- data/lib/goodwill/account.rb +6 -4
- data/lib/goodwill/cli.rb +1 -1
- data/lib/goodwill/version.rb +1 -1
- metadata +66 -24
checksums.yaml
CHANGED
@@ -1,7 +1,15 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
YTNiODhhNTFjMWNkNDQyMDk2NTU2MzE3YzExNmZiMzE4ZDg2MTRkMg==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
ODdiNjA0MDVjYTRmMDhkOWU4MTE5NGUyZmYzM2NmMzc3YWMyNTYxMw==
|
5
7
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
ZGUzNGYzNWNhZGRhNjY2NzJhYzgyNzljZjEzZGFmZmM4YTE0NWZmNjQzZTdh
|
10
|
+
MTNmOWY3MzNlYjYxZDlkZjgwNTk5MDg1MWJlODI1ODI0OGIzZDFlZjZiMDgz
|
11
|
+
ZjJhODEwMjc4Yjk1MGYxNmZjMDcxODM5NDE4NTEwN2NlZTg3MWI=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
N2JkYjNiNzMwOTY0YTNiZDA4ZjA5NDU2NjYxMzRkZTAwNDljZTBmODRiZmZk
|
14
|
+
Y2RhY2U2YzlkZDYyYmVlYmEwNWQ4OTI4NmU0MmYxMmIyNDRlODM1NTI3YTdl
|
15
|
+
Njg0Zjc0NmE2NTY1YmRkNWNhMDU5NTk5ZjAwMTVlZTZiNTc1MmI=
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
@@ -1,4 +1,9 @@
|
|
1
1
|
language: ruby
|
2
2
|
rvm:
|
3
|
-
|
3
|
+
- 2.2.0
|
4
4
|
before_install: gem install bundler -v 1.10.3
|
5
|
+
deploy:
|
6
|
+
provider: rubygems
|
7
|
+
api_key:
|
8
|
+
secure: YORbXXGAPfr5C/RSS+ok1XAfJPKnmEouk9gEPPtx6YkSj5vs786oDZ/K8LIeWZZ3ToILsntz0VFp8OMejYitXOa/wEkuZ6dbALcXqxnj69yJNkeI+WZdnlAiMirxPa/4yOWMd9NKh5cfP+q1ZiMmoTRUjs+2MBveVhCG5fsaxeS0TmTnSw+MkSIDJu6VwqnAX6B7Cs/1/IaJiUNmxGegtMfE7bdL7bRwfijlKgNu/m9vjunbwqSg9EnYFMnus2QIwz7ILgTw40o1Da8Ma76UQtykbWD4Z2bCSwBQlwh43zSl4R1DU3j25718WOEI/ZoYUEWnLuGvhxHlRF8ZeY5EtuQw89fjjOI80GCWCUghzGIBTgtOXzyt1Zk5lLYq1Q4HuxIFq6pv6f3ByYPFQDqym5TV+rl9IvHysxap6QGmQJDVR5TYCw5s43RkP86QwEqtU9BoQshcOkor3GBcC/wJLxDI+nccTzIHWD0ypIpZh/1QypjRqJebdRJ+s8RIxwdXRNUwl8+2WIuOeXV/hXgPnd+VyjuLoJoQHe/ebZfp8o00ZQZeRrPZYGI0XC54jWPA6PsfKCcbgB8wR3NOtVOd0j0Be7Tu35Hfo+rBAyFqiEzHJUkTVbGqePqf+Moa3u+LOKI7ZDXaKKSmyj+IqS9yvzGsuGYumXmAB8Ql/ATQyYM=
|
9
|
+
gem: goodwill
|
data/README.md
CHANGED
@@ -1,5 +1,7 @@
|
|
1
|
+
[](https://badge.fury.io/rb/goodwill)
|
2
|
+
[](https://travis-ci.org/dudemcbacon/goodwill)
|
1
3
|
[](https://codeclimate.com/github/dudemcbacon/goodwill)
|
2
|
-
|
4
|
+
[](http://inch-ci.org/github/dudemcbacon/goodwill)
|
3
5
|
# Goodwill
|
4
6
|
|
5
7
|
Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/goodwill`. To experiment with that code, run `bin/console` for an interactive prompt.
|
data/goodwill.gemspec
CHANGED
@@ -31,6 +31,9 @@ Gem::Specification.new do |spec|
|
|
31
31
|
spec.add_development_dependency 'rspec', '~> 3.3'
|
32
32
|
spec.add_development_dependency 'rubocop', '~> 0.34'
|
33
33
|
spec.add_development_dependency 'pry', '~> 0.10'
|
34
|
+
spec.add_development_dependency 'travis', '~> 1.6'
|
35
|
+
spec.add_development_dependency 'gem-release', '~> 0.7'
|
36
|
+
spec.add_dependency 'parallel', '~> 1.6'
|
34
37
|
spec.add_dependency 'highline', '~> 1.7'
|
35
38
|
spec.add_dependency 'mechanize', '~> 2.7'
|
36
39
|
spec.add_dependency 'table_print', '~> 1.5'
|
data/lib/goodwill/account.rb
CHANGED
@@ -3,6 +3,7 @@ require 'goodwill/mechanize'
|
|
3
3
|
require 'goodwill/urlpaths'
|
4
4
|
|
5
5
|
require 'mechanize'
|
6
|
+
require 'parallel'
|
6
7
|
|
7
8
|
module Goodwill
|
8
9
|
class Account
|
@@ -12,18 +13,19 @@ module Goodwill
|
|
12
13
|
IN_PROG = 'https://www.shopgoodwill.com/buyers/myShop/AuctionsInProgress.asp'
|
13
14
|
PER_PAGE = 25
|
14
15
|
|
15
|
-
attr_reader :username, :password
|
16
|
+
attr_reader :username, :password, :threads
|
16
17
|
|
17
|
-
def initialize(username, password = '')
|
18
|
+
def initialize(username, password = '', threads = 10)
|
18
19
|
@username = username
|
19
20
|
@password = password
|
21
|
+
@threads = threads
|
20
22
|
Goodwill::Mechanize.username = @username
|
21
23
|
Goodwill::Mechanize.password = @password
|
22
24
|
end
|
23
25
|
|
24
26
|
def in_progress
|
25
27
|
in_progress_page = mechanize.get(IN_PROG)
|
26
|
-
in_progress_page.search('table.mySG tbody tr')
|
28
|
+
Parallel.map(in_progress_page.search('table.mySG tbody tr'), in_threads: @threads) do |row|
|
27
29
|
Goodwill::BiddingAuction.new(itemid_from_open_order_row(row), mechanize)
|
28
30
|
end
|
29
31
|
end
|
@@ -32,7 +34,7 @@ module Goodwill
|
|
32
34
|
search_page = mechanize.get(SEARCH_URL + itemTitle)
|
33
35
|
pages(total_items(search_page)).times.map do |i|
|
34
36
|
search_page = search_page.link_with(text: 'Next').click unless i == 0
|
35
|
-
search_page.search('table.productresults tbody > tr')
|
37
|
+
Parallel.map(search_page.search('table.productresults tbody > tr'), in_threads: @threads) do |row|
|
36
38
|
Goodwill::Auction.new(itemid_from_search_row(row))
|
37
39
|
end
|
38
40
|
end.flatten
|
data/lib/goodwill/cli.rb
CHANGED
@@ -8,7 +8,7 @@ module Goodwill
|
|
8
8
|
|
9
9
|
def initialize(*args)
|
10
10
|
super
|
11
|
-
return
|
11
|
+
return if args[2][:current_command].name == 'help'
|
12
12
|
|
13
13
|
username = options[:username] || ask('Username:')
|
14
14
|
password = options[:password] || ask('Password:') { |q| q.echo = false }
|
data/lib/goodwill/version.rb
CHANGED
metadata
CHANGED
@@ -1,125 +1,167 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: goodwill
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brandon Burnett
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-10-
|
11
|
+
date: 2015-10-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ~>
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '10.0'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ~>
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '10.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rspec
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ~>
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '3.3'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ~>
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '3.3'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rubocop
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ~>
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0.34'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ~>
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0.34'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: pry
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ~>
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0.10'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - ~>
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0.10'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: travis
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ~>
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '1.6'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ~>
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '1.6'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: gem-release
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ~>
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0.7'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ~>
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0.7'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: parallel
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ~>
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '1.6'
|
104
|
+
type: :runtime
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ~>
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '1.6'
|
69
111
|
- !ruby/object:Gem::Dependency
|
70
112
|
name: highline
|
71
113
|
requirement: !ruby/object:Gem::Requirement
|
72
114
|
requirements:
|
73
|
-
- -
|
115
|
+
- - ~>
|
74
116
|
- !ruby/object:Gem::Version
|
75
117
|
version: '1.7'
|
76
118
|
type: :runtime
|
77
119
|
prerelease: false
|
78
120
|
version_requirements: !ruby/object:Gem::Requirement
|
79
121
|
requirements:
|
80
|
-
- -
|
122
|
+
- - ~>
|
81
123
|
- !ruby/object:Gem::Version
|
82
124
|
version: '1.7'
|
83
125
|
- !ruby/object:Gem::Dependency
|
84
126
|
name: mechanize
|
85
127
|
requirement: !ruby/object:Gem::Requirement
|
86
128
|
requirements:
|
87
|
-
- -
|
129
|
+
- - ~>
|
88
130
|
- !ruby/object:Gem::Version
|
89
131
|
version: '2.7'
|
90
132
|
type: :runtime
|
91
133
|
prerelease: false
|
92
134
|
version_requirements: !ruby/object:Gem::Requirement
|
93
135
|
requirements:
|
94
|
-
- -
|
136
|
+
- - ~>
|
95
137
|
- !ruby/object:Gem::Version
|
96
138
|
version: '2.7'
|
97
139
|
- !ruby/object:Gem::Dependency
|
98
140
|
name: table_print
|
99
141
|
requirement: !ruby/object:Gem::Requirement
|
100
142
|
requirements:
|
101
|
-
- -
|
143
|
+
- - ~>
|
102
144
|
- !ruby/object:Gem::Version
|
103
145
|
version: '1.5'
|
104
146
|
type: :runtime
|
105
147
|
prerelease: false
|
106
148
|
version_requirements: !ruby/object:Gem::Requirement
|
107
149
|
requirements:
|
108
|
-
- -
|
150
|
+
- - ~>
|
109
151
|
- !ruby/object:Gem::Version
|
110
152
|
version: '1.5'
|
111
153
|
- !ruby/object:Gem::Dependency
|
112
154
|
name: thor
|
113
155
|
requirement: !ruby/object:Gem::Requirement
|
114
156
|
requirements:
|
115
|
-
- -
|
157
|
+
- - ~>
|
116
158
|
- !ruby/object:Gem::Version
|
117
159
|
version: '0.19'
|
118
160
|
type: :runtime
|
119
161
|
prerelease: false
|
120
162
|
version_requirements: !ruby/object:Gem::Requirement
|
121
163
|
requirements:
|
122
|
-
- -
|
164
|
+
- - ~>
|
123
165
|
- !ruby/object:Gem::Version
|
124
166
|
version: '0.19'
|
125
167
|
description: Allows you to perform basic auction management, bidding, and searching
|
@@ -130,10 +172,10 @@ executables: []
|
|
130
172
|
extensions: []
|
131
173
|
extra_rdoc_files: []
|
132
174
|
files:
|
133
|
-
-
|
134
|
-
-
|
135
|
-
-
|
136
|
-
-
|
175
|
+
- .env
|
176
|
+
- .gitignore
|
177
|
+
- .rspec
|
178
|
+
- .travis.yml
|
137
179
|
- Gemfile
|
138
180
|
- Gemfile.old
|
139
181
|
- LICENSE.txt
|
@@ -164,12 +206,12 @@ require_paths:
|
|
164
206
|
- lib
|
165
207
|
required_ruby_version: !ruby/object:Gem::Requirement
|
166
208
|
requirements:
|
167
|
-
- -
|
209
|
+
- - ! '>='
|
168
210
|
- !ruby/object:Gem::Version
|
169
211
|
version: '0'
|
170
212
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
171
213
|
requirements:
|
172
|
-
- -
|
214
|
+
- - ! '>='
|
173
215
|
- !ruby/object:Gem::Version
|
174
216
|
version: '0'
|
175
217
|
requirements: []
|