mirror of
https://github.com/arthur-pbty/gestion.git
synced 2026-06-13 23:58:16 +02:00
add wiki , and antieveryone sysem ( command + event)
This commit is contained in:
@@ -0,0 +1,45 @@
|
|||||||
|
const sqlite3 = require('sqlite3').verbose();
|
||||||
|
const db = new sqlite3.Database('myDatabase.db');
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
name: 'antieveryone',
|
||||||
|
description: 'Active ou désactive la protection contre les mentions de tout le monde dans le serveur.',
|
||||||
|
utilisation: '+antieveryone on/off',
|
||||||
|
category: 'antiraid',
|
||||||
|
|
||||||
|
async execute(message, args, client) {
|
||||||
|
const botId = client.user.id;
|
||||||
|
const guildId = message.guild.id;
|
||||||
|
const status = args[0];
|
||||||
|
|
||||||
|
if (!status || (status !== 'on' && status !== 'off'&& status !== 'max')) {
|
||||||
|
return message.reply('Veuillez utiliser la commande correctement: `+antieveryone on/off`.');
|
||||||
|
}
|
||||||
|
|
||||||
|
let data = await new Promise((resolve, reject) => {
|
||||||
|
db.get('SELECT value FROM gestion WHERE id = ?', [botId], (err, row) => {
|
||||||
|
if (err) {
|
||||||
|
console.error(err.message);
|
||||||
|
reject(err);
|
||||||
|
}
|
||||||
|
resolve(row ? JSON.parse(row.value) : {});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!data[guildId]) {
|
||||||
|
data[guildId] = {};
|
||||||
|
}
|
||||||
|
|
||||||
|
data[guildId].antieveryone = {
|
||||||
|
status: status
|
||||||
|
};
|
||||||
|
|
||||||
|
db.run('INSERT OR REPLACE INTO gestion (id, value) VALUES (?, ?)', [botId, JSON.stringify(data)], function(err) {
|
||||||
|
if (err) {
|
||||||
|
console.error(err.message);
|
||||||
|
return message.reply('Une erreur est survenue lors de la mise à jour de la configuration.');
|
||||||
|
}
|
||||||
|
message.reply(`La protection contre les mentions de tout le monde a été ${status === 'on' ? 'activée' : status === 'max' ? 'maximisée' : 'désactivée'}.`);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
};
|
||||||
@@ -5,7 +5,7 @@ module.exports = {
|
|||||||
name: 'antilink',
|
name: 'antilink',
|
||||||
description: 'Active ou désactive la protection contre les liens dans le serveur.',
|
description: 'Active ou désactive la protection contre les liens dans le serveur.',
|
||||||
utilisation: '+antilink on/off all/invite',
|
utilisation: '+antilink on/off all/invite',
|
||||||
category: 'moderation',
|
category: 'antiraid',
|
||||||
|
|
||||||
async execute(message, args, client) {
|
async execute(message, args, client) {
|
||||||
const botId = client.user.id;
|
const botId = client.user.id;
|
||||||
|
|||||||
+29
-19
@@ -1,28 +1,38 @@
|
|||||||
|
const axios = require('axios');
|
||||||
const Discord = require('discord.js');
|
const Discord = require('discord.js');
|
||||||
const wiki = require('wikipedia');
|
|
||||||
|
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
name: "wiki",
|
name: 'wiki',
|
||||||
aliases: ["wikipedia"],
|
description: 'Recherche un mot clé sur Wikipedia et affiche le résumé dans un embed.',
|
||||||
description: "Permet de faire une recherche wikipédia depuis votre serveur ",
|
utilisation: '+wiki <mot clé>',
|
||||||
category: "utils" ,
|
category: 'info',
|
||||||
emote:"🌍",
|
|
||||||
utilisation: "wiki <mot-clé>",
|
|
||||||
async execute(message, args, client) {
|
async execute(message, args, client) {
|
||||||
let query = args.join(" ");
|
if (!args.length) {
|
||||||
if(!query) return;
|
return message.channel.send(`Veuillez fournir un mot clé pour la recherche.`);
|
||||||
|
}
|
||||||
|
|
||||||
|
const query = encodeURIComponent(args.join(' '));
|
||||||
|
const url = `https://fr.wikipedia.org/w/api.php?action=query&format=json&origin=*&prop=extracts&exintro=&explaintext=&titles=${query}`;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const searchResults = await wiki.summary(query.toLocaleLowerCase());
|
const response = await axios.get(url);
|
||||||
|
const data = response.data;
|
||||||
|
const pages = data.query.pages;
|
||||||
|
const pageId = Object.keys(pages)[0];
|
||||||
|
const extract = pages[pageId].extract;
|
||||||
|
|
||||||
|
// Utiliser le premier résultat sans filtrer par le nombre de mots
|
||||||
|
const firstResult = pages[pageId];
|
||||||
const embed = new Discord.EmbedBuilder()
|
const embed = new Discord.EmbedBuilder()
|
||||||
.setColor('#00FFFF')
|
.setColor('#0099ff')
|
||||||
.setTitle(`${searchResults.title}`)
|
.setTitle(firstResult.title)
|
||||||
.setDescription(`${searchResults.extract}`);
|
.setURL(`https://fr.wikipedia.org/wiki/${encodeURIComponent(firstResult.title)}`)
|
||||||
message.reply({ embeds: [embed] });
|
.setDescription(extract.substring(0, 200) + '...')
|
||||||
|
.addFields({ name: 'Lien', value: '[Lire plus](https://fr.wikipedia.org/wiki/${encodeURIComponent(firstResult.title)})', inline: true });
|
||||||
|
|
||||||
|
message.channel.send({ embeds: [embed] });
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error(error);
|
message.channel.send('Une erreur est survenue lors de la recherche.');
|
||||||
message.reply('Je n\'ai pas pu trouver cette page sur Wikipedia. Veuillez vérifier le mot-clé et réessayer.');
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
@@ -0,0 +1,46 @@
|
|||||||
|
|
||||||
|
const sqlite3 = require('sqlite3').verbose();
|
||||||
|
const { Events, ChannelType } = require("discord.js");
|
||||||
|
const db = new sqlite3.Database('myDatabase.db');
|
||||||
|
const { getPermissionLevel } = require('../../fonction/getPermissionLevel');
|
||||||
|
module.exports = {
|
||||||
|
name: Events.MessageCreate,
|
||||||
|
async execute(message, client) {
|
||||||
|
const botId = message.client.user.id;
|
||||||
|
const guildId = message.guild.id;
|
||||||
|
if (message.channel.type === ChannelType.DM) return;
|
||||||
|
if (!message.content.includes('@everyone')) return;
|
||||||
|
let data = await new Promise((resolve, reject) => {
|
||||||
|
db.get('SELECT value FROM gestion WHERE id = ?', [botId], (err, row) => {
|
||||||
|
if (err) {
|
||||||
|
console.error(err.message);
|
||||||
|
reject(err);
|
||||||
|
}
|
||||||
|
resolve(row ? JSON.parse(row.value) : {});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
const antieveryoneConfig = data[guildId]?.antieveryone;
|
||||||
|
let status = 'off';
|
||||||
|
|
||||||
|
if (antieveryoneConfig) {
|
||||||
|
({ status} = antieveryoneConfig);
|
||||||
|
}
|
||||||
|
if (status === "off") return;
|
||||||
|
data.whitelist = data.whitelist || {};
|
||||||
|
data.whitelist[guildId] = data.whitelist[guildId] || {};
|
||||||
|
const whitelist = data.whitelist[guildId];
|
||||||
|
const user = message.member;
|
||||||
|
if (status === "on") {
|
||||||
|
if (await getPermissionLevel(user, client) >= 10) return;
|
||||||
|
if (whitelist[message.author.id]) return;
|
||||||
|
message.delete().catch(err => {;
|
||||||
|
});
|
||||||
|
} else if (status === "max") {
|
||||||
|
const levelperm = await getPermissionLevel(user, client);
|
||||||
|
if (levelperm >= 10) return;
|
||||||
|
message.delete().catch(err => {;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
};
|
||||||
+8
-1
@@ -167,5 +167,12 @@
|
|||||||
"statserveur": 3,
|
"statserveur": 3,
|
||||||
"prevname": 3,
|
"prevname": 3,
|
||||||
"servericon": 3,
|
"servericon": 3,
|
||||||
"weather": 3
|
"weather": 3,
|
||||||
|
"antieveryone": 3,
|
||||||
|
"antilink": 3,
|
||||||
|
"changeall": 3,
|
||||||
|
"setconfession": 3,
|
||||||
|
"presetlog": 3,
|
||||||
|
"blword": 3,
|
||||||
|
"wiki": 3
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user