commit 9096182e73ab8ed75b5ebcbfe784c5287bdef9a2
parent 1e493c2d31f13111443f8241e6db302ae016e267
Author: Demonstrandum <moi@knutsen.co>
Date: Mon, 9 Mar 2020 02:09:57 +0000
Node version downgrade.
Diffstat:
4 files changed, 79 insertions(+), 44 deletions(-)
diff --git a/lib/main.ts b/lib/main.ts
@@ -1,5 +1,5 @@
import { Discord, On, Client } from '@typeit/discord';
-import { Message, MessageAttachment } from 'discord.js';
+import { Message, Attachment } from 'discord.js';
import {
readFileSync as read_file,
@@ -49,7 +49,16 @@ for (const msg of help_sections)
new_messages.push(acc);
const HELP_MESSAGES = new_messages;
-console.log(HELP_MESSAGES);
+declare module 'discord.js' {
+ interface Message {
+ answer(...args : any) : void
+ }
+}
+
+Message.prototype.answer = function (...args) {
+ return this.channel.send(`${this.author}, ${args[0]}`,
+ ...(args.slice(1)));
+};
@Discord
export class SimpOMatic {
@@ -82,10 +91,10 @@ export class SimpOMatic {
switch (command) {
case 'ping': {
- message.reply("PONGGERS!");
+ message.answer("PONGGERS!");
break;
} case 'help': {
- message.reply('**HELP:**');
+ message.answer('**HELP:**');
for (const msg of HELP_MESSAGES)
message.channel.send(msg);
break;
@@ -94,7 +103,7 @@ export class SimpOMatic {
Author: ${message.author}
Message ID: ${message.id}`.squeeze();
console.log(`Replied: ${reply}`);
- message.reply(reply);
+ message.answer(reply);
break;
} case 'search': {
const query = args.join(' ');
@@ -105,12 +114,12 @@ export class SimpOMatic {
key: SECRETS.rapid.key
}).then((res: object) => {
if (res['value'].length === 0) {
- message.reply('No such results found.');
+ message.answer('No such results found.');
return;
}
- message.reply(`Web search for ‘${query}’,
+ message.answer(`Web search for ‘${query}’,
found: ${res['value'][0].url}`);
- }).catch(e => message.reply(`Error fetching results:\n${e}`));
+ }).catch(e => message.answer(`Error fetching results:\n${e}`));
break;
} case 'image': {
const query = args.join(' ');
@@ -121,21 +130,24 @@ export class SimpOMatic {
key: SECRETS.rapid.key
}).then(res => {
if (res['value'].length === 0) {
- message.reply('No such images found.');
+ message.answer('No such images found.');
return;
}
- message.reply(`Image found for ‘${query}’:
+ message.answer(`Image found for ‘${query}’:
${res['value'][0].url}`);
}).catch(e =>
- message.reply(`Error fetching image:\n${e}`));
+ message.answer(`Error fetching image:\n${e}`));
break;
} case 'define': {
- message.reply('Looking in the Oxford English Dictionary...');
+ message.answer('Looking in the Oxford English Dictionary...');
const query = args.join(' ');
const nasty_reply = `Your word (‘${query}’) is nonsense, either \
that or they've forgotten to index it.
- I'll let you decide.`.squeeze();
+ I'll let you decide.
+
+ P.S. Try the _Urban Dictionary_ \
+ (\`!urban ${query}\`)`.squeeze();
oed_lookup({
word: query,
@@ -151,7 +163,7 @@ export class SimpOMatic {
|| res['results'][0].lexicalEntries.length == 0
|| res['results'][0].lexicalEntries[0].entries.length == 0
|| res['results'][0].lexicalEntries[0].entries[0].senses.length == 0) {
- message.reply(nasty_reply);
+ message.answer(nasty_reply);
return;
}
@@ -177,17 +189,21 @@ export class SimpOMatic {
msg += sense_msg;
}
}
- const prons = Object.values(entry.pronunciations) as any;
- if (prons.length > 0) {
- msg += "Pronunciations:\n"
- for (const pron of prons) {
- msg += ` Dialects of ${pron.dialects.join(', ')}:\n`;
- msg += ` ${pron.phoneticNotation}: [${pron.phoneticSpelling}]\n`;
- if (pron.audioFile) {
- msg += ` Audio file: ${pron.audioFile}\n`;
- const attach = new MessageAttachment(pron.audioFile);
- attach.name = pron.audioFile.split('/').slice(-1)[0];
- message.channel.send(attach);
+ if (!!entry.pronunciations) {
+ const prons = Object.values(entry.pronunciations) as any;
+ if (!!prons && prons.length > 0) {
+ msg += "Pronunciations:\n"
+ for (const pron of prons) {
+ msg += ` Dialects of ${pron.dialects.join(', ')}:\n`;
+ msg += ` ${pron.phoneticNotation}: [${pron.phoneticSpelling}]\n`;
+ if (pron.audioFile) {
+ msg += ` Audio file: ${pron.audioFile}\n`;
+ const attach = new Attachment(
+ pron.audioFile,
+ pron.audioFile.split('/').slice(-1)[0]
+ );
+ message.channel.send('', attach);
+ }
}
}
}
@@ -202,7 +218,7 @@ export class SimpOMatic {
break;
} case 'urban': {
const query = args.join(' ');
- message.reply('Searching Urban Dictionary...');
+ message.answer('Searching Urban Dictionary...');
urban_search({ query, key: SECRETS.rapid.key }).then(res => {
if (res['list'].length === 0) {
message.channel.send(`Congratulations, not even Urban \
@@ -218,17 +234,17 @@ export class SimpOMatic {
let example = entry.example;
if (!!example || example.length > 0) {
example = example.replace(/\[|\]/g, '');
- message.channel.send(`\n**Example**:\n>>> ${example}`);
+ message.channel.send(`\n**Example**:\n>>> ${example.trim()}`);
}
message.channel.send(`Link: ${entry.permalink}`);
- }).catch(e => message.reply(`Error fetching definition:\n${e}`));
+ }).catch(e => message.answer(`Error fetching definition:\n${e}`));
break;
} case 'milkies': {
- message.reply(`${(4 + Math.random() * 15).round_to(3)} gallons \
+ message.answer(`${(4 + Math.random() * 15).round_to(3)} gallons \
of milkies have been deposited in your mouth.`.squeeze());
break;
} case 'say': {2
- message.reply(`Me-sa says: “${args.join(' ')}”`);
+ message.answer(`Me-sa says: “${args.join(' ')}”`);
break;
} case 'export': {
let export_string = export_config(CONFIG, {});
@@ -249,18 +265,16 @@ export class SimpOMatic {
if (export_string.length < 1980) {
message.channel.send("```json\n" + export_string + "\n```");
- } else {
- const attach = new MessageAttachment(file_dest);
- attach.name = file_name;
- message.channel.send("**Export:**", attach);
}
+ const attach = new Attachment(file_dest, file_name);
+ message.channel.send("**Export:**", attach);
- message.reply(`A copy of this export (\`export-${today}.json\`) \
+ message.answer(`A copy of this export (\`export-${today}.json\`) \
has been saved to the local file system.`.squeeze());
break;
}
default: {
- message.reply(`
+ message.answer(`
:warning: ${CONFIG.commands.not_understood}.
> \`${CONFIG.commands.prefix}${command}\``.squeeze());
break;
@@ -271,7 +285,7 @@ export class SimpOMatic {
process_generic(message : Message) {
const { content } = message;
if (content.includes('bot'))
- message.reply("The hell you sayn' about bots?");
+ message.answer("The hell you sayn' about bots?");
// TODO: Process _rules_ appropriately.
}
@@ -298,3 +312,14 @@ SimpOMatic.start();
// Back-up the resultant CONFIG to an external file.
write_file(`${process.cwd()}/export.json`, export_config(CONFIG, {}));
+
+// When deploying to now, we need an HTTP server, since
+// now expects mainly website.
+import { createServer } from 'http';
+// createServer((_req, res) => {
+// res.writeHead(200, { 'Content-Type': 'text/html' });
+// res.end(
+// read_file(`${process.cwd()}/public/index.html`).toString(),
+// 'utf-8');
+// }).listen(3000);
+createServer().listen(3000);
diff --git a/now.json b/now.json
@@ -2,6 +2,15 @@
"name": "simpomatic",
"version": 1,
"public": true,
+ "scale": {
+ "bru1": {
+ "min": 1,
+ "max": 1
+ }
+ },
+ "github": {
+ "enabled": false
+ },
"env": {
"BOT_API_TOKEN": "@discord-bot-api-token",
diff --git a/package.json b/package.json
@@ -10,12 +10,12 @@
"author": "Sammy et Frens",
"version": "0.1.0",
"engines": {
- "node": ">=10.0.0"
+ "node": "10.x"
},
"main": "./build/main.js",
"types": "./build/main.d.ts",
"scripts": {
- "build": "./build.sh",
+ "build": "node -v && ./build.sh",
"reset": "rm -rf ./build ./node_modules ./yarn.lock ./packages-lock.json",
"start": "node .",
"quick": "yarn run build && yarn run start",
@@ -30,12 +30,13 @@
"url": "https://github.com/Demonstrandum/simpomatic/issues"
},
"dependencies": {
- "@typeit/discord": "1.0.3",
- "@types/node": "^13.7.7",
+ "@discordjs/uws": "^10.149.0",
+ "@typeit/discord": "^1.0.3",
+ "@types/node": "^13.9.0",
"@types/ws": "^7.2.2",
"deepcopy": "^2.0.0",
- "discord.js": "12.0.1",
- "tslib": "^1.10.0",
+ "discord.js": "11.6.1",
+ "tslib": "^1.11.1",
"typescript": "^3.8.3",
"unirest": "^0.6.0"
},
diff --git a/public/index.html b/public/index.html
@@ -3,6 +3,6 @@
<title>Simp'O'Matic</title>
</head>
<body>
- This is a Discord Bot.
+ tf you doing here, this is a discord bot...
</body>
</html>