From 3c7afeec610bf6083f18484e358e665ad845cb48 Mon Sep 17 00:00:00 2001 From: soffee Date: Sun, 6 Apr 2025 22:05:28 +0300 Subject: [PATCH] add userbot login options via env vars --- .env.example | 3 +++ package.json | 2 +- src/env.ts | 6 +++++- src/main.ts | 11 ++++++++--- 4 files changed, 17 insertions(+), 5 deletions(-) diff --git a/.env.example b/.env.example index 035d53f..4af1835 100644 --- a/.env.example +++ b/.env.example @@ -1,2 +1,5 @@ API_ID= API_HASH= +USERBOT_PHONE= +USERBOT_2FACODE= +USERBOT_PASSWORD= \ No newline at end of file diff --git a/package.json b/package.json index 253b775..aeef4b6 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "mtproto_exporter", "type": "module", - "version": "0.0.1", + "version": "1.0.0", "packageManager": "pnpm@10.6.5", "license": "MIT", "scripts": { diff --git a/src/env.ts b/src/env.ts index 33fed5c..36a7e38 100644 --- a/src/env.ts +++ b/src/env.ts @@ -3,8 +3,12 @@ import process from "node:process"; const API_ID = Number.parseInt(process.env.API_ID!); const API_HASH = process.env.API_HASH!; +const USERBOT_PHONE = process.env.USERBOT_PHONE; +const USERBOT_2FACODE = process.env.USERBOT_2FACODE; +const USERBOT_PASSWORD = process.env.USERBOT_PASSWORD; + if (Number.isNaN(API_ID) || !API_HASH) { throw new Error("API_ID or API_HASH not set!"); } -export { API_HASH, API_ID }; +export { API_HASH, API_ID, USERBOT_2FACODE, USERBOT_PASSWORD, USERBOT_PHONE }; diff --git a/src/main.ts b/src/main.ts index 47723a5..447fdd2 100644 --- a/src/main.ts +++ b/src/main.ts @@ -58,6 +58,14 @@ const tg = new TelegramClient({ const dp = Dispatcher.for(tg); +const user = await tg.start({ + phone: () => env.USERBOT_PHONE ?? tg.input("Phone > "), + code: () => env.USERBOT_2FACODE ?? tg.input("Code > "), + password: () => env.USERBOT_PASSWORD ?? tg.input("Password > "), +}); + +console.log("Logged in as", user.username); + registry.registerMetric(metrics.newStaticPeerInfoGauge(tg)); registry.registerMetric(metrics.newUnreadCountGauge(tg)); registry.registerMetric(metrics.newMessagesCounter(dp)); @@ -69,6 +77,3 @@ if (keywords.length > 0) { if (cli["words-counter"]) { registry.registerMetric(metrics.newWordsCounter(dp)); } - -const user = await tg.start(); -console.log("Logged in as", user.username);