datahen 1.2.2 → 1.3.0

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: bcc40ebf4e65038d925d3b234a42dce05d66e38ac98c254bc1bcf0800475a266
4
- data.tar.gz: d9d021b4f17b6f409fed11de2f64092396df4adf3b382a910be3336d8f74e661
3
+ metadata.gz: 8acff6d62851c24f1bd86d993255ca3c2233ec9b45f933964bf804b49e637611
4
+ data.tar.gz: 978f1ae63011cd20ad978640b5fa437416cc65930b29f143f6431c14bd059840
5
5
  SHA512:
6
- metadata.gz: 05b969a63bdd90b1cfe944a303fe203e6def8c5307f072c0eb152e050c5717bec8ac464a25916fbe07ccf890abc7af6befebef831d39c968c591a630915b47b6
7
- data.tar.gz: 632c4ad6a55b201bd6fae08830449958558f2d220b570b5e14aee7285b433b2e5439b46e489bfeb696417af6537b3eb636216e1eb8ecc400dbaa0a85f5f8dd8d
6
+ metadata.gz: 4531cadcddab26fd218bd1c7462114985d72460dd1d68aaca2338bea2f7d9e16278b639795d379feaab62f68924376fd17fd93df2916069cb47797210ad6b370
7
+ data.tar.gz: dcd734cb8ed3876bbf7f62ed6a66004c8d21b7f8009f7b7591144887ddf5a1d12c07b6768a54e84daeaf09d20db6ea7702adaf9c526c83043351a7cf04612388
@@ -133,6 +133,21 @@ module Datahen
133
133
  end
134
134
  end
135
135
 
136
+ desc "sync_schema <scraper_name>", "deploy schema config"
137
+ long_desc <<-LONGDESC
138
+ Deploy a scraper's schema config
139
+ LONGDESC
140
+ option :job, :aliases => :j, type: :numeric, desc: 'Set a specific job ID'
141
+ def sync_schema(scraper_name)
142
+ if options[:job]
143
+ client = Client::Job.new(options)
144
+ puts "#{client.sync_schema(options[:job])}"
145
+ else
146
+ client = Client::ScraperJob.new(options)
147
+ puts "#{client.sync_schema(scraper_name)}"
148
+ end
149
+ end
150
+
136
151
  desc "var SUBCOMMAND ...ARGS", "for managing scraper's job variables"
137
152
  subcommand "var", ScraperJobVar
138
153
 
@@ -94,6 +94,12 @@ module Datahen
94
94
  self.class.delete("/jobs/#{job_id}", params)
95
95
  end
96
96
 
97
+ def sync_schema(job_id, opts={})
98
+ params = @options.merge(opts)
99
+
100
+ self.class.put("/sync/jobs/#{job_id}/schema", params)
101
+ end
102
+
97
103
  end
98
104
 
99
105
  end
@@ -72,6 +72,7 @@ module Datahen
72
72
 
73
73
  self.class.get("/scrapers/#{scraper_name}/profile", params)
74
74
  end
75
+
75
76
  end
76
77
  end
77
78
  end
@@ -75,6 +75,11 @@ module Datahen
75
75
  params = @options.merge(opts)
76
76
  self.class.delete("/scrapers/#{scraper_name}/current_job", params)
77
77
  end
78
+
79
+ def sync_schema(scraper_name, opts={})
80
+ params = @options.merge(opts)
81
+ self.class.put("/scrapers/#{scraper_name}/current_job/sync/schema", params)
82
+ end
78
83
  end
79
84
  end
80
85
  end
@@ -108,16 +108,32 @@ module Datahen
108
108
  end
109
109
  end
110
110
 
111
+ def update_parsing_status page_gid, status
112
+ return unless save
113
+
114
+ response = parsing_update(
115
+ job_id: job_id,
116
+ gid: page_gid,
117
+ parsing_status: status)
118
+
119
+ if response.code == 200
120
+ puts "Page #{page_gid} status changed to #{status}."
121
+ else
122
+ puts "Error: Unable to change page #{page_gid} status: #{response.body} to #{status}"
123
+ raise "Unable to change page #{page_gid} status: #{response.body} to #{status}"
124
+ end
125
+ end
126
+
111
127
  def save_type
112
128
  :parsing
113
129
  end
114
130
 
115
- def refetch_page gid
131
+ def refetch_page page_gid
116
132
  if save
117
- Client::JobPage.new({gid: gid}).refetch(self.job_id)
118
- puts "Refetch page #{gid}"
133
+ update_parsing_status page_gid, :to_refetch
134
+ puts "Refetch page #{page_gid}"
119
135
  else
120
- puts "Would have refetch page #{gid}"
136
+ puts "Would have refetch page #{page_gid}"
121
137
  end
122
138
  end
123
139
 
@@ -130,12 +146,12 @@ module Datahen
130
146
  refetch_page page_gid
131
147
  end
132
148
 
133
- def reparse_page gid
149
+ def reparse_page page_gid
134
150
  if save
135
- Client::JobPage.new({gid: gid}).reparse(self.job_id)
136
- puts "Reparse page #{gid}"
151
+ update_parsing_status page_gid, :to_reparse
152
+ puts "Reparse page #{page_gid}"
137
153
  else
138
- puts "Would have reparse page #{gid}"
154
+ puts "Would have reparse page #{page_gid}"
139
155
  end
140
156
  end
141
157
 
@@ -148,12 +164,12 @@ module Datahen
148
164
  reparse_page page_gid
149
165
  end
150
166
 
151
- def limbo_page gid
167
+ def limbo_page page_gid
152
168
  if save
153
- Client::JobPage.new({gid: gid}).limbo(self.job_id)
154
- puts "Limbo page #{gid}"
169
+ update_parsing_status page_gid, :limbo
170
+ puts "Limbo page #{page_gid}"
155
171
  else
156
- puts "Would have limbo page #{gid}"
172
+ puts "Would have limbo page #{page_gid}"
157
173
  end
158
174
  end
159
175
 
@@ -204,13 +220,13 @@ module Datahen
204
220
  end
205
221
 
206
222
  if refetch_self
207
- refetch_page gid
223
+ update_parsing_status gid, :to_refetch
208
224
  elsif reparse_self
209
- reparse_page gid
225
+ update_parsing_status gid, :to_reparse
210
226
  elsif limbo_self
211
- limbo_page gid
227
+ update_parsing_status gid, :limbo
212
228
  else
213
- update_parsing_done_status
229
+ update_parsing_status gid, :done
214
230
  end
215
231
  end
216
232
  proc.call
@@ -1,3 +1,3 @@
1
1
  module Datahen
2
- VERSION = "1.2.2"
2
+ VERSION = "1.3.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: datahen
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.2
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Parama Danoesubroto
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-12-14 00:00:00.000000000 Z
11
+ date: 2023-05-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -278,7 +278,7 @@ metadata:
278
278
  allowed_push_host: https://rubygems.org
279
279
  homepage_uri: https://datahen.com
280
280
  source_code_uri: https://github.com/DataHenOfficial/datahen-ruby
281
- post_install_message:
281
+ post_install_message:
282
282
  rdoc_options: []
283
283
  require_paths:
284
284
  - lib
@@ -293,8 +293,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
293
293
  - !ruby/object:Gem::Version
294
294
  version: '0'
295
295
  requirements: []
296
- rubygems_version: 3.0.3
297
- signing_key:
296
+ rubygems_version: 3.1.4
297
+ signing_key:
298
298
  specification_version: 4
299
299
  summary: DataHen toolbelt for developers
300
300
  test_files: []