Este projeto ganhou o primeiro prêmio? no Telegram Lightweight Client Contest e agora é um cliente oficial do Telegram disponível para qualquer pessoa em web.telegram.org/a.
De acordo com as regras originais do concurso, ele tem quase zero dependências e é totalmente baseado em sua própria estrutura Teact (que reimplementa o paradigma React). Ele também usa uma versão customizada do GramJS como implementação MTProto.
O projeto incorpora muitos recursos tecnologicamente avançados, APIs e técnicas modernas da Web: WebSockets, Web Workers e WebAssembly, cache multinível e PWA, gravação de voz e streaming de mídia, criptografia e operações de dados binários brutos, interfaces otimistas e progressivas, CSS / complicado. Animações Canvas/SVG, fluxos de dados reativos e muito mais.
Sinta-se à vontade para explorar, fornecer feedback e contribuir.
mv .env.example .env
npm i
Obtenha o ID da API e o hash da API em my.telegram.org e preencha o arquivo .env
.
npm run dev
Inicie seu servidor de desenvolvimento e localize o trabalhador GramJS no contexto do console.
Todos os construtores e funções disponíveis na variável GramJs
global.
Execute npm run gramjs:tl full
para obter acesso a todas as solicitações disponíveis do Telegram.
Exemplo de uso:
await invoke ( new GramJs . help . GetAppConfig ( ) )
Electron permite construir um aplicativo nativo que pode ser instalado em Windows, macOS e Linux.
npm run dev:electron
Execute o Electron no modo de desenvolvimento, inicia simultaneamente 3 processos com observação de mudanças: principal (processo principal do Electron), renderizador (código FE) e Webpack para Electron (compila o processo principal do Electron do TypeScript).
npm run electron:webpack
O código do processo principal do Electron, que inclui funcionalidade de pré-carregamento, é escrito em TypeScript e compilado usando a configuração webpack-electron.config.js
para gerar código JavaScript.
npm run electron:build
Preparar a construção do renderizador (código FE), compilar o código do processo principal do Electron, instalar e construir dependências nativas, é usado antes do empacotamento ou publicação.
npm run electron:staging
Crie pacotes para macOS, Windows e Linux em pastas dist-electron
com APP_ENV
como staging
(permite abrir DevTools, inclui mapas de origem e não minifica o código JavaScript construído), pode ser usado para distribuição manual e teste de aplicativos empacotados.
npm run electron:production
Crie pacotes para macOS, Windows e Linux em pastas dist-electron
com APP_ENV
como production
(DevTools desabilitados, código JavaScript construído minificado), pode ser usado para distribuição manual e teste de aplicativos empacotados.
npm run deploy:electron
Crie pacotes para macOS, Windows e Linux na pasta dist-electron
e publique a versão no GitHub, que permite suporte a atualizações automáticas. Consulte Fluxo de trabalho de lançamento do GitHub para obter mais informações.
Para assinar o código do seu aplicativo, siga estas etapas:
/certs
na pasta login
do seu Keychain.Developer ID - G2
na página Apple PKI.key > Get Info > Access Control
. Lá embaixo, certifique-se de que seu aplicativo (Xcode) esteja na lista Always allow access by these applications
e certifique-se de que Confirm before allowing access
esteja ativado.Mais informações na documentação oficial.
O reconhecimento de firma do aplicativo é feito automaticamente no módulo electron-builder, que requer a passagem das variáveis de ambiente APPLE_ID
e APPLE_APP_SPECIFIC_PASSWORD
.
Como obter a senha específica do aplicativo:
Para publicar uma nova versão, você precisa adicionar o token de acesso do GitHub a .env
. Gere um token de acesso do GitHub acessando https://github.com/settings/tokens/new. O token de acesso deve ter o escopo/permissão do repositório. Depois de obter o token, atribua-o a uma variável de ambiente:
# .env
GH_TOKEN="{YOUR_TOKEN_HERE}"
Publicar configuração no arquivo de configuração src/electron/config.yml
permite definir o proprietário/nome do repositório GitHub.
npm run electron:publish
, que criará uma nova versão de rascunho e fará upload de artefatos de construção para a versão recém-criada. A versão do lançamento criado será a mesma de package.json
.Se você encontrar algum problema com este aplicativo, informe o Telegram usando a Plataforma de Sugestões.