ConsultorIA / utils /drive_handler.py
ViniciusBarros21's picture
Upload folder using huggingface_hub
c62ee22 verified
Raw
History Blame Contribute Delete
1.93 kB
"""
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)