O que tgcli (Interface de Linha de Comando para Telegram) faz?
Fornece uma interface de linha de comando para sincronizar, pesquisar e enviar mensagens do Telegram com armazenamento local e saída JSON para testes automatizados.
Principais Funcionalidades
- Sincronização: Baixa mensagens do Telegram para armazenamento local, permitindo acesso offline e histórico.
- Pesquisa: Busca mensagens por palavras-chave, termos exatos ou intervalos de datas.
- Envio: Envia mensagens de texto, imagens ou arquivos para chats ou canais do Telegram.
- Saída JSON: Todas as operações podem ser exibidas em formato JSON, ideal para processamento em scripts ou ferramentas de automação.
- Armazenamento Local: Mensagens são armazenadas em um banco de dados local (SQLite), facilitando consultas posteriores sem depender da API do Telegram.
Como Usar
-
Configuração: Crie um bot no Telegram via BotFather e obtenha o token. Em seguida, configure um arquivo
.envou use variáveis de ambiente:echo "BOT_TOKEN=seu_token_aqui" > .env -
Comandos Básicos:
-
Sincronizar mensagens de um chat:
tgcli sync --chat-id @exemplo_chat -
Pesquisar mensagens por palavra-chave:
tgcli search --query "palavra-chave" --output json -
Enviar uma mensagem:
tgcli send --chat-id @exemplo_chat --text "Olá, mundo!"
-
-
Opções Avançadas:
- Definir intervalo de datas para sincronização:
tgcli sync --from "2023-01-01" --to "2023-12-31" - Filtrar mensagens por tipo (texto, imagem, documento):
tgcli search --type text - Usar saída formatada (JSON ou texto):
--output jsonou--output text
- Definir intervalo de datas para sincronização:
Requisitos
- Python 3.8 ou superior
- Token de bot do Telegram
- Conexão com internet (apenas para sincronização inicial)
Exemplos de Uso em Automação
# Sincronizar mensagens de um grupo e salvar em JSON
./tgcli sync --chat-id @meu_grupo --output json > mensagens.json
# Enviar resultado de teste
./tgcli send --chat-id @meu_grupo --text "Teste concluído com sucesso."
# Pesquisar mensagens do mês passado
tgcli search --from "2023-11-01" --to "2023-11-30" --order asc
Contribuição
Sinta-se à vontade para abrir issues ou pull requests no repositório oficial. Sugestões de melhoria são bem-vindas!
Licença
Distribuído sob a licença MIT. Veja o arquivo LICENSE para mais informações.