grabzit 3.5.2 → 3.5.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: 2920fbc96f29ee4d9b7f7a1c83e7fe1d2ead558fc74b4baa5cd335f73cc9efd7
4
- data.tar.gz: 8104b2962af11846171eced2a038a48d1f33f768d6684293f52a73103aaed85c
3
+ metadata.gz: 69441e35b5c040ac5be4e771f9d984bb6b29bff4914a93e64ce8973035aea3c4
4
+ data.tar.gz: 26678eafcbaa717bfb3944c9e5ba5be280d8c0818263f037c88fd352b33e4b2e
5
5
  SHA512:
6
- metadata.gz: 3fd0f39c45172d5f685e1c76b9664d0f4b1e5de08c37a0d3c565a64eaf85712c4a254506b1468fb64cbb45b7135a507f89420f1746f89dcd5914810fb6427744
7
- data.tar.gz: 1afc1b4fcbd2e0008d58ce9b6572a48981ac6febd4c2434b4abca92561c4b4536dbf9c4408a75ec5c10cccecbb48ccb197e9484b9de27ee06ec1a2b172f46488
6
+ metadata.gz: e75ae31a753d25f5e7205a062b3deab0fbb71cf9277db09e8b5b5113a5e12cb0f52faa70d41a02bc580cc50b5c3cdaf392bc4e5afbc68822d1f5d25ffa9b9a2b
7
+ data.tar.gz: 812617ee29f875014791ab34c17d4de73660eca023bea8cd0a5506472d3c8a479d10d78a3bdc83cddbe05b92699c61c7f1f3f7aa5e9f4e126cbc099b6da0b6ff
@@ -1,4 +1,4 @@
1
- # The public REST API for http://grabz.it
1
+ # The public REST API for https://grabz.it
2
2
  # @example To include the GrabzIt module do the following
3
3
  # require 'grabzit'
4
4
  module GrabzIt
@@ -32,13 +32,15 @@ module GrabzIt
32
32
  # grabzItClient.save("http://www.mysite.com/grabzit/handler")
33
33
  # @version 3.0
34
34
  # @author GrabzIt
35
- # @see http://grabz.it/api/ruby/ GrabzIt Ruby API
35
+ # @see https://grabz.it/api/ruby/ GrabzIt Ruby API
36
36
  class Client
37
37
 
38
38
  WebServicesBaseURL = "://api.grabz.it/services/"
39
39
  private_constant :WebServicesBaseURL
40
40
  TakePicture = "takepicture"
41
41
  private_constant :TakePicture
42
+ TakeVideo = "takevideo"
43
+ private_constant :TakeVideo
42
44
  TakeTable = "taketable"
43
45
  private_constant :TakeTable
44
46
  TakePDF = "takepdf"
@@ -54,7 +56,7 @@ module GrabzIt
54
56
  #
55
57
  # @param applicationKey [String] your application key
56
58
  # @param applicationSecret [String] your application secret
57
- # @see http://grabz.it/register.aspx You can get an application key and secret by registering for free with GrabzIt
59
+ # @see https://grabz.it/login/create/ You can get an application key and secret by registering for free with GrabzIt
58
60
  def initialize(applicationKey, applicationSecret)
59
61
  @applicationKey = applicationKey
60
62
  @applicationSecret = applicationSecret
@@ -116,6 +118,45 @@ module GrabzIt
116
118
  html_to_image(read_file(path), options)
117
119
  end
118
120
 
121
+ # This method specifies the URL that should be converted into a video
122
+ #
123
+ # @param url [String] the URL to capture as a video
124
+ # @param options [VideoOptions, nil] a instance of the VideoOptions class that defines any special options to use when creating a video
125
+ # @return [void]
126
+ def url_to_video(url, options = nil)
127
+
128
+ if options == nil
129
+ options = VideoOptions.new()
130
+ end
131
+
132
+ @request = Request.new(@protocol + WebServicesBaseURL + TakeVideo, false, options, url)
133
+ return nil
134
+ end
135
+
136
+ # This method specifies the HTML that should be converted into a video
137
+ #
138
+ # @param html [String] the HTML to convert into a video
139
+ # @param options [VideoOptions, nil] a instance of the VideoOptions class that defines any special options to use when creating a video
140
+ # @return [void]
141
+ def html_to_video(html, options = nil)
142
+
143
+ if options == nil
144
+ options = VideoOptions.new()
145
+ end
146
+
147
+ @request = Request.new(@protocol + WebServicesBaseURL + TakeVideo, true, options, html)
148
+ return nil
149
+ end
150
+
151
+ # This method specifies a HTML file that should be converted into a video
152
+ #
153
+ # @param path [String] the file path of a HTML file to convert into a video
154
+ # @param options [VideoOptions, nil] a instance of the VideoOptions class that defines any special options to use when creating a video
155
+ # @return [void]
156
+ def file_to_video(path, options = nil)
157
+ html_to_video(read_file(path), options)
158
+ end
159
+
119
160
  # This method specifies the URL that should be converted into rendered HTML
