""" Generate preview images """ import sys from django.core.management.base import BaseCommand from bookwyrm import activitystreams, models, settings, preview_images class Command(BaseCommand): help = "Generate preview images" def add_arguments(self, parser): parser.add_argument('--all', '-a', action="store_true", help="Generates images for ALL types: site, users and books. Can use a lot of computing power.") # pylint: disable=no-self-use,unused-argument def handle(self, *args, **options): """generate preview images""" self.stdout.write(" | Hello! I will be generating preview images for your instance.") if options['all']: self.stdout.write( "šŸ§‘ā€šŸŽØ āŽØ This might take quite long if your instance has a lot of books and users." ) self.stdout.write(" | āœ§ Thank you for your patience āœ§") else: self.stdout.write( "šŸ§‘ā€šŸŽØ āŽØ I will only generate the instance preview image." ) self.stdout.write(" | āœ§ Be right back! āœ§") # Site self.stdout.write(" ā†’ Site preview image: ", ending='') preview_images.generate_site_preview_image_task.delay() self.stdout.write(" OK šŸ–¼") if options['all']: # Users users = models.User.objects.filter( local=True, is_active=True, ) self.stdout.write(" ā†’ User preview images ({}): ".format(len(users)), ending='') for user in users: preview_images.generate_user_preview_image_task.delay(user.id) self.stdout.write(".", ending='') self.stdout.write(" OK šŸ–¼") # Books books = models.Book.objects.select_subclasses().filter() self.stdout.write(" ā†’ Book preview images ({}): ".format(len(books)), ending='') for book in books: preview_images.generate_edition_preview_image_task.delay(book.id) self.stdout.write(".", ending='') self.stdout.write(" OK šŸ–¼") self.stdout.write("šŸ§‘ā€šŸŽØ āŽØ Iā€™m all done! āœ§ Enjoy āœ§")