1234567891011121314151617181920212223242526272829303132 |
- # -*- coding: utf-8 -*-
- from __future__ import unicode_literals
-
- from datetime import timedelta
-
- from django.conf import settings
- from django.utils import timezone
-
- try:
- from django.core.management.base import BaseCommand
- except ImportError:
- from django.core.management.base import NoArgsCommand as BaseCommand
-
- from hitcount.models import Hit
-
-
- class Command(BaseCommand):
- help = "Can be run as a cronjob or directly to clean out old Hits objects from the database."
-
- def __init__(self, *args, **kwargs):
- super(Command, self).__init__(*args, **kwargs)
-
- def handle(self, *args, **kwargs):
- self.handle_noargs()
-
- def handle_noargs(self, **options):
- grace = getattr(settings, 'HITCOUNT_KEEP_HIT_IN_DATABASE', {'days': 30})
- period = timezone.now() - timedelta(**grace)
- qs = Hit.objects.filter(created__lt=period)
- number_removed = qs.count()
- qs.delete()
- self.stdout.write('Successfully removed %s Hits' % number_removed)
|