🚀 Auto-deploy: BotVPS atualizado em 29/03/2026 15:14:26
This commit is contained in:
46
tools.py
46
tools.py
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user