tildetown-admin/ttadmin/common/throttling.py

15 lines
456 B
Python

from datetime import datetime, timedelta
from django.core.exceptions import ValidationError
def throttler(cache):
def throttle(key):
nonlocal cache
last_submission = cache.get(key)
if last_submission is None\
or now - last_submission > timedelta(minutes=30):
cache[key] = now
else:
raise ValidationError('you have submitted pretty recently. try again in a bit.')
return throttle