adspower-client 1.0.2 → 1.0.3

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
  SHA256:
3
- metadata.gz: c501652495782fd4189744be32dc8fa7b9aa0a11239b0ee168c7328c4dc7413b
4
- data.tar.gz: 77b0955f0b309282a341f90b1fc7117e80dfe7a69b4dbb3482a7ebfbc784dcd9
3
+ metadata.gz: 2a6276d009445088184bda9fb619b9f64da4a2f50e383eeef8e7166503d5c38f
4
+ data.tar.gz: 27127685f33523332a282fc6e50d43f6e7064bde27666c7b18bde1f407a97fbf
5
5
  SHA512:
6
- metadata.gz: 23dbb293d7261bd1ddbeefc2dfa681e2d66a6731c3104483a17917c342fbb2e003fdab74b7a93caeb48165cfddd52e90db5c52725d368e336666c71d5db034f5
7
- data.tar.gz: e250a7ac45157d749b52091353db11202e15ad7c91a647fc4ef9ca476638b69de0bc736e9c5ed75fd35f994356ab660a955ad170c1d43482c7d1a66cc15ea0e1
6
+ metadata.gz: 50a25edcd5c54207f6f4e86004671596f47e8b360bd3961b8e2c67759dfd134f30939ca330a45c54a80777ee5e805d6cb1ebfa90a4a2bde0cea46ab7b917efb7
7
+ data.tar.gz: 106df641acb2442c19da7ba0bb24e7603d5d9521621b6a0968a172c9746ab9ac98f99af1cbe04df307b62c8be9564c1090aeae9d88e7fbe7934cf7a70fdc0616
@@ -1,7 +1,7 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'adspower-client'
3
- s.version = '1.0.2'
4
- s.date = '2023-12-05'
3
+ s.version = '1.0.3'
4
+ s.date = '2023-12-07'
5
5
  s.summary = "Ruby library for operating AdsPower API."
6
6
  s.description = "Ruby library for operating AdsPower API."
7
7
  s.authors = ["Leandro Daniel Sardi"]
@@ -18,4 +18,7 @@ Gem::Specification.new do |s|
18
18
  s.add_runtime_dependency 'blackstack-core', '~> 1.2.15', '>= 1.2.15'
19
19
  s.add_runtime_dependency 'selenium-webdriver', '~> 4.10.0', '>= 4.10.0'
20
20
  s.add_runtime_dependency 'watir', '~> 7.3.0', '>= 7.3.0'
21
+ s.add_runtime_dependency 'sequel', '~> 5.75.0', '>= 5.75.0'
22
+ s.add_runtime_dependency 'colorize', '~> 1.1.0', '>= 1.1.0'
23
+ s.add_runtime_dependency 'simple_cloud_logging', '~> 1.2.2', '>= 1.2.2'
21
24
  end
@@ -9,11 +9,13 @@ class AdsPowerClient
9
9
  # reference: https://localapi-doc-en.adspower.com/
10
10
  # reference: https://localapi-doc-en.adspower.com/docs/Rdw7Iu
11
11
  attr_accessor :key, :adspower_listener, :adspower_default_browser_version
12
+ # attr_accessor :profiles_created
12
13
 
13
14
  def initialize(h={})
14
15
  self.key = h[:key] # mandatory
15
16
  self.adspower_listener = h[:adspower_listener] || 'http://127.0.0.1:50325'
16
17
  self.adspower_default_browser_version = h[:adspower_default_browser_version] || '116'
18
+ # self.profiles_created = []
17
19
  end
18
20
 
19
21
  # send an GET request to "#{url}/status"
@@ -53,6 +55,8 @@ class AdsPowerClient
53
55
  # show respose body
54
56
  ret = JSON.parse(res.body)
55
57
  raise "Error: #{ret.to_s}" if ret['msg'].to_s.downcase != 'success'
58
+ # add to array of profiles created
59
+ # self.profiles_created << ret
56
60
  # return id of the created user
57
61
  ret['data']['id']
58
62
  end
@@ -77,7 +81,7 @@ class AdsPowerClient
77
81
  # reference: https://localapi-doc-en.adspower.com/docs/FFMFMf
78
82
  #
79
83
  def start(id)
80
- uri = URI.parse("#{self.adspower_listener}/api/v1/browser/start?user_id=#{id}")
84
+ uri = URI.parse("#{self.adspower_listener}/api/v1/browser/start?user_id=#{id}&headless=1")
81
85
  res = Net::HTTP.get(uri)
82
86
  # show respose bo
83
87
  ret = JSON.parse(res)
