import gradio as gr import webbrowser import time import os from utils.file_manager import setup_directories from utils.drive_handler import GoogleDriveHandler from utils.video_processor import VideoProcessor setup_directories() #configura os diretórios necessários downloader = GoogleDriveHandler() #Carrega funções para lidar com o googleDrive video_processor = VideoProcessor(downloader) #Funçaão para direcionar a página de login do google e realizar a autenticação def autenticar_google(): auth_url = downloader.autenticar() webbrowser.open(auth_url) return "🔑 Por favor, autentique-se no Google para acessar o Drive." # Função para autenticar e abrir o link do Gradio automaticamente def autenticar_e_abrir_link(): time.sleep(3) link_gradio = "http://localhost:7860" webbrowser.open(link_gradio) print(f"O link Gradio foi aberto automaticamente: {link_gradio}") with gr.Blocks() as app: gr.Markdown("# 🎥 Processador de Reuniões do Google Meet") autenticar_btn = gr.Button("Login com Google") auth_output = gr.Markdown() autenticar_btn.click(fn=autenticar_google, outputs=[auth_output]) gr.Markdown("Selecionar vídeos do Google Drive") pastas_dropdown = gr.Dropdown(label="Selecione uma pasta") listar_pastas_btn = gr.Button("🔄 Atualizar Pastas") videos_checklist = gr.CheckboxGroup(label="Selecione os vídeos") listar_videos_btn = gr.Button("📋 Listar Vídeos") gr.Markdown("Fazer upload de vídeo") upload_video = gr.File(label="Selecione um video", type="filepath") # Adicionando checkboxes para definir o tipo de análise da IA gr.Markdown("### ⚙️ Escolha como deseja processar os vídeos:") modo_processamento = gr.Radio( choices=["Consultor de Negócios (Recomendar Benefícios)", "Resumir Reunião (Gerar Resumo)", "Gerar Resumo em Excel"], label="Selecione um modo de processamento", type="value" ) processar_btn = gr.Button("▶️ Processar") resultado_output = gr.Markdown() download_btn = gr.File(label="Baixar resultado") listar_pastas_btn.click(fn=downloader.list_folders, outputs=[pastas_dropdown]) listar_videos_btn.click(fn=downloader.list_videos, inputs=[pastas_dropdown], outputs=[videos_checklist]) processar_btn.click( fn=video_processor.processar_videos, inputs=[pastas_dropdown, videos_checklist, upload_video, modo_processamento], outputs=[resultado_output, download_btn] ) autenticar_e_abrir_link() app.launch(share=True)