22 lines
814 B
Python
22 lines
814 B
Python
from datetime import datetime
|
|
|
|
from django.core.management.base import BaseCommand, CommandError
|
|
from django.utils.timezone import utc
|
|
|
|
from pastebin.models import Geometry
|
|
|
|
|
|
class Command(BaseCommand):
|
|
args = ''
|
|
help = 'Remove expired pastes and their files.'
|
|
|
|
def handle(self, *args, **options):
|
|
for expiration in [Geometry.HOUR, Geometry.DAY, Geometry.WEEK, Geometry.MONTH]:
|
|
expiration_time = datetime.utcnow().replace(tzinfo=utc) - Geometry.DELTAS[expiration]
|
|
for geometry in Geometry.objects.all().filter(expiration = expiration, date__lte = expiration_time):
|
|
self.stdout.write("Expiring geometry: %s" % geometry.name)
|
|
geometry.file.delete()
|
|
if geometry.sourcefile :
|
|
geometry.sourcefile.delete()
|
|
geometry.delete()
|
|
self.stdout.write("done") |