diff --git a/marietje/marietje/management/commands/old_users.py b/marietje/marietje/management/commands/old_users.py index ad3fa8d..142403b 100644 --- a/marietje/marietje/management/commands/old_users.py +++ b/marietje/marietje/management/commands/old_users.py @@ -6,6 +6,9 @@ from django.conf import settings from django.db.models import Q from django.utils.timezone import get_default_timezone +from queues.models import PlaylistSong +from songs.models import Song + _IMPORTANT_USERNAMES = ['root', 'admin', 'postmaster', 'dsprenkels', 'gmulder', 'bwesterb'] class Command(BaseCommand): @@ -57,10 +60,19 @@ class Command(BaseCommand): deleted = 0 for i, user in enumerate(users): print("[{: 4.0f}% ] {}".format(100 * i / len(users), user)) + if user.username in _IMPORTANT_USERNAMES: self.stdout.write(self.style.WARNING("Not deleting user '{}': username looks important".format(user))) continue + if Song.objects.filter(deleted=False, user=user).count() > 500: + self.stdout.write(self.style.WARNING("Not deleting user '{}': has high upload score".format(user))) + continue + + if PlaylistSong.objects.filter(user=user).count() > 1000: + self.stdout.write(self.style.WARNING("Not deleting user '{}': has high queue score".format(user))) + continue + user.delete() deleted += 1 self.stdout.write(self.style.SUCCESS("Deleted {} users".format(deleted)))