funkwhale/api/funkwhale_api/common/scripts/create_actors.py

22 wiersze
788 B
Python

"""
Compute different sizes of image used for Album covers and User avatars
"""
from django.db.utils import IntegrityError
from funkwhale_api.users.models import User, create_actor
def main(command, **kwargs):
qs = User.objects.filter(actor__isnull=True).order_by("username")
total = len(qs)
command.stdout.write(f"{total} users found without actors")
for i, user in enumerate(qs):
command.stdout.write(f"{i + 1}/{total} creating actor for {user.username}")
try:
user.actor = create_actor(user)
except IntegrityError as e:
# somehow, an actor with the the url exists in the database
command.stderr.write(f"Error while creating actor: {str(e)}")
continue
user.save(update_fields=["actor"])