expireuserdatadownloads.py 798 B

1234567891011121314151617181920212223
  1. from django.core.management.base import BaseCommand
  2. from django.utils import timezone
  3. from misago.core.pgutils import chunk_queryset
  4. from misago.users.datadownloads import expire_user_data_download
  5. from misago.users.models import DataDownload
  6. class Command(BaseCommand):
  7. help = "Expires old user data downloads."
  8. def handle(self, *args, **options):
  9. downloads_expired = 0
  10. queryset = DataDownload.objects.select_related("user")
  11. queryset = queryset.filter(
  12. status=DataDownload.STATUS_READY, expires_on__lte=timezone.now()
  13. )
  14. for data_download in chunk_queryset(queryset):
  15. expire_user_data_download(data_download)
  16. downloads_expired += 1
  17. self.stdout.write("Data downloads expired: %s" % downloads_expired)