120
161
  #
121
162
  # @param url [String] the URL to capture as rendered HTML
@@ -0,0 +1,240 @@
1
+ module GrabzIt
2
+ require File.join(File.dirname(__FILE__), 'baseoptions')
3
+
4
+ # Represents all of the options available when creating an video
5
+ # @version 3.0
6
+ # @author GrabzIt
7
+ class VideoOptions < BaseOptions
8
+ def initialize()
9
+ super()
10
+ @browserWidth = nil
11
+ @browserHeight = nil
12
+ @waitForElement = nil
13
+ @requestAs = 0
14
+ @customWaterMarkId = nil
15
+ @noAds = false
16
+ @noCookieNotifications = false
17
+ @address = nil
18
+ @clickElement = nil
19
+ @start = 0
20
+ @duration = 10
21
+ @framesPerSecond = 0
22
+ end
23
+
24
+ # @return [Integer] the width of the browser in pixels
25
+ def browserWidth
26
+ @browserWidth
27
+ end
28
+
29
+ # Set the width of the browser in pixels
30
+ #
31
+ # @param value [Integer] the browser width
32
+ # @return [void]
33
+ def browserWidth=(value)
34
+ @browserWidth = value
35
+ end
36
+
37
+ # @return [Integer] the height of the browser in pixels
38
+ def browserHeight
39
+ @browserHeight
40
+ end
41
+
42
+ # Set the height of the browser in pixels. Use -1 to screenshot the whole web page
43
+ #
44
+ # @param value [Integer] the browser height
45
+ # @return [void]
46
+ def browserHeight=(value)
47
+ @browserHeight = value
48
+ end
49
+
50
+ # @return [String] get the CSS selector of the HTML element in the web page that must be visible before the capture is performed
51
+ def waitForElement
52
+ @waitForElement
53
+ end
54
+
55
+ # Set the CSS selector of the HTML element in the web page that must be visible before the capture is performed
56
+ #
57
+ # @param value [String] the element to wait for
58
+ # @return [void]
59
+ def waitForElement=(value)
60
+ @waitForElement = value
61
+ end
62
+
63
+ # @return [String] get the CSS selector of the HTML element in the web page that must clicked before the capture is performed
64
+ def clickElement
65
+ @clickElement
66
+ end
67
+
68
+ # Set the CSS selector of the HTML element in the web page that must clicked before the capture is performed
69
+ #
70
+ # @param value [String] the element to click
71
+ # @return [void]
72
+ def clickElement=(value)
73
+ @clickElement = value
74
+ end
75
+
76
+ # @return [Integer] get which user agent type should be used
77
+ def requestAs
78
+ @requestAs
79
+ end
80
+
81
+ # Set which user agent type should be used: Standard Browser = 0, Mobile Browser = 1, Search Engine = 2 and Fallback Browser = 3
82
+ #
83
+ # @param value [Integer] the browser type
84
+ # @return [void]
85
+ def requestAs=(value)
86
+ @requestAs = value
87
+ end
88
+
89
+ # @return [String] the custom watermark id.
90
+ def customWaterMarkId
91
+ @customWaterMarkId
92
+ end
93
+
94
+ # Set a custom watermark to add to the screenshot.
95
+ #
96
+ # @param value [String] custom watermark id
97
+ # @return [void]
98
+ def customWaterMarkId=(value)
99
+ @customWaterMarkId = value
100
+ end
101
+
102
+ # @return [Boolean] get if adverts should be automatically hidden
103
+ def noAds
104
+ @noAds
105
+ end
106
+
107
+ # Set to true if adverts should be automatically hidden
108
+ #
109
+ # @param value [Boolean] hide adverts
110
+ # @return [void]
111
+ def noAds=(value)
112
+ @noAds = value
113
+ end
114
+
115
+ # @return [Boolean] get if cookie notifications should be automatically hidden
116
+ def noCookieNotifications
117
+ @noCookieNotifications
118
+ end
119
+
120
+ # Set to true if cookie notifications should be automatically hidden
121
+ #
122
+ # @param value [Boolean] hide cookie notifications
123
+ # @return [void]
124
+ def noCookieNotifications=(value)
125
+ @noCookieNotifications = value
126
+ end
127
+
128
+ # @return [String] get the URL to execute the HTML code in
129
+ def address
130
+ @address
131
+ end
132
+
133
+ # Set the URL to execute the HTML code in
134
+ #
135
+ # @param value [String] the address
136
+ # @return [void]
137
+ def address=(value)
138
+ @address = value
139
+ end
140
+
141
+ # @return [Integer] the starting time of the web page that should be converted into a video
142
+ def start
143
+ @start
144
+ end
145
+
146
+ # Set the starting time of the web page that should be converted into a video
147
+ #
148
+ # @param value [Integer] the second to start at
149
+ # @return [void]
150
+ def start=(value)
151
+ @start = value
152
+ end
153
+
154
+ # @return [Integer] the length in seconds of the web page that should be converted into a video
155
+ def duration
156
+ @duration
157
+ end
158
+
159
+ # Set the length in seconds of the web page that should be converted into a video
160
+ #
161
+ # @param value [Integer] the number of seconds
162
+ # @return [void]
163
+ def duration=(value)
164
+ @duration = value
165
+ end
166
+
167
+ # @return [Float] the number of frames per second that should be used to create the video. From a minimum of 0.2 to a maximum of 10
168
+ def framesPerSecond
169
+ @framesPerSecond
170
+ end
171
+
172
+ # Set the number of frames per second that should be used to create the video. From a minimum of 0.2 to a maximum of 10
173
+ #
174
+ # @param value [Float] the number of frames per second
175
+ # @return [void]
176
+ def framesPerSecond=(value)
177
+ @framesPerSecond = value
178
+ end
179
+
180
+ # Define a HTTP Post parameter and optionally value, this method can be called multiple times to add multiple parameters. Using this method will force
181
+ # GrabzIt to perform a HTTP post.
182
+ #
183
+ # @param name [String] the name of the HTTP Post parameter
184
+ # @param value [String] the value of the HTTP Post parameter
185
+ def add_post_parameter(name, value)
186
+ @post = appendParameter(@post, name, value)
187
+ end
188
+
189
+ # @!visibility private
190
+ def _getSignatureString(applicationSecret, callBackURL, url = nil)
191
+ items = [applicationSecret]
192
+
193
+ if(url != nil)
194
+ items.push(GrabzIt::Utility.nil_check(url))
195
+ end
196
+
197
+ items.push(GrabzIt::Utility.nil_check(callBackURL),
198
+ GrabzIt::Utility.nil_int_check(@browserHeight),
199
+ GrabzIt::Utility.nil_int_check(@browserWidth),
200
+ GrabzIt::Utility.nil_check(@customId),
201
+ GrabzIt::Utility.nil_check(@customWaterMarkId),
202
+ GrabzIt::Utility.nil_int_check(@start),
203
+ GrabzIt::Utility.nil_int_check(@requestAs),
204
+ GrabzIt::Utility.nil_check(@country),
205
+ GrabzIt::Utility.nil_check(@exportURL),
206
+ GrabzIt::Utility.nil_check(@waitForElement),
207
+ GrabzIt::Utility.nil_check(@encryptionKey),
208
+ GrabzIt::Utility.b_to_str(@noAds),
209
+ GrabzIt::Utility.nil_check(@post),
210
+ GrabzIt::Utility.nil_check(@proxy),
211
+ GrabzIt::Utility.nil_check(@address),
212
+ GrabzIt::Utility.b_to_str(@noCookieNotifications),
213
+ GrabzIt::Utility.nil_check(@clickElement),
214
+ GrabzIt::Utility.nil_float_check(@framesPerSecond),
215
+ GrabzIt::Utility.nil_int_check(@duration))
216
+
217
+ return items.join("|")
218
+ end
219
+
220
+ # @!visibility private
221
+ def _getParameters(applicationKey, sig, callBackURL, dataName, dataValue)
222
+ params = createParameters(applicationKey, sig, callBackURL, dataName, dataValue)
223
+ params['bwidth'] = GrabzIt::Utility.nil_int_check(@browserWidth)
224
+ params['customwatermarkid'] = GrabzIt::Utility.nil_check(@customWaterMarkId)
225
+ params['bheight'] = GrabzIt::Utility.nil_int_check(@browserHeight)
226
+ params['waitfor'] = GrabzIt::Utility.nil_check(@waitForElement)
227
+ params['requestmobileversion'] = GrabzIt::Utility.nil_int_check(@requestAs)
228
+ params['noads'] = GrabzIt::Utility.b_to_str(@noAds)
229
+ params['post'] = GrabzIt::Utility.nil_check(@post)
230
+ params['address'] = GrabzIt::Utility.nil_check(@address)
231
+ params['nonotify'] = GrabzIt::Utility.b_to_str(@noCookieNotifications)
232
+ params['click'] = GrabzIt::Utility.nil_check(@clickElement)
233
+ params['start'] = GrabzIt::Utility.nil_int_check(@start)
234
+ params['fps'] = GrabzIt::Utility.nil_float_check(@framesPerSecond)
235
+ params['duration'] = GrabzIt::Utility.nil_int_check(@duration)
236
+
237
+ return params
238
+ end
239
+ end
240
+ end
data/test/test_grabzit.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  require 'test/unit'
2
- require 'grabzit'
2
+ require_relative '../lib/grabzit.rb'
3
3
 