@@ -128,13 +132,64 @@ class AdsPowerClient
128
132
  # delete the profile
129
133
  # return the html
130
134
  def html(url)
131
- id = self.create
132
- driver = self.driver(id)
133
- driver.get(url)
134
- html = driver.find_element(:tag_name => 'html')
135
- self.stop(id)
136
- driver.quit
137
- self.delete(id)
138
- html
139
- end
135
+ ret = {
136
+ :profile_id => nil,
137
+ :html => nil,
138
+ :status => 'success',
139
+ }
140
+ id = nil
141
+ html = nil
142
+ begin
143
+ # create the profile
144
+ sleep(1) # Avoid the "Too many request per second" error
145
+ id = self.create
146
+
147
+ # update the result
148
+ ret[:profile_id] = id
149
+
150
+ # start the profile and attach the driver
151
+ driver = self.driver(id)
152
+
153
+ # get html
154
+ driver.get(url)
155
+ html = driver.page_source
156
+
157
+ # update the result
158
+ ret[:html] = html
159
+
160
+ # stop the profile
161
+ sleep(1) # Avoid the "Too many request per second" error
162
+ driver.quit
163
+ self.stop(id)
164
+
165
+ # delete the profile
166
+ sleep(1) # Avoid the "Too many request per second" error
167
+ self.delete(id)
168
+
169
+ # reset id
170
+ id = nil
171
+ rescue => e
172
+ # stop and delete current profile
173
+ if id
174
+ sleep(1) # Avoid the "Too many request per second" error
175
+ self.stop(id)
176
+ sleep(1) # Avoid the "Too many request per second" error
177
+ driver.quit
178
+ self.delete(id) if id
179
+ end # if id
180
+ # inform the exception
181
+ ret[:status] = e.to_s
182
+ # # process interruption
183
+ # rescue SignalException, SystemExit, Interrupt => e
184
+ # if id
185
+ # sleep(1) # Avoid the "Too many request per second" error
186
+ # self.stop(id)
187
+ # sleep(1) # Avoid the "Too many request per second" error
188
+ # driver.quit
189
+ # self.delete(id) if id
190
+ # end # if id
191
+ end
192
+ # return
193
+ ret
194
+ end # def html
140
195
  end # class AdsPowerClient
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: adspower-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Leandro Daniel Sardi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-12-05 00:00:00.000000000 Z
11
+ date: 2023-12-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: uri
@@ -130,6 +130,66 @@ dependencies:
130
130
  - - ">="
131
131
  - !ruby/object:Gem::Version
132
132
  version: 7.3.0
133
+ - !ruby/object:Gem::Dependency
134
+ name: sequel
135
+ requirement: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - "~>"
138
+ - !ruby/object:Gem::Version
139
+ version: 5.75.0
140
+ - - ">="
141
+ - !ruby/object:Gem::Version
142
+ version: 5.75.0
143
+ type: :runtime
144
+ prerelease: false
145
+ version_requirements: !ruby/object:Gem::Requirement
146
+ requirements:
147
+ - - "~>"
148
+ - !ruby/object:Gem::Version
149
+ version: 5.75.0
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: 5.75.0
153
+ - !ruby/object:Gem::Dependency
154
+ name: colorize
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - "~>"
158
+ - !ruby/object:Gem::Version
159
+ version: 1.1.0
160
+ - - ">="
161
+ - !ruby/object:Gem::Version
162
+ version: 1.1.0
163
+ type: :runtime
164
+ prerelease: false
165
+ version_requirements: !ruby/object:Gem::Requirement
166
+ requirements:
167
+ - - "~>"
168
+ - !ruby/object:Gem::Version
169
+ version: 1.1.0
170
+ - - ">="
171
+ - !ruby/object:Gem::Version
172
+ version: 1.1.0
173
+ - !ruby/object:Gem::Dependency
174
+ name: simple_cloud_logging
175
+ requirement: !ruby/object:Gem::Requirement
176
+ requirements:
177
+ - - "~>"
178
+ - !ruby/object:Gem::Version
179
+ version: 1.2.2
180
+ - - ">="
181
+ - !ruby/object:Gem::Version
182
+ version: 1.2.2
183
+ type: :runtime
184
+ prerelease: false
185
+ version_requirements: !ruby/object:Gem::Requirement
186
+ requirements:
187
+ - - "~>"
188
+ - !ruby/object:Gem::Version
189
+ version: 1.2.2
190
+ - - ">="
191
+ - !ruby/object:Gem::Version
192
+ version: 1.2.2
133
193
  description: Ruby library for operating AdsPower API.
134
194
  email: leandro@connectionsphere.com
135
195
  executables: []