zyte-client 1.0.4 → 1.0.5

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: 4fb5e26d0d9839bedd4718350f84f72d16982126b04aa549c935db44d3de1ab9
4
- data.tar.gz: 9601178b692e7a44fa16f4541d249c8973b3bd169ef20c7320de3c7e03ebcc8e
3
+ metadata.gz: 8f630a5f4d853e6754b2c95d2c196a53f3b44b7632bfacdfd64aab0c3b69fa17
4
+ data.tar.gz: a602c13529fc89e2fc6dd09a210264c27794e84d2e5ae042a0bf7693eb244d55
5
5
  SHA512:
6
- metadata.gz: 9c688aa01f169576470161a2975304b6695d680684715870471c371e5fdcf1e026653c4e73c72ab4f5e223d8ee944c0e34e8ed6e1f2ecf692e1418203956db46
7
- data.tar.gz: feb282df4344cdcfda4e05c10667d8c643b98f8d244f0bbd2b7923c5d85cb614a56373796449acf8628e27b4c734c6bb1c5dea102acd4158f82be8659dfa343f
6
+ metadata.gz: 20d49f1fbb79a627f785524d51112103df7d83089f6082d5bf5e4ff08887d16e8e091b68c84b66caab7c99780632ca8d75ee655578d86ec9c7bd2a145c609db3
7
+ data.tar.gz: d0906d565585aac927ff2518be4568fa6b11b90c0c391ff610f3c49c42af16b2c2d01387765b8f16c02c8af42d6c95465341201fe609d195e431e929779b7937
data/lib/zyte-client.rb CHANGED
@@ -12,25 +12,42 @@ class ZyteClient
12
12
  self.key = h[:key] # mandatory
13
13
  end
14
14
 
15
- def extract(url)
16
- input = "{
17
- \"url\": \"#{url}\",
18
- \"httpResponseBody\": true
19
- }
20
- "
21
-
22
- File.open('zyte.input.json', 'w') { |file| file.write(input) }
23
-
24
- ret = `curl \
25
- --silent \
26
- --user #{self.key}: \
27
- --header 'Content-Type: application/json' \
28
- --data @zyte.input.json \
29
- --compressed \
30
- https://api.zyte.com/v1/extract \
31
- | jq --raw-output .httpResponseBody \
32
- | base64 --decode \
33
- `
15
+ # call Zyte API's extract access point.
16
+ #
17
+ # url: the URL to extract.
18
+ # options: additonal Zyte API's options to the default request. Default request is: {"url": url}.
19
+ # json_parsing: if true, the response is parsed as JSON using jq command, and return the value of the `httpResponseBody` key. Default is true.
20
+ #
21
+ def extract(url:, json_parsing: true, options:{})
22
+ data = {
23
+ "url": url,
24
+ }.merge(options)
25
+
26
+ File.open('zyte.data.json', 'w') { |file| file.write(data.to_json) }
27
+
28
+ if json_parsing
29
+ cmd = "curl \
30
+ --silent \
31
+ --user #{self.key}: \
32
+ --header 'Content-Type: application/json' \
33
+ --data @zyte.data.json \
34
+ --compressed \
35
+ https://api.zyte.com/v1/extract \
36
+ | jq --raw-output .httpResponseBody \
37
+ | base64 --decode
38
+ "
39
+ else
40
+ cmd = "curl \
41
+ --silent \
42
+ --user #{self.key}: \
43
+ --header 'Content-Type: application/json' \
44
+ --data @zyte.data.json \
45
+ --compressed \
46
+ https://api.zyte.com/v1/extract
47
+ "
48
+ end
49
+
50
+ ret = `#{cmd}`
34
51
 
35
52
  return ret
36
53
  end # def zyte
data/zyte-client.gemspec CHANGED
@@ -1,7 +1,7 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'zyte-client'
3
- s.version = '1.0.4'
4
- s.date = '2023-12-08'
3
+ s.version = '1.0.5'
4
+ s.date = '2024-04-22'
5
5
  s.summary = "Ruby library for operating Zyte API."
6
6
  s.description = "Ruby library for operating Zyte API."
7
7
  s.authors = ["Leandro Daniel Sardi"]
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zyte-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.4
4
+ version: 1.0.5
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-08 00:00:00.000000000 Z
11
+ date: 2024-04-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: uri