from django.core.management.base import BaseCommand from core.models import GameProject from core.views import generate_game_script from core.pexels import fetch_first import time class Command(BaseCommand): help = 'Ativa todos os jogos, gera scripts de IA (com história e correção) e capas automaticamente para todo o catálogo.' def add_arguments(self, parser): parser.add_argument( '--force', action='store_true', help='Força a re-geração de todos os scripts, mesmo que já existam.', ) def handle(self, *args, **options): force = options['force'] games = GameProject.objects.all() self.stdout.write(f"Iniciando processamento de {games.count()} jogos (Force={force})...") for game in games: self.stdout.write(f"Processando: {game.title}...") # 1. Ativar o jogo game.is_active = True # 2. Gerar script se estiver vazio, for placeholder ou se force for True needs_script = force or not game.script_code or len(game.script_code) < 500 if needs_script: if not game.external_url: self.stdout.write(f" -> Gerando script de IA Autônomo para {game.title}...") script = generate_game_script(game.title, game.prompt, game.genre) if script: game.script_code = script self.stdout.write(self.style.SUCCESS(f" -> Script gerado com sucesso.")) else: self.stdout.write(self.style.ERROR(f" -> Falha ao gerar script para {game.title}")) else: self.stdout.write(f" -> Jogo possui URL externa, pulando geração de script.") # 3. Gerar Capa se não tiver if not game.image_reference: self.stdout.write(f" -> Buscando capa no Pexels para {game.title}...") pexels_data = fetch_first(f"{game.title} game background") if pexels_data: game.image_reference = pexels_data['local_path'].replace('media/', '') self.stdout.write(self.style.SUCCESS(f" -> Capa encontrada e salva.")) else: self.stdout.write(self.style.WARNING(f" -> Capa não encontrada para {game.title}")) game.save() self.stdout.write(self.style.SUCCESS(f" -> {game.title} ATUALIZADO E ATIVO!")) # Pequena pausa para evitar sobrecarga na API de IA/Pexels time.sleep(2) self.stdout.write(self.style.SUCCESS("Processamento concluído! Todos os jogos estão online e atualizados com IA Autônoma."))