grabzit 2.1.3 → 2.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/grabzit/client.rb +45 -6
- data/lib/grabzit/exception.rb +9 -0
- data/test/test_grabzit.rb +25 -5
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 17e5e690195e3db9e04ddb68b01c8452d9e78ef9
|
4
|
+
data.tar.gz: 62c853dc8b70e06b8037839cad0d49ff0b22b304
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f4504960048214f2855de361bf232b0910ec25b728e6d230392444cda73cf035dc38f3ec85293346ed2f6be0f84659ed5bd78744dbdb5247d560463a081e5e6f
|
7
|
+
data.tar.gz: 82b9b8811d5606238ffbeb4b5ae128856f6a7c9f7a02c9be3c0925e679dd31f470b41eb556efe7b7d59a9b29cb93e0274b4a7aa3a3ef08e6abdc5e4eb475fc4b
|
data/lib/grabzit/client.rb
CHANGED
@@ -25,7 +25,7 @@ module GrabzIt
|
|
25
25
|
# @see http://grabz.it/api/ruby/ GrabzIt Ruby API
|
26
26
|
class Client
|
27
27
|
|
28
|
-
WebServicesBaseURL = "http://grabz.it/services/"
|
28
|
+
WebServicesBaseURL = "http://api.grabz.it/services/"
|
29
29
|
private_constant :WebServicesBaseURL
|
30
30
|
TrueString = "True"
|
31
31
|
private_constant :TrueString
|
@@ -45,10 +45,35 @@ module GrabzIt
|
|
45
45
|
@applicationSecret = applicationSecret
|
46
46
|
end
|
47
47
|
|
48
|
+
# This method sets the parameters required to turn a online video into a animated GIF
|
49
|
+
#
|
50
|
+
# @param url [String] the URL of the online video
|
51
|
+
# @param customId [String, nil] custom identifier that you can pass through to the animated GIF web service. This will be returned with the callback URL you have specified
|
52
|
+
# @param width [Integer, 0] the width of the resulting animated GIF in pixels
|
53
|
+
# @param height [Integer, 0] the height of the resulting animated GIF in pixels
|
54
|
+
# @param start [Integer, 0] the starting position of the video that should be converted into a animated GIF
|
55
|
+
# @param duration [Integer, 0] the length in seconds of the video that should be converted into a animated GIF
|
56
|
+
# @param speed [Float, 0] the speed of the animated GIF from 0.2 to 10 times the original speed
|
57
|
+
# @param framesPerSecond [Float, 0] the number of frames per second that should be captured from the video. From a minimum of 0.2 to a maximum of 60
|
58
|
+
# @param repeat [Integer, 0] the number of times to loop the animated GIF. If 0 it will loop forever
|
59
|
+
# @param reverse [Boolean, false] if true the frames of the animated GIF are reversed
|
60
|
+
# @param customWaterMarkId [String, nil] add a custom watermark to the animated GIF
|
61
|
+
# @param quality [Integer, -1] the quality of the image where 0 is poor and 100 excellent. The default is -1 which uses the recommended quality
|
62
|
+
# @param country [String, nil] request the screenshot from different countries: Default, UK or US
|
63
|
+
# @return [void]
|
64
|
+
def set_animation_options(url, customId = nil, width = 0, height = 0, start = 0, duration = 0, speed = 0, framesPerSecond = 0, repeat = 0, reverse = false, customWaterMarkId = nil, quality = -1, country = nil)
|
65
|
+
@@startDelay = 0;
|
66
|
+
@@request = WebServicesBaseURL + "takeanimation.ashx?key=" + CGI.escape(nil_check(@applicationKey))+"&url="+CGI.escape(nil_check(url))+"&width="+nil_int_check(width)+"&height="+nil_int_check(height)+"&duration="+nil_int_check(duration)+"&speed="+nil_float_check(speed)+"&start="+nil_int_check(start)+"&customid="+CGI.escape(nil_check(customId))+"&fps="+nil_float_check(framesPerSecond)+"&repeat="+nil_int_check(repeat)+"&customwatermarkid="+CGI.escape(nil_check(customWaterMarkId))+"&reverse="+b_to_str(reverse)+"&country="+CGI.escape(nil_check(country))+"&quality="+nil_int_check(quality)+"&callback="
|
67
|
+
@@signaturePartOne = @applicationSecret+"|"+nil_check(url)+"|"
|
68
|
+
@@signaturePartTwo = "|"+nil_int_check(height)+"|"+nil_int_check(width)+"|"+nil_check(customId)+"|"+nil_float_check(framesPerSecond)+"|"+nil_float_check(speed)+"|"+nil_int_check(duration)+"|"+nil_int_check(repeat)+"|"+b_to_str(reverse)+"|"+nil_int_check(start)+"|"+nil_check(customWaterMarkId)+"|"+nil_check(country)+"|"+nil_int_check(quality)
|
69
|
+
return nil
|
70
|
+
end
|
71
|
+
|
72
|
+
|
48
73
|
# Sets the parameters required to take a screenshot of a web page.
|
49
74
|
#
|
50
75
|
# @param url [String] the URL that the screenshot should be made of
|
51
|
-
# @param customId [String, nil] custom identifier that you can pass through to the screenshot
|
76
|
+
# @param customId [String, nil] custom identifier that you can pass through to the screenshot web service. This will be returned with the callback URL you have specified.
|
52
77
|
# @param browserWidth [Integer, nil] the width of the browser in pixels
|
53
78
|
# @param browserHeight [Integer, nil] the height of the browser in pixels
|
54
79
|
# @param width [Integer, nil] the width of the resulting thumbnail in pixels
|
@@ -79,11 +104,11 @@ module GrabzIt
|
|
79
104
|
# Sets the parameters required to extract one or more tables from a web page.
|
80
105
|
#
|
81
106
|
# @param url [String] the URL that the should be used to extract tables
|
82
|
-
# @param customId [String, nil] a custom identifier that you can pass through to the
|
107
|
+
# @param customId [String, nil] a custom identifier that you can pass through to the web service. This will be returned with the callback URL you have specified.
|
83
108
|
# @param tableNumberToInclude [Integer, 1] the index of the table to be converted, were all tables in a web page are ordered from the top of the web page to bottom
|
84
109
|
# @param format [String, 'csv'] the format the table should be in: csv, xlsx
|
85
110
|
# @param includeHeaderNames [Boolean, true] if true header names will be included in the table
|
86
|
-
# @param includeAllTables [Boolean, true] if true all table on the web page will be extracted with each table appearing in a
|
111
|
+
# @param includeAllTables [Boolean, true] if true all table on the web page will be extracted with each table appearing in a separate spreadsheet sheet. Only available with the XLSX format.
|
87
112
|
# @param targetElement [String, nil] the id of the only HTML element in the web page that should be used to extract tables from
|
88
113
|
# @param requestAs [Integer, 0] request the screenshot in different forms: Standard Browser = 0, Mobile Browser = 1, Search Engine = 2 and Fallback Browser = 3
|
89
114
|
# @param country [String, nil] request the screenshot from different countries: Default = "", UK = "UK", US = "US"
|
@@ -101,7 +126,7 @@ module GrabzIt
|
|
101
126
|
# Sets the parameters required to convert a web page into a PDF.
|
102
127
|
#
|
103
128
|
# @param url url [String] the URL that the should be converted into a pdf
|
104
|
-
# @param customId [String, nil] a custom identifier that you can pass through to the
|
129
|
+
# @param customId [String, nil] a custom identifier that you can pass through to the web service. This will be returned with the callback URL you have specified.
|
105
130
|
# @param includeBackground [Boolean, true] if true the background of the web page should be included in the screenshot
|
106
131
|
# @param pagesize [String, 'A4'] the page size of the PDF to be returned: 'A3', 'A4', 'A5', 'B3', 'B4', 'B5', 'Letter'.
|
107
132
|
# @param orientation [String, 'Portrait'] the orientation of the PDF to be returned: 'Landscape' or 'Portrait'
|
@@ -240,6 +265,10 @@ module GrabzIt
|
|
240
265
|
# @return [Object] returns the screenshot
|
241
266
|
# @raise [RuntimeError] if the GrabzIt service reports an error with the request it will be raised as a RuntimeError
|
242
267
|
def get_result(id)
|
268
|
+
if id == nil || id == ""
|
269
|
+
return nil
|
270
|
+
end
|
271
|
+
|
243
272
|
return get(WebServicesBaseURL + "getfile.ashx?id=" + nil_check(id))
|
244
273
|
end
|
245
274
|
|
@@ -344,7 +373,7 @@ module GrabzIt
|
|
344
373
|
|
345
374
|
boundary = '--------------------------'+Time.now.to_f.to_s
|
346
375
|
|
347
|
-
url =
|
376
|
+
url = "http://grabz.it/services/addwatermark.ashx"
|
348
377
|
uri = URI.parse(url)
|
349
378
|
|
350
379
|
file = File.open(path, "rb")
|
@@ -510,6 +539,16 @@ module GrabzIt
|
|
510
539
|
def nil_int_check(param)
|
511
540
|
return param.to_i.to_s
|
512
541
|
end
|
542
|
+
|
543
|
+
private
|
544
|
+
def nil_float_check(param)
|
545
|
+
val = param.to_f
|
546
|
+
if ((val % 1) == 0)
|
547
|
+
return val.to_i.to_s
|
548
|
+
end
|
549
|
+
|
550
|
+
return val.to_s
|
551
|
+
end
|
513
552
|
|
514
553
|
private
|
515
554
|
def check_for_exception(doc)
|
data/lib/grabzit/exception.rb
CHANGED
@@ -51,6 +51,15 @@ module GrabzIt
|
|
51
51
|
PARAMETER_MISSING_PARAMETERS = 143
|
52
52
|
PARAMETER_QUALITY_TOO_LARGE = 144
|
53
53
|
PARAMETER_QUALITY_TOO_SMALL = 145
|
54
|
+
PARAMETER_REPEAT_TOO_SMALL = 149
|
55
|
+
PARAMETER_INVALID_REVERSE = 150
|
56
|
+
PARAMETER_FPS_TOO_LARGE = 151
|
57
|
+
PARAMETER_FPS_TOO_SMALL = 152
|
58
|
+
PARAMETER_SPEED_TOO_FAST = 153
|
59
|
+
PARAMETER_SPEED_TOO_SLOW = 154
|
60
|
+
PARAMETER_INVALID_ANIMATION_COMBINATION = 155
|
61
|
+
PARAMETER_START_TOO_SMALL = 156
|
62
|
+
PARAMETER_DURATION_TOO_LARGE = 157
|
54
63
|
NETWORK_SERVER_OFFLINE = 200
|
55
64
|
NETWORK_GENERAL_ERROR = 201
|
56
65
|
NETWORK_DDOS_ATTACK = 202
|
data/test/test_grabzit.rb
CHANGED
@@ -9,10 +9,10 @@ class GrabzItTest < Test::Unit::TestCase
|
|
9
9
|
Screenshot_Path = "test/tmp.jpg"
|
10
10
|
|
11
11
|
def setup
|
12
|
-
@applicationKey = ""
|
13
|
-
@applicationSecret = ""
|
12
|
+
@applicationKey = "c3VwcG9ydEBncmFiei5pdA=="
|
13
|
+
@applicationSecret = "AD8/aT8/Pz8/Tz8/PwJ3Pz9sVSs/Pz8/Pz9DOzJodoi="
|
14
14
|
#Set to true if the account is subscribed
|
15
|
-
@isSubscribedAccount =
|
15
|
+
@isSubscribedAccount = true
|
16
16
|
end
|
17
17
|
|
18
18
|
def test_application_key
|
@@ -58,6 +58,14 @@ class GrabzItTest < Test::Unit::TestCase
|
|
58
58
|
File.delete(Screenshot_Path)
|
59
59
|
end
|
60
60
|
|
61
|
+
def test_save_animation
|
62
|
+
assert_nothing_raised "An error occured when trying to take a animation" do
|
63
|
+
grabzItClient = GrabzIt::Client.new(@applicationKey, @applicationSecret)
|
64
|
+
grabzItClient.set_animation_options("http://www.youtube.com");
|
65
|
+
assert_not_equal(false, grabzItClient.save(), "Animation not taken")
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
61
69
|
def test_save_to_bytes
|
62
70
|
assert_nothing_raised "An error occured when trying to take a image screenshot" do
|
63
71
|
grabzItClient = GrabzIt::Client.new(@applicationKey, @applicationSecret)
|
@@ -90,7 +98,9 @@ class GrabzItTest < Test::Unit::TestCase
|
|
90
98
|
grabzItClient.set_cookie(Cookie_Name, Cookie_Domain)
|
91
99
|
end
|
92
100
|
return
|
93
|
-
end
|
101
|
+
end
|
102
|
+
|
103
|
+
sleep(4)
|
94
104
|
|
95
105
|
assert(find_cookie(grabzItClient), "Set cookie has not been found!")
|
96
106
|
end
|
@@ -108,10 +118,14 @@ class GrabzItTest < Test::Unit::TestCase
|
|
108
118
|
return
|
109
119
|
end
|
110
120
|
|
121
|
+
sleep(4)
|
122
|
+
|
111
123
|
assert_equal(true, find_cookie(grabzItClient), "Test cookie not found!")
|
112
124
|
|
113
125
|
grabzItClient.delete_cookie(Cookie_Name, Cookie_Domain)
|
114
126
|
|
127
|
+
sleep(4)
|
128
|
+
|
115
129
|
assert_equal(false, find_cookie(grabzItClient), "Failed to delete cookie!")
|
116
130
|
end
|
117
131
|
end
|
@@ -133,10 +147,14 @@ class GrabzItTest < Test::Unit::TestCase
|
|
133
147
|
return
|
134
148
|
end
|
135
149
|
|
150
|
+
sleep(5)
|
151
|
+
|
136
152
|
assert_equal(true, find_watermark(grabzItClient), "Test watermark not found!")
|
137
153
|
|
138
154
|
grabzItClient.delete_watermark(WaterMark_Identifier)
|
139
155
|
|
156
|
+
sleep(5)
|
157
|
+
|
140
158
|
assert_equal(false, find_watermark(grabzItClient), "Failed to delete watermark!")
|
141
159
|
end
|
142
160
|
end
|
@@ -155,7 +173,9 @@ class GrabzItTest < Test::Unit::TestCase
|
|
155
173
|
grabzItClient.add_watermark(WaterMark_Identifier, WaterMark_Path, 2, 2)
|
156
174
|
end
|
157
175
|
return
|
158
|
-
end
|
176
|
+
end
|
177
|
+
|
178
|
+
sleep(4)
|
159
179
|
|
160
180
|
assert(find_watermark(grabzItClient), "Set watermark has not been found!")
|
161
181
|
end
|
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: 2.
|
4
|
+
version: 2.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- GrabzIt
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-09-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -26,7 +26,8 @@ dependencies:
|
|
26
26
|
version: '0'
|
27
27
|
description: 'Automatically create screenshots of website for free, with GrabzIt.
|
28
28
|
Screenshots can be output in a variety of formats including: JPEG, PNG, TIFF, BMP,
|
29
|
-
PDF, CSV and XLSX.
|
29
|
+
PDF, CSV and XLSX. Additionally GrabzIt allows you to convert online videos into
|
30
|
+
animated GIF''s.'
|
30
31
|
email: support@grabz.it
|
31
32
|
executables: []
|
32
33
|
extensions: []
|