telegram-session
Version:
Generate and get GramJS string sessions easily
38 lines (37 loc) • 1.43 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const readline_1 = require("readline");
const telegram_1 = require("telegram");
const extensions_1 = require("telegram/extensions");
const sessions_1 = require("telegram/sessions");
const read = readline_1.createInterface({
input: process.stdin,
output: process.stdout,
});
const getInput = (q) => {
return new Promise((r) => read.question(`${q}\n> `, r));
};
const getNumberInput = async (q) => {
const numberInput = Number(await getInput(q));
if (isNaN(numberInput)) {
return await getNumberInput(`${q} must be a number, please enter again`);
}
return numberInput;
};
(async () => {
const client = new telegram_1.TelegramClient(new sessions_1.StringSession(), await getNumberInput("API ID"), await getInput("API hash"), { connectionRetries: 10 });
await client.start({
phoneNumber: async () => await getInput("Phone number"),
phoneCode: async () => String(await getNumberInput("The code")),
password: async (hint) => await getInput(hint ? hint : "Password"),
onError: (err) => {
console.log(`Error starting client: ${err}`);
process.exit(1);
},
});
await client.sendMessage("me", {
message: client.session.save(),
});
console.log("String session sent to saved messages.");
})();
extensions_1.Logger.setLevel("none");