Ce projet a remporté le premier prix ? au Telegram Lightweight Client Contest et est désormais un client Telegram officiel accessible à tous sur web.telegram.org/a.
Selon les règles originales du concours, il n'a presque aucune dépendance et est entièrement basé sur son propre framework Teact (qui réimplémente le paradigme React). Il utilise également une version personnalisée de GramJS comme implémentation MTProto.
Le projet intègre de nombreuses fonctionnalités technologiquement avancées, des API et techniques Web modernes : WebSockets, Web Workers et WebAssembly, mise en cache multi-niveaux et PWA, enregistrement vocal et streaming multimédia, cryptographie et opérations de données binaires brutes, interfaces optimistes et progressives, CSS/ Animations Canvas/SVG, flux de données réactifs et bien plus encore.
N'hésitez pas à explorer, à fournir des commentaires et à contribuer.
mv .env.example .env
npm i
Obtenez l'ID API et le hachage API sur my.telegram.org et remplissez le fichier .env
.
npm run dev
Démarrez votre serveur de développement et localisez le travailleur GramJS dans le contexte de la console.
Tous les constructeurs et fonctions disponibles dans la variable globale GramJs
.
Exécutez npm run gramjs:tl full
pour accéder à toutes les requêtes Telegram disponibles.
Exemple d'utilisation :
await invoke ( new GramJs . help . GetAppConfig ( ) )
Electron permet de créer une application native pouvant être installée sur Windows, macOS et Linux.
npm run dev:electron
Exécutez Electron en mode développement, démarre simultanément 3 processus en surveillant les modifications : main (processus Electron principal), moteur de rendu (code FE) et Webpack for Electron (compile le processus Electron principal à partir de TypeScript).
npm run electron:webpack
Le code de processus principal pour Electron, qui inclut la fonctionnalité de préchargement, est écrit en TypeScript et compilé à l'aide de la configuration webpack-electron.config.js
pour générer du code JavaScript.
npm run electron:build
Préparer la construction du moteur de rendu (code FE), compiler le code du processus principal d'Electron, installer et créer les dépendances natives, est utilisé avant l'empaquetage ou la publication.
npm run electron:staging
Créez des packages pour macOS, Windows et Linux dans des dossiers dist-electron
avec APP_ENV
comme staging
(permet d'ouvrir DevTools, inclut les sourcesmaps et ne réduit pas le code JavaScript construit), peut être utilisé pour la distribution manuelle et le test des applications packagées.
npm run electron:production
Créez des packages pour macOS, Windows et Linux dans des dossiers dist-electron
avec APP_ENV
en production
(DevTools désactivés, code JavaScript construit minifié), peuvent être utilisés pour la distribution manuelle et le test d'applications packagées.
npm run deploy:electron
Créez des packages pour macOS, Windows et Linux dans le dossier dist-electron
et publiez la version sur GitHub, qui permet de prendre en charge les mises à jour automatiques. Voir le workflow de publication de GitHub pour plus d'informations.
Pour signer le code de votre candidature, suivez ces étapes :
/certs
dans le dossier login
de votre trousseau.Developer ID - G2
à partir de la page Apple PKI.key > Get Info > Access Control
. Là-bas, assurez-vous que votre application (Xcode) est dans la liste Always allow access by these applications
et assurez-vous Confirm before allowing access
est activé.Plus d'informations dans la documentation officielle.
La notarisation de l'application est effectuée automatiquement dans le module Electron-Builder, ce qui nécessite la transmission des variables d'environnement APPLE_ID
et APPLE_APP_SPECIFIC_PASSWORD
.
Comment obtenir un mot de passe spécifique à l'application :
Afin de publier une nouvelle version, vous devez ajouter un jeton d'accès GitHub à .env
. Générez un jeton d'accès GitHub en accédant à https://github.com/settings/tokens/new. Le jeton d'accès doit avoir la portée/l'autorisation du dépôt. Une fois que vous avez le jeton, attribuez-le à une variable d'environnement :
# .env
GH_TOKEN="{YOUR_TOKEN_HERE}"
Publier la configuration dans le fichier de configuration src/electron/config.yml
permet de définir le propriétaire/nom du référentiel GitHub.
npm run electron:publish
, qui créera un nouveau brouillon de version et téléchargera les artefacts de construction dans la version nouvellement créée. La version de la version créée sera la même que celle de package.json
.Si vous rencontrez un problème avec cette application, informez-en Telegram en utilisant la plateforme de suggestions.