Files
danbooru/app/logical/api_limiter.rb
2014-06-01 13:39:19 -04:00

16 lines
466 B
Ruby

module ApiLimiter
def throttled?(ip_addr)
key = "#{ip_addr}:#{Time.now.hour}"
MEMCACHE.fetch(key, 1.hour, :raw => true) {0}
MEMCACHE.incr(key).to_i > CurrentUser.user.api_hourly_limit
end
def remaining_hourly_limit(ip_addr)
key = "#{ip_addr}:#{Time.now.hour}"
requests = MEMCACHE.fetch(key, 1.hour, :raw => true) {0}.to_i
CurrentUser.user.api_hourly_limit - requests
end
module_function :throttled?, :remaining_hourly_limit
end