Adding the ability to use ESC to enter scroll mode, ESC twice to exit and T or ENTER to return to chat

This commit is contained in:
raven 2023-01-15 22:01:49 -05:00
parent cc3f62dfbf
commit 7d3ab3e2ee
1 changed files with 45 additions and 22 deletions

View File

@ -52,6 +52,12 @@ const screen = blessed.screen({
fastCSR: true
});
// Debug ONLY
// screen.on('keypress', function(ch, key){
// console.log(JSON.stringify(key));
// });
let mainBox = blessed.box({
parent: screen,
top: 0,
@ -125,10 +131,10 @@ sidebarBox.setLabel("Peers since connection: 0")
const originalLog = console.log;
console.log = (...args) => {
mainBox.setContent(mainBox.getContent() + `\n${args.join(' ')}`);
updateScroll()
stdinBox.clearValue();
screen.render()
mainBox.setContent(mainBox.getContent() + `\n${args.join(' ')}`);
updateScroll()
stdinBox.clearValue();
screen.render()
}
@ -139,7 +145,7 @@ const publicKey = crypto.randomBytes(32)
// Create the swarm and pass in the public key
const swarm = new Hyperswarm()
const commandDir = __dirname +'/commands/';
const commandDir = __dirname + '/commands/';
const commandFiles = fs.readdirSync(commandDir);
const commands = {}
@ -195,24 +201,24 @@ async function handleCommand(input) {
console.log("Command not found.")
}
} else {
if (DISCORD_USERID.length !== 0){
if (DISCORD_USERID.length !== 0) {
for (const conn of conns)
conn.write(`${DISCORD_USERID[0]}: ${input}`)
} else {
for (const conn of conns)
conn.write(`${DISCORD_USERID[0]}: ${input}`)
} else {
for (const conn of conns)
conn.write(`${USERNAME}: ${input}`)
}
if (DISCORD_USERID.length !== 0){
console.log(`${DISCORD_USERID[0]}: ${input}`)
} else {
console.log(`${USERNAME}: ${input}`)
}
}
}
if (DISCORD_USERID.length !== 0) {
console.log(`${DISCORD_USERID[0]}: ${input}`)
} else {
console.log(`${USERNAME}: ${input}`)
}
}
}
swarm.on('connection', conn => {
@ -309,6 +315,23 @@ stdinBox.focus();
screen.render()
// Quit on Escape, q, or Control-C.
screen.key(['escape', 'q', 'C-c'], function(ch, key) {
return process.exit(0);
screen.key(['escape', 'q', 'C-c'], function (ch, key) {
console.log("Sending close message...")
for (let conn of conns) {
conn.write(`CLOSED: ${publicKey.toString('hex')}`)
}
(async () => {
await sleep(2000)
process.exit()
})();
});
let scrollCount = 0
// Return to chat
screen.key(['t', 'enter'], function (ch, key) {
stdinBox.focus();
});