Telegram-user: add login method picker
This commit is contained in:
parent
26ac86cbb5
commit
c9fe83b3f7
@ -28,6 +28,7 @@
|
|||||||
"@mtcute/core": "^0.27.6",
|
"@mtcute/core": "^0.27.6",
|
||||||
"@mtcute/dispatcher": "^0.27.6",
|
"@mtcute/dispatcher": "^0.27.6",
|
||||||
"@mtcute/node": "^0.27.6",
|
"@mtcute/node": "^0.27.6",
|
||||||
|
"@clack/prompts": "^0.8.2",
|
||||||
"qrcode-terminal": "^0.12.0",
|
"qrcode-terminal": "^0.12.0",
|
||||||
"clawdbot": "workspace:*"
|
"clawdbot": "workspace:*"
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
import qrcode from "qrcode-terminal";
|
import qrcode from "qrcode-terminal";
|
||||||
import { createInterface } from "node:readline/promises";
|
import { createInterface } from "node:readline/promises";
|
||||||
import { stdin as input, stdout as output } from "node:process";
|
import { stdin as input, stdout as output } from "node:process";
|
||||||
|
import { isCancel, select } from "@clack/prompts";
|
||||||
import type { RuntimeEnv } from "clawdbot/plugin-sdk";
|
import type { RuntimeEnv } from "clawdbot/plugin-sdk";
|
||||||
|
|
||||||
import { createTelegramUserClient } from "./client.js";
|
import { createTelegramUserClient } from "./client.js";
|
||||||
@ -17,11 +18,17 @@ async function promptText(message: string): Promise<string> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async function promptLoginMode(): Promise<"qr" | "phone"> {
|
async function promptLoginMode(): Promise<"qr" | "phone"> {
|
||||||
const response = await promptText("Login method (qr/phone) [qr]: ");
|
if (!input.isTTY || !output.isTTY) return "qr";
|
||||||
const normalized = response.trim().toLowerCase();
|
const response = await select({
|
||||||
if (!normalized) return "qr";
|
message: "Telegram login method",
|
||||||
if (normalized === "phone" || normalized === "otp") return "phone";
|
options: [
|
||||||
return "qr";
|
{ value: "qr", label: "QR code (scan with Telegram)" },
|
||||||
|
{ value: "phone", label: "Phone code (SMS/Telegram)" },
|
||||||
|
],
|
||||||
|
initialValue: "qr",
|
||||||
|
});
|
||||||
|
if (isCancel(response)) return "qr";
|
||||||
|
return response;
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function loginTelegramUser(params: {
|
export async function loginTelegramUser(params: {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user