Addresses bug in cleanup_snippets script related to non-integer values for EXPIRE_DEFAULT (#192)

See https://github.com/DarrenOfficial/dpaste/issues/191

Co-authored-by: Darren <github@darrennathanael.com>
This commit is contained in:
Florian Cech 2022-03-22 23:30:24 +01:00 committed by GitHub
parent d56fd5cfa8
commit 7a64572cc1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -21,24 +21,25 @@ class Command(BaseCommand):
), ),
def handle(self, *args, **options): def handle(self, *args, **options):
deleteable_snippets = ( # Snippets which are expired but haven't been deleted by
# Snippets which are expired but haven't been deleted by # the view.
# the view. deleteable_snippets = Snippet.objects.filter(
Snippet.objects.filter(
expires__isnull=False, expires__isnull=False,
expire_type=Snippet.EXPIRE_TIME, expire_type=Snippet.EXPIRE_TIME,
expires__lte=timezone.now(), expires__lte=timezone.now(),
) )
# Snipoets which are Onetime snippets but have never been viewed
# the second time. Delete them if they are older than our default # Snipets which are Onetime snippets but have never been viewed
# expiration. # the second time. Delete them if they are older than our default
| Snippet.objects.filter( # expiration, unless that default is not an integer (e.g., 'never')
expire_type=Snippet.EXPIRE_ONETIME, if isinstance(config.EXPIRE_DEFAULT, int):
published__lte=( onetime_unviewed_snippets = Snippet.objects.filter(
timezone.now() - timedelta(seconds=config.EXPIRE_DEFAULT) expire_type=Snippet.EXPIRE_ONETIME,
), published__lte=(
) timezone.now() - timedelta(seconds=config.EXPIRE_DEFAULT)
) ),
)
deleteable_snippets = (expired_snippets | onetime_unviewed_snippets)
if len(deleteable_snippets) == 0: if len(deleteable_snippets) == 0:
self.stdout.write(u"No snippets to delete.") self.stdout.write(u"No snippets to delete.")