mirror of
https://github.com/arthur-pbty/gestion.git
synced 2026-06-03 23:36:35 +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',
|
||||
description: 'Active ou désactive la protection contre les liens dans le serveur.',
|
||||
utilisation: '+antilink on/off all/invite',
|
||||
category: 'moderation',
|
||||
category: 'antiraid',
|
||||
|
||||
async execute(message, args, client) {
|
||||
const botId = client.user.id;
|
||||
|
||||
+29
-19
@@ -1,28 +1,38 @@
|
||||
const axios = require('axios');
|
||||
const Discord = require('discord.js');
|
||||
const wiki = require('wikipedia');
|
||||
|
||||
|
||||
module.exports = {
|
||||
name: "wiki",
|
||||
aliases: ["wikipedia"],
|
||||
description: "Permet de faire une recherche wikipédia depuis votre serveur ",
|
||||
category: "utils" ,
|
||||
emote:"🌍",
|
||||
utilisation: "wiki <mot-clé>",
|
||||
name: 'wiki',
|
||||
description: 'Recherche un mot clé sur Wikipedia et affiche le résumé dans un embed.',
|
||||
utilisation: '+wiki <mot clé>',
|
||||
category: 'info',
|
||||
|
||||
async execute(message, args, client) {
|
||||
let query = args.join(" ");
|
||||
if(!query) return;
|
||||
|
||||
if (!args.length) {
|
||||
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 {
|
||||
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()
|
||||
.setColor('#00FFFF')
|
||||
.setTitle(`${searchResults.title}`)
|
||||
.setDescription(`${searchResults.extract}`);
|
||||
message.reply({ embeds: [embed] });
|
||||
.setColor('#0099ff')
|
||||
.setTitle(firstResult.title)
|
||||
.setURL(`https://fr.wikipedia.org/wiki/${encodeURIComponent(firstResult.title)}`)
|
||||
.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) {
|
||||
console.error(error);
|
||||
message.reply('Je n\'ai pas pu trouver cette page sur Wikipedia. Veuillez vérifier le mot-clé et réessayer.');
|
||||
message.channel.send('Une erreur est survenue lors de la recherche.');
|
||||
}
|
||||
},
|
||||
};
|
||||
@@ -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,
|
||||
"prevname": 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