mirror of
https://github.com/danbulant/Shasha
synced 2026-06-06 08:01:24 +00:00
fixed in DM avatar command
This commit is contained in:
parent
e2b699dd85
commit
48c12d99f9
4 changed files with 80 additions and 70 deletions
|
|
@ -5,6 +5,7 @@ const { MessageEmbed } = require("discord.js");
|
||||||
const { ranLog, errLog, trySend, findMemberRegEx, multipleMembersFound, cleanMentionID } = require("../../resources/functions");
|
const { ranLog, errLog, trySend, findMemberRegEx, multipleMembersFound, cleanMentionID } = require("../../resources/functions");
|
||||||
const { database } = require("../../database/mongo");
|
const { database } = require("../../database/mongo");
|
||||||
const { randomColors } = require("../../config.json");
|
const { randomColors } = require("../../config.json");
|
||||||
|
const { isArray } = require("util");
|
||||||
|
|
||||||
module.exports = class avatar extends commando.Command {
|
module.exports = class avatar extends commando.Command {
|
||||||
constructor(client) {
|
constructor(client) {
|
||||||
|
|
@ -25,7 +26,6 @@ module.exports = class avatar extends commando.Command {
|
||||||
}
|
}
|
||||||
const footerQuote = r?.["settings"]?.defaultEmbed?.footerQuote;
|
const footerQuote = r?.["settings"]?.defaultEmbed?.footerQuote;
|
||||||
const withPerm = arg.trim().split(/,+/);
|
const withPerm = arg.trim().split(/,+/);
|
||||||
console.log(withPerm);
|
|
||||||
const option = arg.trim().split(/(\-\-)+/);
|
const option = arg.trim().split(/(\-\-)+/);
|
||||||
let user, avatar, member, show;
|
let user, avatar, member, show;
|
||||||
let [allEmb, multipleMemMes, dupliCheck] = [[], [], []];
|
let [allEmb, multipleMemMes, dupliCheck] = [[], [], []];
|
||||||
|
|
@ -37,83 +37,91 @@ module.exports = class avatar extends commando.Command {
|
||||||
if (!msg.guild || msg.guild.member(msg.author).hasPermission("MANAGE_MESSAGES")) {
|
if (!msg.guild || msg.guild.member(msg.author).hasPermission("MANAGE_MESSAGES")) {
|
||||||
args = withPerm;
|
args = withPerm;
|
||||||
} else {
|
} else {
|
||||||
args = withPerm[0];
|
if (withPerm.length < 2) {
|
||||||
if (withPerm.length > 1) {
|
args = withPerm;
|
||||||
|
} else {
|
||||||
|
args = withPerm[0];
|
||||||
trySend(this.client, msg, "Manage messages permission required to show two or more avatar at once!");
|
trySend(this.client, msg, "Manage messages permission required to show two or more avatar at once!");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (const ops of option) {
|
for (const ops of option) {
|
||||||
if (ops.toLowerCase().startsWith("show")) {
|
if (ops.toLowerCase().startsWith("show")) {
|
||||||
const val = ops.trim().split(/ +/);
|
const val = ops.trim().split(/ +/);
|
||||||
const theVal = val[1]?.trim().replace(",", "");
|
const theVal = val[1]?.match(/\d*/);
|
||||||
if (theVal && !/\D/.test(theVal)) {
|
if (theVal[0]) {
|
||||||
show = parseInt(val[1].trim(), 10);
|
show = parseInt(theVal[0].trim(), 10);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (args.length !== 0) {
|
if (arg) {
|
||||||
|
let onceOnly = false;
|
||||||
for(const theAvThis of args) {
|
for(const theAvThis of args) {
|
||||||
const avThis = theAvThis.replace(/\-\-show *\d*/i, "");
|
let avThis = theAvThis.replace(/\-\-show *\d*/i, "");
|
||||||
let uID = avThis.trim();
|
if (avThis.length === 1) {
|
||||||
uID = cleanMentionID(uID);
|
avThis = args.replace(/\-\-show *\d*/i, "");
|
||||||
if (uID.length === 1) {
|
onceOnly = true;
|
||||||
return trySend(this.client, msg, "One character for searching member isn't allowed <:catstareLife:794930503076675584>");
|
if (avThis.length === 1) {
|
||||||
} else {
|
return trySend(this.client, msg, "One character for searching member isn't allowed <:catstareLife:794930503076675584>");
|
||||||
if (uID) {
|
}
|
||||||
let ree = [];
|
}
|
||||||
async function nonDigit(client) {
|
let uID = cleanMentionID(avThis.trim());
|
||||||
const theree = await findMemberRegEx(msg, client, uID);
|
if (uID.length > 1) {
|
||||||
if (theree.length === 0) {
|
let ree = [];
|
||||||
user = undefined;
|
async function nonDigit(client) {
|
||||||
trySend(client, msg, `Can't find user: **${avThis.trim()}**`);
|
const theree = await findMemberRegEx(msg, uID);
|
||||||
}
|
if (theree) {
|
||||||
for (const reeRes of theree) {
|
for (const reeRes of theree) {
|
||||||
ree.push(reeRes);
|
ree.push(reeRes);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
if (/\D/.test(uID)) {
|
|
||||||
await nonDigit(this.client);
|
|
||||||
} else {
|
} else {
|
||||||
if (msg.guild.member(uID)) {
|
trySend(client, msg, `Can't find user: **${avThis.trim()}**`);
|
||||||
ree.push(msg.guild.member(uID));
|
|
||||||
} else {
|
|
||||||
await this.client.users.fetch(uID).then(r => ree.push(r)).catch(async e => await nonDigit(this.client));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (ree.length > 0) {
|
|
||||||
const duplicateRes = dupliCheck.findIndex(yes => yes === ree[0].id);
|
|
||||||
if (duplicateRes !== -1) {
|
|
||||||
allEmb[duplicateRes].setDescription(`Duplicate result for: **${avThis.trim()}**`);
|
|
||||||
user = undefined;
|
|
||||||
} else {
|
|
||||||
dupliCheck.push(ree[0].id);
|
|
||||||
user = ree[0].user ?? ree[0];
|
|
||||||
multipleMemMes.push(multipleMembersFound(this.client, msg, ree, uID, show));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (user) {
|
|
||||||
avatar = user.displayAvatarURL({size:4096,dynamic:true});
|
|
||||||
let emb = new MessageEmbed()
|
|
||||||
.setImage(avatar)
|
|
||||||
.setFooter(footerQuote ?? "");
|
|
||||||
member = msg.guild ? msg.guild.member(user) : undefined;
|
|
||||||
if (member) {
|
|
||||||
emb.setTitle(member.displayName);
|
|
||||||
if (member.displayColor) {
|
|
||||||
emb.setColor(member.displayColor)
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
emb.setTitle(user.username);
|
|
||||||
}
|
|
||||||
if (!msg.guild) {
|
|
||||||
emb.setColor(randomColors[Math.floor(Math.random() * randomColors.length)]);
|
|
||||||
}
|
|
||||||
if (emb.color === 16777215) {
|
|
||||||
emb.setColor(16777214);
|
|
||||||
}
|
|
||||||
allEmb.push(emb);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (/\D/.test(uID)) {
|
||||||
|
await nonDigit(this.client);
|
||||||
|
} else {
|
||||||
|
if (msg.guild?.member(uID)) {
|
||||||
|
ree.push(msg.guild.member(uID));
|
||||||
|
} else {
|
||||||
|
await this.client.users.fetch(uID).then(r => ree.push(r)).catch(async e => await nonDigit(this.client));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (ree.length > 0) {
|
||||||
|
const duplicateRes = dupliCheck.findIndex(yes => yes === ree[0].id);
|
||||||
|
if (duplicateRes !== -1) {
|
||||||
|
allEmb[duplicateRes].setDescription(`Duplicate result for: **${avThis.trim()}**`);
|
||||||
|
user = undefined;
|
||||||
|
} else {
|
||||||
|
dupliCheck.push(ree[0].id);
|
||||||
|
user = ree[0].user ?? ree[0];
|
||||||
|
multipleMemMes.push(multipleMembersFound(this.client, msg, ree, uID, show));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (user) {
|
||||||
|
avatar = user.displayAvatarURL({size:4096,dynamic:true});
|
||||||
|
let emb = new MessageEmbed()
|
||||||
|
.setImage(avatar)
|
||||||
|
.setFooter(footerQuote ?? "");
|
||||||
|
member = msg.guild ? msg.guild.member(user) : undefined;
|
||||||
|
if (member) {
|
||||||
|
emb.setTitle(member.displayName);
|
||||||
|
if (member.displayColor) {
|
||||||
|
emb.setColor(member.displayColor)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
emb.setTitle(user.username);
|
||||||
|
}
|
||||||
|
if (!msg.guild) {
|
||||||
|
emb.setColor(randomColors[Math.floor(Math.random() * randomColors.length)]);
|
||||||
|
}
|
||||||
|
if (emb.color === 16777215) {
|
||||||
|
emb.setColor(16777214);
|
||||||
|
}
|
||||||
|
allEmb.push(emb);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (onceOnly) {
|
||||||
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,7 @@ module.exports = class lookup extends commando.Command {
|
||||||
fetchedMember.push(msg.guild.member(memberID));
|
fetchedMember.push(msg.guild.member(memberID));
|
||||||
}
|
}
|
||||||
if (/\D/.test(memberID) || fetchedMember[0] === null) {
|
if (/\D/.test(memberID) || fetchedMember[0] === null) {
|
||||||
fetchedMember = await findMemberRegEx(msg, this.client, memberID);
|
fetchedMember = await findMemberRegEx(msg, memberID);
|
||||||
}
|
}
|
||||||
if (fetchedMember.length > 1) {
|
if (fetchedMember.length > 1) {
|
||||||
memMes = multipleMembersFound(this.client, msg, fetchedMember, memberID, show, true);
|
memMes = multipleMembersFound(this.client, msg, fetchedMember, memberID, show, true);
|
||||||
|
|
|
||||||
|
|
@ -210,16 +210,18 @@ function multipleMembersFound(client, msg, arr, key, max = 5, withID) {
|
||||||
* @param {String} name
|
* @param {String} name
|
||||||
* @returns {Promise<GuildMember[]>} Member object found
|
* @returns {Promise<GuildMember[]>} Member object found
|
||||||
*/
|
*/
|
||||||
async function findMemberRegEx(msg, client, name) {
|
async function findMemberRegEx(msg, name) {
|
||||||
let found = [];
|
let found = [];
|
||||||
const re = new RegExp(name, "i");
|
const re = new RegExp(name, "i");
|
||||||
const list = msg.guild.members.cache.map(g => g);
|
const list = msg.guild?.members.cache.array();
|
||||||
for(const mem of list) {
|
if (list) {
|
||||||
if (re.test(mem.displayName) || re.test((await client.users.fetch(mem.id)).tag)) {
|
for(const mem of list) {
|
||||||
found.push(mem);
|
if (re.test(mem.displayName) || re.test(mem.user.tag)) {
|
||||||
|
found.push(mem);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
return found;
|
||||||
}
|
}
|
||||||
return found;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -45,7 +45,6 @@ async function shaChat(client, index, question) {
|
||||||
await page.waitForSelector("input[id=\"question\"]");
|
await page.waitForSelector("input[id=\"question\"]");
|
||||||
await page.type("input[id=\"question\"]", query);
|
await page.type("input[id=\"question\"]", query);
|
||||||
await page.keyboard.press("Enter");
|
await page.keyboard.press("Enter");
|
||||||
await page.waitForSelector(`#answer > div:nth-child(${index})`, {timeout:5000}).catch(() => {});
|
|
||||||
return fetchAnswer(page, index);
|
return fetchAnswer(page, index);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
throw error;
|
throw error;
|
||||||
|
|
@ -60,6 +59,7 @@ async function shaChat(client, index, question) {
|
||||||
*/
|
*/
|
||||||
async function fetchAnswer(page, index) {
|
async function fetchAnswer(page, index) {
|
||||||
try {
|
try {
|
||||||
|
await page.waitForSelector(`#answer > div:nth-child(${index})`, {timeout:5000}).catch(() => {});
|
||||||
const result = await page.evaluate((index) => {
|
const result = await page.evaluate((index) => {
|
||||||
const res = document.querySelector(`#answer > div:nth-child(${index})`).childNodes[4].textContent;
|
const res = document.querySelector(`#answer > div:nth-child(${index})`).childNodes[4].textContent;
|
||||||
return res;
|
return res;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue