From 677a1a958ad555ef7fdfa2aa471c216bdd40eed4 Mon Sep 17 00:00:00 2001 From: Hri7566 Date: Mon, 26 Feb 2024 07:20:22 -0500 Subject: [PATCH] Add command line client --- bun.lockb | Bin 8700 -> 52026 bytes package.json | 47 ++++++++++++------------ src/cli/index.ts | 67 ++++++++++++++++++++++++++++++++++ src/mpp/bot/Bot.ts | 2 +- src/{mpp => util}/api/trpc.ts | 0 5 files changed, 92 insertions(+), 24 deletions(-) create mode 100644 src/cli/index.ts rename src/{mpp => util}/api/trpc.ts (100%) diff --git a/bun.lockb b/bun.lockb index 3bbb7e0bbf719d8c93dd601b8b140057f65d7a20..4ece5c03f4bbaaa4a1c9516af5325afd5e7c2ad6 100755 GIT binary patch literal 52026 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 "); +rl.prompt(); + +rl.on("line", async line => { + if (line == "stop" || line == "exit") process.exit(); + rl.prompt(); + + const msg = { + a: line, + p: { + _id: "stdin", + name: "CLI", + color: "#abe3d6" + } + }; + + let prefixes: string[]; + + try { + prefixes = await trpc.prefixes.query(); + } catch (err) { + logger.error(err); + logger.warn("Unable to contact server"); + return; + } + + let usedPrefix: string | undefined = prefixes.find(pr => + msg.a.startsWith(pr) + ); + + if (!usedPrefix) return; + + const args = msg.a.split(" "); + + const command = await trpc.command.query({ + args: args.slice(1, args.length), + command: args[0].substring(usedPrefix.length), + prefix: usedPrefix, + user: { + id: msg.p._id, + name: msg.p.name, + color: msg.p.color + } + }); + + if (!command) return; + if (command.response) { + logger.info(cliMd(command.response)); + } +}); diff --git a/src/mpp/bot/Bot.ts b/src/mpp/bot/Bot.ts index 9092921..f86f9f8 100644 --- a/src/mpp/bot/Bot.ts +++ b/src/mpp/bot/Bot.ts @@ -1,6 +1,6 @@ import Client from "mpp-client-net"; import { Logger } from "@util/Logger"; -import trpc from "@client/api/trpc"; +import trpc from "@util/api/trpc"; import { EventEmitter } from "events"; export interface MPPNetBotConfig { diff --git a/src/mpp/api/trpc.ts b/src/util/api/trpc.ts similarity index 100% rename from src/mpp/api/trpc.ts rename to src/util/api/trpc.ts