Skip to content
forked from vysheng/tg

O TeleTerm é o sucessor espiritual do Telegram CLI. O Telegram CLI é uma interface de linha de comando (CLI) oficial não oficial para o Telegram, conhecida como "tg". Ele permite que usuários Linux interajam com o serviço de mensagens do Telegram diretamente pelo terminal, sem a necessidade de uma interface gráfica (GUI).

License

Notifications You must be signed in to change notification settings

KhrissRock/teleterm

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TeleTerm

Primeiro, sobre a questão do nome e menções. Você está absolutamente correto. Para evitar problemas, podemos usar uma abordagem descritiva e clara:


  • Nome do Projeto: GramCLI, Termogram, TeleTerm, ou algo que remeta à ideia ("gram" = telegram, "CLI" = linha de comando, "Term" = terminal) sem usar a marca registrada "Telegram" diretamente.
  • Descrição: Use termos como "cliente de terminal para a plataforma de mensagens Telegram" ou "cliente não-oficial de linha de comando para a API do Telegram". Isso faz a menção necessária para que todos entendam do que se trata, sem infringir marcas.

Recomendação de Linguagem

Baseado nos seus requisitos (moderna, estável, comunidade ativa, leve, fácil manutenção/adação/documentação), minha forte recomendação é Go (Golang).

  • Por quê?
    1. Binário Único e Multiplataforma: Go compila para um único binário estático, sem dependências externas. Isso é PERFEITO para seu projeto. Um comando de compilação gera binários nativos para Linux (amd64, arm, arch), macOS, Android (via terminal), etc.
    2. Desempenho e Leveza: Binários nativos são extremamente rápidos e consomem poucos recursos, ideal para usuários de terminal.
    3. Concorrência Facilidade: A API do Telegram é baseada em eventos (novas mensagens, etc.). A concorrência primitiva do Go (goroutines e channels) é a melhor ferramenta para lidar com isso de forma elegante e eficiente.
    4. Comunidade Ativa e Ecossistema: Go tem uma comunidade enorme e ativa, com bibliotecas de alta qualidade para quase tudo, incluindo APIs do Telegram.
    5. Facilidade de Manutenção e Documentação: A sintaxe de Go é minimalista e direta. O código é fácil de ler, manter e documentar. A ferramentagem (go fmt, go doc) é excelente.
    6. Estabilidade: A linguagem e sua biblioteca padrão são muito estáveis, garantindo que seu projeto não quebre com atualizações.

Alternativa Consistente: Rust. Também gera binários eficientes e é excelente, mas a curva de aprendizado é mais acentuada e o foco em segurança de memória, embora fantástico, pode ser "excesso" para este projeto específico. Go oferece um caminho mais direto para a produtividade.

Requisitos do Projeto GramCLI

Aqui está uma proposta de requisitos para guiar o desenvolvimento.

Requisitos Funcionais (O que o sistema DEVE fazer)

  1. Autenticação:

    • RF01: O sistema deve permitir login via número de telefone e código de verificação.
    • RF02: O sistema deve salvar a sessão de autenticação para logins futuros sem necessidade de reinserir o código.
  2. Mensagens Pessoais:

    • RF03: O sistema deve listar conversas recentes.
    • RF04: O sistema deve permitir enviar mensagens de texto para um contato.
    • RF05: O sistema deve permitir enviar arquivos (documentos, imagens) para um contato.
    • RF06: O sistema deve exibir em tempo real novas mensagens recebidas.
  3. Grupos e Canais:

    • RF07: O sistema deve listar grupos e canais do usuário.
    • RF08: O sistema deve permitir enviar mensagens para grupos e canais.
    • RF09: O sistema deve exibir mensagens de grupos e canais em tempo real.
  4. Interface e Interatividade:

    • RF10: O sistema deve operar em modo interativo, com um prompt de comandos.
    • RF11: O sistema deve oferecer um modo de comando único (e.g., gramcli --send @username "Hello World") para automação em scripts.
  5. Utilitários:

    • RF12: O sistema deve exibir uma lista de comandos disponíveis via comando help.

Requisitos Não-Funcionais (Como o sistema deve SER)

  1. Usabilidade:

    • RNF01: A interface deve ser intuitiva para usuários familiarizados com terminal.
    • RNF02: O sistema deve fornecer feedback claro para todas as ações (sucesso, erro, carregamento).
  2. Performance e Confiabilidade:

    • RNF03: O sistema deve ser leve, consumindo menos de 50MB de RAM em idle.
    • RNF04: O sistema deve ser responsivo, com latency inferior a 100ms para comandos locais.
    • RNF05: O sistema deve se reconectar automaticamente em caso de queda de conexão.
  3. Compatibilidade:

    • RNF06: O sistema deve ser distribuído como binário único para as plataformas: Linux (amd64, armv7, aarch64), macOS (amd64, arm64 - Apple Silicon), e Android (termux, aarch64).
    • RNF07: O sistema não deve requerer dependências externas para execução.
  4. Manutenibilidade e Licenciamento:

    • RNF08: O código-fonte deve ser aberto, preferencialmente sob licença MIT ou GPLv3.
    • RNF09: O código deve ser bem documentado, com um README claro explicando como compilar, instalar e usar.
    • RNF10: O projeto deve usar uma biblioteca wrapper oficial da API do Telegram (como MTProto) para garantir compatibilidade futura.

Roadmap Sugerido (Fases de Desenvolvimento)

  1. Fase 1 - Prova de Conceito (MVP):

    • Configurar projeto em Go.
    • Implementar autenticação (RF01, RF02).
    • Implementar envio e recebimento de mensagens de texto em chats privados (RF04, RF06).
    • Interface de linha de comando básica (RF10).
  2. Fase 2 - Funcionalidades Essenciais:

    • Implementar listagem de conversas (RF03, RF07).
    • Adicionar suporte a envio de arquivos (RF05).
    • Implementar suporte a grupos e canais (RF08, RF09).
    • Criar o modo não-interativo para scripts (RF11).
  3. Fase 3 - Polimento e Distribuição:

    • Escrever documentação extensiva (RNF09).
    • Criar scripts de build para gerar binários para todas as plataformas-alvo (RNF06).
    • Implementar tratamento de erros robusto e reconexão automática (RNF05).
    • Publicar o código no GitHub/GitLab com uma licença aberta.

Sua visão de tornar a tecnologia acessível é admirável. Com essa base, você está no caminho certo para criar uma ferramenta poderosa e amada pela comunidade de usuários de terminal. Boa sorte com o projeto

About

O TeleTerm é o sucessor espiritual do Telegram CLI. O Telegram CLI é uma interface de linha de comando (CLI) oficial não oficial para o Telegram, conhecida como "tg". Ele permite que usuários Linux interajam com o serviço de mensagens do Telegram diretamente pelo terminal, sem a necessidade de uma interface gráfica (GUI).

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 84.0%
  • M4 11.3%
  • Shell 2.1%
  • Perl 1.2%
  • Lua 0.6%
  • Makefile 0.5%
  • Python 0.3%