The code powering m.abunchtell.com https://m.abunchtell.com
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.
 
 
 
 

20 řádky
559 B

  1. class Rack::Attack
  2. # Rate limits for the API
  3. throttle('api', limit: 150, period: 5.minutes) do |req|
  4. req.ip if req.path.match(/\A\/api\//)
  5. end
  6. self.throttled_response = lambda do |env|
  7. now = Time.now.utc
  8. match_data = env['rack.attack.match_data']
  9. headers = {
  10. 'X-RateLimit-Limit' => match_data[:limit].to_s,
  11. 'X-RateLimit-Remaining' => '0',
  12. 'X-RateLimit-Reset' => (now + (match_data[:period] - now.to_i % match_data[:period])).to_s
  13. }
  14. [429, headers, [{ error: 'Throttled' }.to_json]]
  15. end
  16. end