catptcha 0.0.4 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.markdown +8 -1
- data/lib/catptcha/photo_group.rb +1 -0
- data/lib/catptcha.rb +17 -5
- metadata +4 -4
data/README.markdown
CHANGED
@@ -5,7 +5,8 @@ asked to click the kittens. Distributed in the form of a Rails 2.3 plugin.
|
|
5
5
|
|
6
6
|
This is based on a concept from [KittenAuth](http://thepcspy.com/kittenauth/).
|
7
7
|
|
8
|
-
This is still experimental and incomplete
|
8
|
+
This is still experimental and incomplete, but it's ready for others to try
|
9
|
+
out and offer help/feedback.
|
9
10
|
|
10
11
|
## Installation
|
11
12
|
|
@@ -46,6 +47,12 @@ Check the result in your controller.
|
|
46
47
|
# failed
|
47
48
|
end
|
48
49
|
|
50
|
+
## TODO and Known Bugs
|
51
|
+
|
52
|
+
* lacks a review step for seeded photos
|
53
|
+
* lacks the ability to store or upload photos to external storage
|
54
|
+
* current implementation is closely tied to ActiveRecord and Flickr
|
55
|
+
|
49
56
|
## Author
|
50
57
|
|
51
58
|
Copyright (c) 2012 ENTP, released under the MIT license
|
data/lib/catptcha/photo_group.rb
CHANGED
@@ -18,6 +18,7 @@ class Catptcha::PhotoGroup < ActiveRecord::Base
|
|
18
18
|
def self.random count
|
19
19
|
Catptcha::Photo.all(
|
20
20
|
:conditions => ['photo_group_id in (?)', all.map(&:id)],
|
21
|
+
:order => 'catptcha_photos.key ASC',
|
21
22
|
:offset => rand(photos_count-count).to_i,
|
22
23
|
:limit => count
|
23
24
|
)
|
data/lib/catptcha.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
module Catptcha
|
2
|
-
VERSION = '0.0
|
2
|
+
VERSION = '0.1.0'
|
3
3
|
|
4
4
|
class << self
|
5
5
|
# Get a list of 3 kitten photos
|
@@ -16,19 +16,31 @@ module Catptcha
|
|
16
16
|
(kittens + not_kittens).sort_by {rand}
|
17
17
|
end
|
18
18
|
|
19
|
+
def puzzle_js
|
20
|
+
return <<-EOJS
|
21
|
+
function catptcha_click(e) {
|
22
|
+
if (e.checked) {
|
23
|
+
e.parentNode.getElementsByTagName('img')[0].setAttribute("style","border: 2px inset black;");
|
24
|
+
} else {
|
25
|
+
e.parentNode.getElementsByTagName('img')[0].setAttribute("style", "padding: 2px");
|
26
|
+
}
|
27
|
+
}
|
28
|
+
EOJS
|
29
|
+
end
|
19
30
|
def puzzle_tags
|
20
|
-
tags = '<div class="catptcha" style="width:
|
31
|
+
tags = '<div class="catptcha" style="width:340px"><p>Click the 3 kittens!</p>'
|
21
32
|
puzzle.each do |photo|
|
22
33
|
tags << <<-EOT
|
23
34
|
<span class="catptcha_guess" style="float:left">
|
24
|
-
<input type="checkbox" id="catptcha_guess_#{photo.key}" name="catptcha_guess[]" value="#{ photo.key }" />
|
25
|
-
<label for="catptcha_guess_#{photo.key }">
|
26
|
-
<img src="#{ photo.url }" />
|
35
|
+
<input type="checkbox" id="catptcha_guess_#{photo.key}" name="catptcha_guess[]" value="#{ photo.key }" onclick="catptcha_click(this)" style="opacity:0.0;width:0px;"/>
|
36
|
+
<label for="catptcha_guess_#{photo.key }" style="margin:2px">
|
37
|
+
<img src="#{ photo.url }" style="padding: 2px" />
|
27
38
|
</label>
|
28
39
|
</span>
|
29
40
|
EOT
|
30
41
|
end
|
31
42
|
tags << '</div>'
|
43
|
+
tags << "<script>#{puzzle_js}</script>"
|
32
44
|
tags
|
33
45
|
end
|
34
46
|
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: catptcha
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 27
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
+
- 1
|
8
9
|
- 0
|
9
|
-
|
10
|
-
version: 0.0.4
|
10
|
+
version: 0.1.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Zack Hobson
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2012-05-
|
18
|
+
date: 2012-05-18 00:00:00 -07:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|