short 0.3.1 → 0.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/bin/short +6 -2
- data/lib/shortener/server.rb +11 -5
- data/lib/shortener/version.rb +1 -1
- metadata +10 -10
data/bin/short
CHANGED
@@ -35,14 +35,18 @@ def fetch(url)
|
|
35
35
|
url = url[-6..-1]
|
36
36
|
end
|
37
37
|
fetched = Shortener::Client.new.fetch(url)
|
38
|
-
|
38
|
+
unless fetched['success'] == false
|
39
|
+
puts <<-EOF
|
39
40
|
short => #{fetched['shortened']}
|
40
41
|
url => #{fetched['url']}
|
41
42
|
set-count => #{fetched['set-count']}
|
42
43
|
click-count => #{fetched['click-count']}
|
43
44
|
expired => #{fetched['expired']}
|
44
45
|
maxed => #{fetched['maxed']}
|
45
|
-
EOF
|
46
|
+
EOF
|
47
|
+
else
|
48
|
+
puts fetched['message']
|
49
|
+
end
|
46
50
|
end
|
47
51
|
|
48
52
|
def delete(short)
|
data/lib/shortener/server.rb
CHANGED
@@ -280,21 +280,29 @@ class Shortener
|
|
280
280
|
end
|
281
281
|
|
282
282
|
#get '/:id.?:format?' do
|
283
|
-
get %r{\/([a-z0-9]{
|
283
|
+
get %r{\/([a-z0-9]{3,})(\.[a-z]{3,}){0,1}}i do
|
284
284
|
id = params[:captures].first
|
285
285
|
sha = $redis.get(id)
|
286
|
-
|
286
|
+
if sha.nil?
|
287
|
+
if (params[:captures].last == '.json')
|
288
|
+
content_type :json
|
289
|
+
{success: false, message: 'Short not found'}.to_json
|
290
|
+
else
|
291
|
+
puts "redirecting to default url"
|
292
|
+
redirect $default_url
|
293
|
+
end
|
294
|
+
else
|
287
295
|
key = "data:#{sha}:#{id}"
|
288
296
|
short = $redis.hgetall(key)
|
289
297
|
not_expired = short.has_key?('expire') ? $redis.get(short['expire']) : true
|
290
298
|
not_maxed = !(short['click-count'].to_i >= short['max-clicks'].to_i)
|
291
299
|
short.has_key?('max-clicks') ? not_maxed : not_maxed = true
|
292
|
-
$redis.hincrby(key, 'click-count', 1) if not_expired && not_maxed
|
293
300
|
if params[:captures].last == '.json'
|
294
301
|
ret = short.merge({expired: not_expired.nil? , maxed: !not_maxed})
|
295
302
|
content_type :json
|
296
303
|
return ret.to_json
|
297
304
|
else
|
305
|
+
$redis.hincrby(key, 'click-count', 1) if not_expired && not_maxed
|
298
306
|
if not_expired
|
299
307
|
unless short['s3'] == 'true' && !(short['type'] == 'download')
|
300
308
|
if not_maxed
|
@@ -309,8 +317,6 @@ class Shortener
|
|
309
317
|
end # => expired check
|
310
318
|
end # => format
|
311
319
|
end
|
312
|
-
puts "redirecting to default url"
|
313
|
-
redirect $default_url
|
314
320
|
end
|
315
321
|
|
316
322
|
post '/upload.?:format?' do |format|
|
data/lib/shortener/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: short
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-12-
|
12
|
+
date: 2011-12-25 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: sinatra
|
16
|
-
requirement: &
|
16
|
+
requirement: &70253057029640 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70253057029640
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: redis-namespace
|
27
|
-
requirement: &
|
27
|
+
requirement: &70253057028820 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70253057028820
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: haml
|
38
|
-
requirement: &
|
38
|
+
requirement: &70253057027960 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70253057027960
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: turn
|
49
|
-
requirement: &
|
49
|
+
requirement: &70253057023180 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,7 +54,7 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70253057023180
|
58
58
|
description: A (hopefully) easy and handy deployable APIable way to shorten links.
|
59
59
|
email:
|
60
60
|
- jake@jakewilkins.com
|