UNPKG

el-bot

Version:

A quick qq bot framework for mirai.

46 lines (42 loc) 1.31 kB
import process from 'node:process' import * as readline from 'node:readline' import { blue, bold, dim, underline } from 'picocolors' import { version } from '../../package.json' export function printInfo() { console.log() console.log(` ${bold('🤖 El Bot')} ${blue(`v${version}`)}`) console.log() // console.log(` ${dim('📁')} ${dim(path.resolve(options.userRoot))}`) console.log() const restart = `${underline('r')}${dim('estart')}` const edit = `${underline('e')}${dim('dit')}` const divider = `${dim(' | ')}` console.log(`${dim(' shortcuts ')} > ${restart}${divider}${edit}`) console.log() } /** * bind shortcut for terminal */ export function bindShortcut(SHORTCUTS: { name: string, fullName: string, action: () => void }[]) { process.stdin.resume() process.stdin.setEncoding('utf8') readline.emitKeypressEvents(process.stdin) if (process.stdin.isTTY) process.stdin.setRawMode(true) process.stdin.on('keypress', (str, key) => { if (key.ctrl && key.name === 'c') { process.exit() } else { const [sh] = SHORTCUTS.filter(item => item.name === str) if (sh) { try { sh.action() } catch (err) { console.error(`Failed to execute shortcut ${sh.fullName}`, err) } } } }) }