Pure Telegram MTProto framework for Javascript or Typescript.
β‘ Using less dependencies to make it fast.
π Open Source, you can contribute to make this framework better.
ποΈ Using Pure Telegram Raw Api, all JSON object is pure from telegram, nothing has changed at all. So that it makes it easier for you to learn the telegram schema docs.
π¦ Deno Support.
import { Client, Raw, Storages } from '@tgsnake/core';
process.env.LOGLEVEL = 'debug'; // set log level, see @tgsnake/log for more information.
const client = new Client(
// you can fill with Telethon or Pyrogram string session.
new Storages.StringSession(''),
apiHash,
apiId,
);
// handle update
client.addHandler((update) => {
console.log(update);
});
// if you already pass the string session, don't fill any arguments in start function, leave it empty.
client.start({
botToken: '', // if you want login as bot, you can login as user too.
/* Remove "botToken" if you want to login as user.
phoneNumber : async () => {}, // Phone number with international phone code (include plus sign (+)) will be used to login, the return of function must be a string.
code : async () => {}, // OTP code, the return of function must be a string.
password : async () => {}, // if you account has 2FA, the return of function must be a string.
authError : async (error) => {} // when error BadRequest attempt, this function will be running.
*/
});
For exporting string session, use client.exportSession()
. It will be return Promise<string>
.
const exported = await client.exportSession();
$ git clone https://github.com/tgsnake/core
Required to use yarn!
$ yarn install
$ yarn build:api
$ yarn build:error
test
folder and you can create index.js
file for testing the app. This folder will automatically ignored and not pushing to GitHub.Build with β₯οΈ by tgsnake dev.