Proyek ini memenangkan hadiah pertama? di Kontes Klien Ringan Telegram dan sekarang menjadi klien Telegram resmi yang tersedia untuk siapa saja di web.telegram.org/a.
Menurut aturan kontes awal, ia hampir tidak memiliki ketergantungan dan sepenuhnya didasarkan pada kerangka kerja Teact-nya sendiri (yang mengimplementasikan kembali paradigma React). Itu juga menggunakan versi khusus GramJS sebagai implementasi MTProto.
Proyek ini menggabungkan banyak fitur berteknologi maju, API dan teknik Web modern: WebSockets, Web Workers dan WebAssembly, caching multi-level dan PWA, rekaman suara dan streaming media, kriptografi dan operasi data biner mentah, antarmuka optimis dan progresif, CSS/ yang rumit Animasi Canvas/SVG, aliran data reaktif, dan banyak lagi.
Jangan ragu untuk mengeksplorasi, memberikan umpan balik, dan berkontribusi.
mv .env.example .env
npm i
Dapatkan ID API dan hash API di my.telegram.org dan isi file .env
.
npm run dev
Mulai server dev Anda dan temukan pekerja GramJS dalam konteks konsol.
Semua konstruktor dan fungsi tersedia dalam variabel GramJs
global.
Jalankan npm run gramjs:tl full
untuk mendapatkan akses ke semua permintaan Telegram yang tersedia.
Contoh penggunaan:
await invoke ( new GramJs . help . GetAppConfig ( ) )
Electron memungkinkan pembuatan aplikasi asli yang dapat diinstal di Windows, macOS, dan Linux.
npm run dev:electron
Jalankan Electron dalam mode pengembangan, secara bersamaan memulai 3 proses dengan memperhatikan perubahan: main (proses Electron utama), renderer (kode FE) dan Webpack untuk Electron (mengkompilasi proses Electron utama dari TypeScript).
npm run electron:webpack
Kode proses utama untuk Electron, yang mencakup fungsionalitas pramuat, ditulis dalam TypeScript dan dikompilasi menggunakan konfigurasi webpack-electron.config.js
untuk menghasilkan kode JavaScript.
npm run electron:build
Mempersiapkan pembuatan renderer (kode FE), mengkompilasi kode proses utama Electron, menginstal dan membangun dependensi asli, digunakan sebelum pengemasan atau penerbitan.
npm run electron:staging
Membuat paket untuk macOS, Windows dan Linux dalam folder dist-electron
dengan APP_ENV
sebagai staging
(memungkinkan untuk membuka DevTools, menyertakan peta sumber dan tidak memperkecil kode JavaScript yang dibuat), dapat digunakan untuk distribusi manual dan pengujian aplikasi yang dikemas.
npm run electron:production
Membuat paket untuk MacOS, Windows dan Linux dalam folder dist-electron
dengan APP_ENV
sebagai production
(DevTools yang dinonaktifkan, kode JavaScript yang dibuat diperkecil), dapat digunakan untuk distribusi manual dan pengujian aplikasi yang dikemas.
npm run deploy:electron
Buat paket untuk macOS, Windows dan Linux di folder dist-electron
dan publikasikan rilis ke GitHub, yang memungkinkan dukungan pembaruan otomatis. Lihat alur kerja rilis GitHub untuk informasi selengkapnya.
Untuk menandatangani kode aplikasi Anda, ikuti langkah-langkah berikut:
/certs
ke folder login
Gantungan Kunci Anda.Developer ID - G2
dari halaman Apple PKI.key > Get Info > Access Control
. Di bawah sana, pastikan aplikasi Anda (Xcode) ada dalam daftar Always allow access by these applications
dan pastikan Confirm before allowing access
diaktifkan.Info lebih lanjut di dokumentasi resmi.
Notaris aplikasi dilakukan secara otomatis dalam modul pembuat elektron, yang memerlukan variabel lingkungan APPLE_ID
dan APPLE_APP_SPECIFIC_PASSWORD
untuk diteruskan.
Cara mendapatkan kata sandi khusus aplikasi:
Untuk menerbitkan rilis baru, Anda perlu menambahkan token akses GitHub ke .env
. Hasilkan token akses GitHub dengan membuka https://github.com/settings/tokens/new. Token akses harus memiliki cakupan/izin repo. Setelah Anda memiliki token, tetapkan ke variabel lingkungan:
# .env
GH_TOKEN="{YOUR_TOKEN_HERE}"
Publikasikan konfigurasi dalam file konfigurasi src/electron/config.yml
memungkinkan untuk mengatur pemilik/nama repositori GitHub.
npm run electron:publish
, yang akan membuat rilis draf baru dan mengunggah artefak build ke rilis yang baru dibuat. Versi rilis yang dibuat akan sama dengan di package.json
.Jika Anda menemukan masalah dengan aplikasi ini, beri tahu Telegram menggunakan Platform Saran.