🚀 Auto-deploy: BotVPS atualizado em 29/03/2026 15:14:26

This commit is contained in:
2026-03-29 15:14:26 +00:00
parent 6306424b83
commit f7c2c354ed

View File

@@ -189,6 +189,44 @@ def list_gmail_emails(account: str) -> str:
except Exception as e:
return f"Erro ao listar e-mails: {str(e)}\nResposta bruta: {res[:200]}"
def gmail_manage_label(arg: str) -> str:
"""Cria ou busca marcadores (labels). Arg: account name (ex: adm alibaba)"""
try:
parts = arg.split(maxsplit=1)
account = parts[0]
label_name = parts[1] if len(parts) > 1 else ""
if not label_name: return "Erro: Nome do marcador não fornecido."
mapping = {"ma": "gws-mr", "mr": "gws-mr", "adm": "gws-adm", "4r": "gws-4r"}
account = mapping.get(account.lower(), account)
# Tenta criar o marcador
cmd = f"{account} gmail users labels create --json '{{\"name\": \"{label_name}\", \"labelListVisibility\": \"labelShow\", \"messageListVisibility\": \"show\"}}'"
return run_bash_command(cmd)
except Exception as e: return f"Erro ao gerenciar marcador: {str(e)}"
def gmail_manage_filter(arg: str) -> str:
"""Cria um filtro para e-mails. Arg: account subject_or_from label_name (ex: adm alibaba alibaba)"""
try:
parts = arg.split(maxsplit=2)
if len(parts) < 3: return "Erro: Use 'conta termo marcador'. Ex: adm alibaba alibaba"
account, criteria, label_id = parts[0], parts[1], parts[2]
mapping = {"ma": "gws-mr", "mr": "gws-mr", "adm": "gws-adm", "4r": "gws-4r"}
account = mapping.get(account.lower(), account)
# Tenta criar o filtro (exemplo: assunto contém o critério ou de quem vem)
# Primeiro, buscamos se o marcador existe para pegar o ID?
# Na verdade no Gmail API você pode usar o nome do marcador se for por --json direto.
# Mas gws gmail users settings filters create requer um Filter object.
filter_obj = {
"criteria": {"from": criteria}, # Simplificado: busca pelo remetente
"action": {"addLabelIds": [label_id]}
}
cmd = f"{account} gmail users settings filters create --json '{json.dumps(filter_obj)}'"
return run_bash_command(cmd)
except Exception as e: return f"Erro ao gerenciar filtro: {str(e)}"
def drive_find(arg: str) -> str:
"""Busca arquivos no Drive por nome. Arg: account query (ex: ma financeiro)"""
try:
@@ -281,5 +319,13 @@ AVAILABLE_TOOLS = {
"cronos_query": {
"description": "Busca informações no histórico da Memória Cronos.",
"func": cronos_query
},
"gmail_manage_label": {
"description": "Cria um novo marcador (Label) no Gmail. Ex: gmail_manage_label adm alibaba",
"func": gmail_manage_label
},
"gmail_manage_filter": {
"description": "Cria um filtro automático no Gmail. Ex: gmail_manage_filter adm @alibaba.com Alibaba",
"func": gmail_manage_filter
}
}