23 lines
804 B
Ruby
23 lines
804 B
Ruby
module RuCaptcha
|
|
class CaptchaController < ActionController::Base
|
|
def index
|
|
return head :ok if request.head?
|
|
headers['Cache-Control'] = 'no-cache, no-store, max-age=0, must-revalidate'
|
|
headers['Pragma'] = 'no-cache'
|
|
if params[:t].present? && (!params[:t].is_i? rescue true)
|
|
render :body => nil, :status => 404 and return
|
|
end
|
|
if params[:format] == "wav" and RuCaptcha.espeak?
|
|
data = generate_speech_rucaptcha
|
|
opts = { disposition: 'inline', type: 'audio/wav' }
|
|
elsif params[:format].blank? || params[:format] == "gif"
|
|
data = generate_rucaptcha
|
|
opts = { disposition: 'inline', type: 'image/gif' }
|
|
else
|
|
render :body => nil, :status => 404 and return
|
|
end
|
|
send_data data, opts
|
|
end
|
|
end
|
|
end
|