Skip to content
Snippets Groups Projects
create_actors.py 838 B
Newer Older
  • Learn to ignore specific revisions
  • """
    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("{} users found without actors".format(total))
        for i, user in enumerate(qs):
            command.stdout.write(
                "{}/{} creating actor for {}".format(i + 1, total, 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("Error while creating actor: {}".format(str(e)))
                continue
            user.save(update_fields=["actor"])