from django.core.management.base import BaseCommand
from captcha.models import get_safe_now
import sys


class Command(BaseCommand):
    help = "Clean up expired captcha hashkeys."

    def handle(self, **options):
        from captcha.models import CaptchaStore
        verbose = int(options.get('verbosity'))
        expired_keys = CaptchaStore.objects.filter(expiration__lte=get_safe_now()).count()
        if verbose >= 1:
            print("Currently %d expired hashkeys" % expired_keys)
        try:
            CaptchaStore.remove_expired()
        except:
            if verbose >= 1:
                print("Unable to delete expired hashkeys.")
            sys.exit(1)
        if verbose >= 1:
            if expired_keys > 0:
                print("%d expired hashkeys removed." % expired_keys)
            else:
                print("No keys to remove.")
