Yandex Cleanweb
Ruby wrapper for Yandex Cleanweb spam detector.
Unfortunatelly, this gem is not capable with MRI 1.8.7 because of MRI 1.8.7 doesn't have URI.encode_www_form
method.
Installation
Add this line to your application's Gemfile:
gem 'yandex_cleanweb', '~> 0.0.5'
And then execute:
$ bundle
Or install it yourself as:
$ gem install yandex_cleanweb
Usage
Get the api key: http://api.yandex.ru/cleanweb/getkey.xml
YandexCleanweb.api_key = "your_key"
YandexCleanweb.spam?("just phrase")
=> false
YandexCleanweb.spam?(body_plain: "my text", ip: "80.80.40.3")
=> false
YandexCleanweb.spam?(body_html: "some spam <a href='http://spam.com'>spam link</a>")
=> { id: "request id", links: [ ['http://spam.com', true] ] }
Tell Cleanweb API that message is spam:
YandexCleanweb.api_key = "your_key"
YandexCleanweb.spam!("some spam here")
YandexCleanweb.spam!(body_html: "some spam <a href='http://spam.com'>spam link</a>")
More complex example:
user_input = "download free porn <a>...</a>"
if spam_check = YandexCleanweb.spam?(user_input, ip: current_user.ip)
captcha = YandexCleanweb.get_captcha(spam_check[:id])
# now you can show captcha[:url] to user
# but remember to write captcha[:captcha] to session
# to check is captcha enterred by user is valid:
captcha_valid = YandexCleanweb.valid_captcha?(result[:id], captcha[:captcha], user_captcha)
end
If you use Yandex Cleanweb in Rails app, we recommend to set up the api key in config/initializers/yandex_cleanweb.rb
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request