0.01
Repository is archived
No commit activity in last 3 years
No release in over 3 years
Ruby wrapper for Yandex.Cleanweb
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

Runtime

 Project Readme

PLEASE NOTE, THIS PROJECT IS NO LONGER BEING MAINTAINED

Yandex Cleanweb

Build Status

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.

Sponsored by Evrone

Getting Started

Installation

Add this line to your application's Gemfile:

gem 'yandex_cleanweb', '~> 0.0.7'

And then execute:

$ bundle

Or install it yourself as:

$ gem install yandex_cleanweb

Usage

Get the api key: https://tech.yandex.ru/keys/get/?service=cw

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

Please read Code of Conduct and Contributing Guidelines for submitting pull requests to us.

Authors

See also the list of contributors who participated in this project.

License

This project is licensed under the MIT License.