4
4
  class GrabzItTest < Test::Unit::TestCase
5
5
  Cookie_Name = "test_cookie"
@@ -31,6 +31,14 @@ class GrabzItTest < Test::Unit::TestCase
31
31
  end
32
32
  end
33
33
 
34
+ def test_html_to_video
35
+ assert_nothing_raised "An error occured when trying to take convert HTML to a video" do
36
+ grabzItClient = GrabzIt::Client.new(@applicationKey, @applicationSecret)
37
+ grabzItClient.html_to_video("<h1>Hello world</h1>");
38
+ assert_not_equal(false, grabzItClient.save(), "HTML not converted")
39
+ end
40
+ end
41
+
34
42
  def test_html_to_pdf
35
43
  assert_nothing_raised "An error occured when trying to take convert HTML to a pdf" do
36
44
  grabzItClient = GrabzIt::Client.new(@applicationKey, @applicationSecret)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: grabzit
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.5.2
4
+ version: 3.5.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - GrabzIt
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-07-09 00:00:00.000000000 Z
11
+ date: 2024-02-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -24,8 +24,8 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
- description: Use GrabzIt to convert HTML or URL's into images, PDF, rendered HTML
28
- or DOCX. These captures have highly customizable options include altering quality,
27
+ description: Use GrabzIt to convert HTML or URL's into images, PDF, videos, rendered
28
+ HTML or DOCX. These captures have highly customizable options include altering quality,
29
29
  delay, size, browser type, geographic location and much more. Additionally GrabzIt
30
30
  can even convert HTML tables on the web into a CSV or Excel spreadsheet. As well
31
31
  as enabling online video's to be converted into animated GIF's.
@@ -50,6 +50,7 @@ files:
50
50
  - lib/grabzit/screenshotstatus.rb
51
51
  - lib/grabzit/tableoptions.rb
52
52
  - lib/grabzit/utility.rb
53
+ - lib/grabzit/videooptions.rb
53
54
  - lib/grabzit/watermark.rb
54
55
  - test/test.png
55
56
  - test/test_grabzit.rb
@@ -72,7 +73,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
72
73
  - !ruby/object:Gem::Version
73
74
  version: '0'
74
75
  requirements: []
75
- rubygems_version: 3.1.6
76
+ rubygems_version: 3.4.19
76
77
  signing_key:
77
78
  specification_version: 4
78
79
  summary: GrabzIt Ruby Client