Spaces:
Build error
Build error
File size: 1,927 Bytes
c62ee22 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | """
Classe que será declarada no arquivo main.py para lidar com a autenticação do google e suas além de se adaptar com o Gradio
"""
from conversor.converter import GoogleDriveDownload
import gradio as gr
class GoogleDriveHandler:
def __init__(self):
self.downloader = None #Iniciando sem credenciais
def autenticar(self):
self.downloader = GoogleDriveDownload()
return "Google Drive autenticado com sucesso!"
def list_folders(self):
#Tenta autenticar no google drive
if not self.downloader:
return ["❌ Você precisa autenticar primeiro!"]
pastas = self.downloader.list_folders()
if not pastas:
return gr.Dropdown(choices=["Nenhuma pasta encontrada"], value="Nenhuma pasta encontrada")
return gr.Dropdown(choices=list(pastas.keys()), value=list(pastas.keys())[0])
def list_videos(self, pasta_selecionada):
#Tenta autenticar no google drive
if not self.downloader:
return ["❌ Você precisa autenticar primeiro!"]
pastas = self.downloader.list_folders()
pasta_id = pastas.get(pasta_selecionada)
if not pasta_id:
return ["Nenhuma pasta selecionada"]
videos = self.downloader.list_videos(pasta_id) #Lista os videos da pasta selecionada do drive
if not isinstance(videos, list):
return ["Erro ao carregar vídeos"]
video_nomes = []
for video in videos:
if isinstance(video, dict) and "name" in video:
video_nomes.append(video["name"])
else:
print(f"Vídeo ignorado: {video}") # Log para vídeos não processados
if not video_nomes:
return ["Nenhum vídeo encontrado"]
return gr.CheckboxGroup(choices=video_nomes) |