summaryrefslogtreecommitdiff
path: root/discordjs/src/index.mjs
diff options
context:
space:
mode:
Diffstat (limited to 'discordjs/src/index.mjs')
-rw-r--r--discordjs/src/index.mjs131
1 files changed, 0 insertions, 131 deletions
diff --git a/discordjs/src/index.mjs b/discordjs/src/index.mjs
deleted file mode 100644
index b456eec..0000000
--- a/discordjs/src/index.mjs
+++ /dev/null
@@ -1,131 +0,0 @@
-// Require the necessary discord.js classes
-import { Client, GatewayIntentBits } from 'discord.js';
-import { request } from "undici";
-
-// Symbol definition
-const SYMBOL_FOR_CREATE = Symbol.for("CREATE");
-const SYMBOL_FOR_UPDATE = Symbol.for("UPDATE");
-
-// Create a new client instance
-const client = new Client({
- intents:
- [
- GatewayIntentBits.Guilds,
- GatewayIntentBits.MessageContent,
- GatewayIntentBits.GuildMessages,
- GatewayIntentBits.DirectMessages
- ]
-});
-
-// `autofeur_db` service
-export const DB = process.env.DB || "http://localhost:3000";
-
-/**
- * Completes a grapheme using the `autofeur_db` service.
- * @param grapheme Grapheme to complete
- * @returns Completed grapheme
- */
-export const completeWord = (grapheme) => {
- let resp = request(`${DB}?grapheme=${encodeURIComponent(grapheme)}`);
- return resp.then((x) => {
- if (x.statusCode === 200) {
- return x.body.text();
- }
- });
-};
-
-/**
- * Cleans a sentence for usage with this program, strips unwanted chars
- * @param sentence Raw discord sentence
- * @returns The last word without any specials characters
- */
-const sanitizeWord = (sentence) => {
- let lastWord = sentence
- .replaceAll(/(?:https?|ftp):\/\/[\n\S]+/g, "")
- .replaceAll(/\:([a-z]|[A-Z])+\:/g, "")
- .replaceAll(/(\?|\!|\.|\,|\;)/g, "")
- .replaceAll(/([^A-z])/g, "")
- .trim()
- .split(" ")
- .slice(-1)[0];
- return lastWord;
-};
-const anyTrivialCharRegex = /([a-z]|[A-Z])+/g;
-const countChars = (str) => ((str || '').match(anyTrivialCharRegex) || []).length;
-
-const specialChannels = [
- "1248226018406301696",
- "995243987948544090"
-]
-
-const ignoredChannels = [
- "1055130476395909210"
-]
-
-let messageReplyCounter = 0;
-const messageAction = async (message, ctx) => {
- if (message.author.bot) return;
- if (message.editedAt == null && ctx == SYMBOL_FOR_UPDATE) return;
-
- messageReplyCounter += 1;
- console.log("counter is at", messageReplyCounter);
-
- let currentTimestamp = Date.now();
- let lastMessageTimestamp = (await message
- .channel
- .messages
- .fetch({
- limit: 2,
- cache: false
- }))
- .last()
- .createdTimestamp;
-
- let shouldReplyByTimestamp = currentTimestamp - lastMessageTimestamp >= 3600000;
- let shouldReplyByCounter =
- messageReplyCounter >= Math.floor(Math.random() * 75) + 35;
- let shouldReply = (
- (ctx === SYMBOL_FOR_CREATE && shouldReplyByTimestamp) ||
- shouldReplyByCounter ||
- specialChannels.includes(message.channelId) ||
- message.guild == null ||
- message.mentions.has(client.user)
- );
-
- if (shouldReply && !ignoredChannels.includes(message.channelId)) {
- let oldCounter = messageReplyCounter;
- if (shouldReplyByTimestamp || shouldReplyByCounter) {
- messageReplyCounter = 0;
- }
- const cleanText = sanitizeWord(message.cleanContent);
- if (countChars(cleanText) > 0) {
- let response = await completeWord(cleanText);
-
- // Ignore if there is no completion
- if ((response || response === "")) {
- message.reply(response);
- }
- } else if (shouldReplyByCounter) {
- messageReplyCounter = oldCounter;
- }
- }
-
- if (message.content.includes("@everyone") && !ignoredChannels.includes(message.channelId)) {
- message.reply("https://cdn.mpgn.dev/pascontent-gabe.gif");
- }
- if (message.content.includes(" allo ")) {
- message.reply("a l'huile")
- }
- if (message.content.includes("<:quoi:1061204752542748742>")) {
- message.reply("<:quoi:1061204752542748742>")
- }
-};
-
-client.on("messageCreate", message =>
- messageAction(message, SYMBOL_FOR_CREATE)
-);
-client.on("messageUpdate", (_, message) =>
- messageAction(message, SYMBOL_FOR_UPDATE)
-);
-
-client.login(process.env.TOKEN);