unify typing logic for a more consistent experience

This commit is contained in:
bignutty 2024-12-08 15:00:18 +01:00
parent d2aeecf70d
commit 1ca74d3c2c
67 changed files with 240 additions and 109 deletions

View file

@ -1,7 +1,8 @@
const { paginator } = require('#client');
const { DISCORD_INVITES, DEFAULT_PREFIXES, PERMISSION_GROUPS } = require('#constants');
const { createEmbed, formatPaginationEmbeds, page } = require('#utils/embed')
const { createEmbed, formatPaginationEmbeds, page } = require('#utils/embed');
const { acknowledge } = require('#utils/interactions');
const { codeblock, icon, link, pill, smallPill, iconPill, stringwrap } = require('#utils/markdown')
const { editOrReply } = require('#utils/message');
const { hasFeature } = require('#utils/testing');
@ -133,8 +134,9 @@ module.exports = {
if(await hasFeature(context, "core/help")) categories["limited"] = `${iconPill("stars", "Limited Test Commands")}`;
else if (categories["limited"]) delete categories["limited"]
await acknowledge(context);
if (args.command) {
await context.triggerTyping()
// Detailed command view
let resultScores = {}

View file

@ -1,6 +1,7 @@
const { PERMISSION_GROUPS } = require('#constants');
const { format } = require('#utils/ansi')
const { createEmbed } = require('#utils/embed')
const { createEmbed } = require('#utils/embed');
const { acknowledge } = require('#utils/interactions');
const { codeblock, icon } = require('#utils/markdown')
const { editOrReply } = require('#utils/message')
@ -15,7 +16,8 @@ module.exports = {
},
permissionsClient: [...PERMISSION_GROUPS.baseline],
run: async (context) => {
context.triggerTyping();
await acknowledge(context);
ping = await context.client.ping()
editOrReply(context, createEmbed("default", context, {
description: `${icon("latency")} **Pong!**\n` + codeblock("ansi", [`rest ${format(`${ping.rest}ms`, "m")}`, `gateway ${format(`${ping.gateway}ms`, "m")}`])

View file

@ -1,6 +1,7 @@
const { PRIVACY_POLICY_LAST_UPDATE, PRIVACY_POLICY_SECTIONS, DISCORD_INVITES, COLORS, PRIVACY_POLICY_PREVIOUS_REVISION, PERMISSION_GROUPS } = require('#constants');
const { createEmbed } = require('#utils/embed');
const { acknowledge } = require('#utils/interactions');
const { icon, timestamp, link, iconLinkPill } = require('#utils/markdown');
const { editOrReply } = require('#utils/message');
@ -14,6 +15,8 @@ module.exports = {
},
permissionsClient: [...PERMISSION_GROUPS.baseline],
run: async (context) => {
await acknowledge(context);
return await editOrReply(context,
createEmbed("default", context, {
description: `${icon("brand")} **${context.client.user.username} Privacy Policy**\n*Last Updated: ${timestamp(PRIVACY_POLICY_LAST_UPDATE, "f")}*\n${PRIVACY_POLICY_SECTIONS.join('\n')}\n\nIf you have any further questions, please contact us via our ${iconLinkPill("discord", DISCORD_INVITES.privacy, "Support Server", "Click to join")}\nPrevious privacy policy revision: ${link(`https://bignutty.gitlab.io/webstorage4/v2/documents/${PRIVACY_POLICY_PREVIOUS_REVISION}.txt`, 'June 2022')}`,

View file

@ -1,6 +1,7 @@
const { PERMISSION_GROUPS } = require('#constants');
const { format } = require('#utils/ansi');
const { createEmbed } = require('#utils/embed')
const { createEmbed } = require('#utils/embed');
const { acknowledge } = require('#utils/interactions');
const { codeblock } = require('#utils/markdown')
const { editOrReply } = require('#utils/message');
@ -14,6 +15,8 @@ module.exports = {
},
permissionsClient: [...PERMISSION_GROUPS.baseline],
run: async (context) => {
await acknowledge(context);
return await editOrReply(context,
createEmbed("default", context, {
description: `${codeblock("ansi", [

View file

@ -1,6 +1,7 @@
const { OPEN_SOURCE_REPOSITORY_URL, PERMISSION_GROUPS } = require('#constants');
const { createEmbed } = require('#utils/embed');
const { acknowledge } = require('#utils/interactions');
const { highlight, iconPill, iconLinkPill } = require('#utils/markdown');
const { editOrReply } = require('#utils/message');
@ -33,7 +34,8 @@ module.exports = {
},
permissionsClient: [...PERMISSION_GROUPS.baseline],
run: async (context) => {
context.triggerTyping();
await acknowledge(context);
try{
if(context.manager){
const globalStats = await context.manager.broadcastEval((cluster) => {

View file

@ -1,3 +1,4 @@
const { acknowledge } = require("#utils/interactions");
const { codeblock } = require("#utils/markdown");
const { Utils } = require("detritus-client");
@ -24,7 +25,8 @@ module.exports = {
onBefore: context => context.user.isClientOwner,
onCancel: ()=>{},
run: async (context, args) => {
await context.triggerTyping();
await acknowledge(context);
const { matches } = Utils.regex(
DiscordRegexNames.TEXT_CODEBLOCK,
args.code

View file

@ -1,4 +1,5 @@
const { createEmbed } = require("#utils/embed");
const { acknowledge } = require("#utils/interactions");
const { editOrReply } = require("#utils/message");
const { getTestConfig } = require("#utils/testing");
@ -14,7 +15,8 @@ module.exports = {
onBefore: context => context.user.isClientOwner,
onCancel: ()=>{},
run: async (context, args) => {
await context.triggerTyping();
await acknowledge(context);
let c = await getTestConfig();
return await editOrReply(context, createEmbed("success", context, "Refreshed configs (v"+c.revision+")."));
}

View file

@ -1,3 +1,4 @@
const { acknowledge } = require("#utils/interactions");
const { codeblock } = require("#utils/markdown");
const { editOrReply } = require("#utils/message");
@ -14,7 +15,8 @@ module.exports = {
onBefore: context => context.user.isClientOwner,
onCancel: ()=>{},
run: async (context) => {
await context.triggerTyping();
await acknowledge(context);
const time = Date.now();
console.log(`[${process.env.HOSTNAME}] refreshing all commands @ ${Date.now()} by ${context.user.username}${context.user.discriminator} (${context.user.id})`)
let data;

View file

@ -1,3 +1,5 @@
const { acknowledge } = require("#utils/interactions");
module.exports = {
label: "text",
name: "say",
@ -11,7 +13,8 @@ module.exports = {
onBefore: context => context.user.isClientOwner,
onCancel: ()=>{},
run: async (context, args) => {
await context.triggerTyping();
await acknowledge(context);
if(context.message.canDelete) context.message.delete();
await context.reply({
content: args.text,

View file

@ -1,4 +1,5 @@
const { prideborder } = require("#api");
const { acknowledge } = require("#utils/interactions");
const { editOrReply } = require("#utils/message");
@ -15,7 +16,8 @@ module.exports = {
onBefore: context => context.user.isClientOwner,
onCancel: ()=>{},
run: async (context, args) => {
await context.triggerTyping();
await acknowledge(context);
const a = await prideborder(context, "https://cdn.discordapp.com/emojis/1145727546747535412.png?size=4096")
editOrReply(context, "ok");
}

View file

@ -1,6 +1,7 @@
const { DEFAULT_PREFIXES, PERMISSION_GROUPS } = require('#constants');
const { createEmbed } = require('#utils/embed')
const { createEmbed } = require('#utils/embed');
const { acknowledge } = require('#utils/interactions');
const { codeblock } = require('#utils/markdown');
const { editOrReply } = require('#utils/message')
@ -35,6 +36,8 @@ module.exports = {
],
permissionsClient: [...PERMISSION_GROUPS.baseline, ...PERMISSION_GROUPS.attachments],
run: async (context, args) => {
await acknowledge(context);
await editOrReply(context, createEmbed("loading", context, `Generating image...`))
try{
let seed = Math.floor(Math.random() * 999999) + 100000,

View file

@ -2,6 +2,7 @@ const { garfield } = require('#api');
const { FUNNY_CAT_ICONS, PERMISSION_GROUPS } = require('#constants');
const { createEmbed } = require('#utils/embed');
const { acknowledge } = require('#utils/interactions');
const { timestamp } = require('#utils/markdown');
const { editOrReply } = require('#utils/message')
@ -16,7 +17,8 @@ module.exports = {
},
permissionsClient: [...PERMISSION_GROUPS.baseline],
run: async (context) => {
context.triggerTyping();
await acknowledge(context);
const garf = (await garfield()).response.body

View file

@ -1,5 +1,6 @@
const { PERMISSION_GROUPS } = require('#constants');
const { createEmbed } = require('#utils/embed');
const { acknowledge } = require('#utils/interactions');
const { editOrReply } = require('#utils/message');
const { STATICS } = require('#utils/statics');
@ -16,7 +17,8 @@ module.exports = {
},
permissionsClient: [...PERMISSION_GROUPS.baseline],
run: async (context) => {
await context.triggerTyping();
await acknowledge(context);
try {
let res = await superagent.get(`https://inspirobot.me/api?generate=true`)
.set("User-Agent", "labscore/2.0")

View file

@ -1,7 +1,8 @@
const { otter } = require('#api');
const { PERMISSION_GROUPS } = require('#constants');
const { createEmbed } = require('#utils/embed')
const { createEmbed } = require('#utils/embed');
const { acknowledge } = require('#utils/interactions');
const { editOrReply } = require('#utils/message')
module.exports = {
@ -15,7 +16,8 @@ module.exports = {
},
permissionsClient: [...PERMISSION_GROUPS.baseline],
run: async (context) => {
await context.triggerTyping();
await acknowledge(context);
try{
const ott = (await otter()).response.body

View file

@ -1,7 +1,8 @@
const { PERMISSION_GROUPS } = require('#constants');
const { webAsk } = require('#obelisk');
const { createEmbed } = require('#utils/embed')
const { createEmbed } = require('#utils/embed');
const { acknowledge } = require('#utils/interactions');
const { iconPill, smallIconPill } = require('#utils/markdown')
const { editOrReply } = require('#utils/message')
const { STATIC_ICONS } = require('#utils/statics');
@ -23,7 +24,7 @@ module.exports = {
permissionsClient: [...PERMISSION_GROUPS.baseline],
run: async (context, args) => {
if(!await hasFeature(context, "flamingo/summary")) return;
context.triggerTyping();
await acknowledge(context);
if(!args.text) return editOrReply(context, createEmbed("warning", context, "You need to ask a question."))
if(!context.message.messageReference) return editOrReply(context, createEmbed("warning", context, "You need to reply to a message containing a link."))

View file

@ -2,6 +2,7 @@ const { emogen } = require("#api");
const { PERMISSION_GROUPS } = require("#constants");
const { createEmbed } = require("#utils/embed");
const { acknowledge } = require("#utils/interactions");
const { iconPill } = require("#utils/markdown");
const { editOrReply } = require("#utils/message");
const { hasFeature } = require("#utils/testing");
@ -22,8 +23,8 @@ module.exports = {
permissionsClient: [...PERMISSION_GROUPS.baseline, ...PERMISSION_GROUPS.attachments],
run: async (context, args) => {
if(!await hasFeature(context, "ai/imagen")) return;
context.triggerTyping();
await acknowledge(context);
if(!args.text) return editOrReply(context, createEmbed("warning", context, `Missing Parameter (prompt).`))
try{

View file

@ -2,6 +2,7 @@ const { PERMISSION_GROUPS } = require("#constants");
const { LlmModelsGenerate } = require("#obelisk");
const { createEmbed } = require("#utils/embed");
const { acknowledge } = require("#utils/interactions");
const { stringwrap, iconPill, smallIconPill } = require("#utils/markdown");
const { editOrReply } = require("#utils/message");
const { STATIC_ICONS } = require("#utils/statics");
@ -21,8 +22,8 @@ module.exports = {
permissionsClient: [...PERMISSION_GROUPS.baseline, ...PERMISSION_GROUPS.attachments],
run: async (context, args) => {
if(!await hasFeature(context, "ai/gemini/text")) return;
context.triggerTyping();
await acknowledge(context);
if(!args.text) return editOrReply(context, createEmbed("warning", context, `Missing Parameter (text).`))
let input = args.text;

View file

@ -3,6 +3,7 @@ const { geminiVision } = require("#obelisk");
const { getRecentImage } = require("#utils/attachment");
const { createEmbed } = require("#utils/embed");
const { acknowledge } = require("#utils/interactions");
const { stringwrap, iconPill, smallIconPill } = require("#utils/markdown");
const { editOrReply } = require("#utils/message");
const { STATIC_ICONS } = require("#utils/statics");
@ -22,8 +23,8 @@ module.exports = {
permissionsClient: [...PERMISSION_GROUPS.baseline, ...PERMISSION_GROUPS.attachments],
run: async (context, args) => {
if(!await hasFeature(context, "ai/gemini/vision")) return;
context.triggerTyping();
await acknowledge(context);
// for the sake of privacy, make the context window one message
let image = await getRecentImage(context, 1)
if (!image) return editOrReply(context, createEmbed("warning", context, "No images found. Reply if you want a specific image."))

View file

@ -1,7 +1,8 @@
const { PERMISSION_GROUPS } = require('#constants');
const { LlmPrivateBard } = require('#obelisk');
const { createEmbed } = require('#utils/embed')
const { createEmbed } = require('#utils/embed');
const { acknowledge } = require('#utils/interactions');
const { iconPill, stringwrap } = require('#utils/markdown')
const { editOrReply } = require('#utils/message')
const { STATIC_ICONS } = require('#utils/statics');
@ -25,8 +26,8 @@ module.exports = {
permissionsClient: [...PERMISSION_GROUPS.baseline, ...PERMISSION_GROUPS.attachments],
run: async (context, args) => {
if(!await hasFeature(context, "ai/bard")) return;
context.triggerTyping();
await acknowledge(context);
if(!args.text) return editOrReply(context, createEmbed("warning", context, `Missing Parameter (text).`))
let input = args.text;

View file

@ -6,6 +6,7 @@ const { editOrReply } = require('#utils/message')
const { iconPill, stringwrap, smallIconPill } = require('#utils/markdown')
const { STATICS, STATIC_ASSETS } = require('#utils/statics');
const { hasFeature } = require('#utils/testing');
const { acknowledge } = require('#utils/interactions');
module.exports = {
@ -26,8 +27,8 @@ module.exports = {
permissionsClient: [...PERMISSION_GROUPS.baseline, ...PERMISSION_GROUPS.attachments],
run: async (context, args) => {
if(!await hasFeature(context, "ai/gpt")) return;
context.triggerTyping();
await acknowledge(context);
if(!args.text) return editOrReply(context, createEmbed("warning", context, `Missing Parameter (text).`))
let input = args.text;

View file

@ -2,6 +2,7 @@ const { PERMISSION_GROUPS } = require("#constants");
const { GenerativeImagesModelsImagen } = require("#obelisk");
const { createEmbed } = require("#utils/embed");
const { acknowledge } = require("#utils/interactions");
const { iconPill, stringwrap } = require("#utils/markdown");
const { editOrReply } = require("#utils/message");
const { STATIC_ICONS, STATIC_ASSETS } = require("#utils/statics");
@ -21,8 +22,8 @@ module.exports = {
permissionsClient: [...PERMISSION_GROUPS.baseline, ...PERMISSION_GROUPS.attachments],
run: async (context, args) => {
if(!await hasFeature(context, "ai/imagen")) return;
context.triggerTyping();
await acknowledge(context);
if(!args.text) return editOrReply(context, createEmbed("warning", context, `Missing Parameter (prompt).`))
try{

View file

@ -6,6 +6,7 @@ const { editOrReply } = require('#utils/message')
const { iconPill, stringwrap, smallIconPill } = require('#utils/markdown')
const { STATIC_ICONS } = require('#utils/statics');
const { hasFeature } = require('#utils/testing');
const { acknowledge } = require('#utils/interactions');
module.exports = {
name: 'palm',
@ -25,8 +26,8 @@ module.exports = {
permissionsClient: [...PERMISSION_GROUPS.baseline, ...PERMISSION_GROUPS.attachments],
run: async (context, args) => {
if(!await hasFeature(context, "ai/palm")) return;
context.triggerTyping();
await acknowledge(context);
if(!args.text) return editOrReply(context, createEmbed("warning", context, `Missing Parameter (text).`))
let input = args.text;

View file

@ -1,7 +1,8 @@
const { PERMISSION_GROUPS } = require('#constants');
const { SparkWebSummarize } = require('#obelisk');
const { createEmbed } = require('#utils/embed')
const { createEmbed } = require('#utils/embed');
const { acknowledge } = require('#utils/interactions');
const { iconPill, smallIconPill } = require('#utils/markdown')
const { editOrReply } = require('#utils/message')
const { STATIC_ICONS } = require('#utils/statics');
@ -24,8 +25,8 @@ module.exports = {
permissionsClient: [...PERMISSION_GROUPS.baseline],
run: async (context, args) => {
if(!await hasFeature(context, "flamingo/summary")) return;
context.triggerTyping();
await acknowledge(context);
let content = args.text;
if(context.message.messageReference) {
let msg = await context.message.channel.fetchMessage(context.message.messageReference.messageId);

View file

@ -2,6 +2,7 @@ const { PERMISSION_GROUPS } = require("#constants");
const { wallpaper } = require("#obelisk");
const { createEmbed } = require("#utils/embed");
const { acknowledge } = require("#utils/interactions");
const { iconPill, stringwrap } = require("#utils/markdown");
const { editOrReply } = require("#utils/message");
const { STATIC_ICONS, STATIC_ASSETS } = require("#utils/statics");
@ -24,8 +25,8 @@ module.exports = {
permissionsClient: [...PERMISSION_GROUPS.baseline, ...PERMISSION_GROUPS.attachments],
run: async (context, args) => {
if(!await hasFeature(context, "ai/wallpapers")) return;
context.triggerTyping();
await acknowledge(context);
if(!args.text) return editOrReply(context, createEmbed("warning", context, `Missing Parameter (prompt).`))
if(!["wide","square"].includes(args.format.toLowerCase())) return editOrReply(context, createEmbed("warning", context, `Invalid Parameter (format).`))
try{

View file

@ -3,6 +3,7 @@ const { PERMISSION_GROUPS } = require("#constants");
const { getRecentImage } = require("#utils/attachment");
const { createEmbed } = require("#utils/embed");
const { acknowledge } = require("#utils/interactions");
const { pill, smallPill } = require("#utils/markdown");
const { editOrReply } = require("#utils/message");
const { STATICS } = require("#utils/statics");
@ -17,7 +18,8 @@ module.exports = {
},
permissionsClient: [...PERMISSION_GROUPS.baseline],
run: async (context) => {
context.triggerTyping();
await acknowledge(context);
let image = await getRecentImage(context, 50)
if (!image) return editOrReply(context, createEmbed("warning", context, "No images found."))

View file

@ -3,6 +3,7 @@ const { GOOGLE_CLOUD_SAFETY_LABELS, GOOGLE_CLOUD_SAFETY_LABELS_NAMES, PERMISSION
const { getRecentImage } = require("#utils/attachment");
const { createEmbed } = require("#utils/embed");
const { acknowledge } = require("#utils/interactions");
const { iconPill, smallPill } = require("#utils/markdown");
const { editOrReply } = require("#utils/message");
const { STATICS } = require("#utils/statics");
@ -17,7 +18,8 @@ module.exports = {
},
permissionsClient: [...PERMISSION_GROUPS.baseline],
run: async (context) => {
context.triggerTyping();
await acknowledge(context);
let image = await getRecentImage(context, 50)
if (!image) return editOrReply(context, createEmbed("warning", context, "No images found."))

View file

@ -1,7 +1,8 @@
const { PERMISSION_GROUPS } = require('#constants');
const { AudioTranscribe } = require('#obelisk');
const { createEmbed } = require('#utils/embed')
const { createEmbed } = require('#utils/embed');
const { acknowledge } = require('#utils/interactions');
const { codeblock, icon } = require('#utils/markdown');
const { editOrReply } = require('#utils/message')
const { STATICS } = require('#utils/statics');
@ -18,7 +19,8 @@ module.exports = {
},
permissionsClient: [...PERMISSION_GROUPS.baseline],
run: async (context) => {
context.triggerTyping();
await acknowledge(context);
if (!context.message.messageReference) return editOrReply(context, createEmbed("warning", context, "You need to reply to a voice message."))
try {
let msg;

View file

@ -6,6 +6,7 @@ const superagent = require('superagent');
const { Routes } = require('detritus-client-rest/lib/endpoints');
const { PERMISSION_GROUPS } = require("#constants");
const { acknowledge } = require("#utils/interactions");
const applicationFlags = {
EMBEDDED_RELEASED: 1,
@ -48,7 +49,8 @@ module.exports = {
},
permissionsClient: [...PERMISSION_GROUPS.baseline],
run: async (context, args) => {
context.triggerTyping();
await acknowledge(context);
let id;
if(/[0-9]{17,19}/.test(args.id)){
id = args.id.match(/[0-9]{17,19}/)

View file

@ -2,6 +2,7 @@ const { paginator } = require('#client');
const { PERMISSION_GROUPS } = require('#constants');
const { createEmbed, page } = require("#utils/embed");
const { acknowledge } = require('#utils/interactions');
const { icon } = require('#utils/markdown');
const { editOrReply } = require("#utils/message");
const { getUser, getUserAvatar } = require("#utils/users");
@ -20,7 +21,8 @@ module.exports = {
},
permissionsClient: [...PERMISSION_GROUPS.baseline],
run: async (context, args) => {
context.triggerTyping();
await acknowledge(context);
if(!args.user) args.user = context.userId;
let u = await getUser(context, args.user)
if(!u || !u.user) return editOrReply(context, createEmbed("warning", context, "No users found."))

View file

@ -2,6 +2,7 @@ const { paginator } = require('#client');
const { PERMISSION_GROUPS } = require('#constants');
const { createEmbed, page } = require("#utils/embed");
const { acknowledge } = require('#utils/interactions');
const { icon } = require('#utils/markdown');
const { editOrReply } = require("#utils/message");
const { getUser } = require("#utils/users");
@ -20,7 +21,8 @@ module.exports = {
},
permissionsClient: [...PERMISSION_GROUPS.baseline],
run: async (context, args) => {
context.triggerTyping();
await acknowledge(context);
if(!args.user) args.user = context.userId;
let u = await getUser(context, args.user)
if(!u || !u.user) return editOrReply(context, createEmbed("warning", context, "No users found."))

View file

@ -3,6 +3,7 @@ const { PERMISSION_GROUPS } = require('#constants');
const { createEmbed, page, formatPaginationEmbeds } = require("#utils/embed");
const { guildFeaturesField } = require("#utils/fields");
const { acknowledge } = require('#utils/interactions');
const { icon, highlight, timestamp, codeblock, smallIconPill } = require("#utils/markdown");
const { editOrReply } = require("#utils/message");
@ -18,6 +19,8 @@ module.exports = {
},
permissionsClient: [...PERMISSION_GROUPS.baseline],
run: async (context) => {
await acknowledge(context);
try{
const emojis = context.message.guild.emojis

View file

@ -1,5 +1,6 @@
const { PERMISSION_GROUPS } = require('#constants');
const { createEmbed } = require('#utils/embed')
const { createEmbed } = require('#utils/embed');
const { acknowledge } = require('#utils/interactions');
const { editOrReply } = require('#utils/message')
module.exports = {
@ -13,7 +14,8 @@ module.exports = {
},
permissionsClient: [...PERMISSION_GROUPS.baseline],
run: async (context) => {
context.triggerTyping();
await acknowledge(context);
if (!context.guild.bannerUrl) return editOrReply(context, createEmbed("warning", context, "Server doesn't have a banner set."))
return editOrReply(context, createEmbed("default", context, {
image: {

View file

@ -1,5 +1,6 @@
const { PERMISSION_GROUPS } = require('#constants');
const { createEmbed } = require('#utils/embed')
const { createEmbed } = require('#utils/embed');
const { acknowledge } = require('#utils/interactions');
const { editOrReply } = require('#utils/message')
module.exports = {
@ -13,7 +14,8 @@ module.exports = {
},
permissionsClient: [...PERMISSION_GROUPS.baseline],
run: async (context) => {
context.triggerTyping();
await acknowledge(context);
if (!context.guild.iconUrl) return editOrReply(context, createEmbed("warning", context, "Server doesn't have an icon."))
return editOrReply(context, createEmbed("default", context, {
image: {

View file

@ -3,6 +3,7 @@ const { DISCORD_INVITES, OPEN_SOURCE_REPOSITORY_URL, PERMISSION_GROUPS } = requi
const { createEmbed, formatPaginationEmbeds, page } = require("#utils/embed");
const { guildFeaturesField } = require("#utils/fields");
const { acknowledge } = require('#utils/interactions');
const { icon, highlight, timestamp, iconPill, iconLinkPill, link } = require("#utils/markdown");
const { editOrReply } = require("#utils/message");
const { STATIC_ASSETS } = require("#utils/statics");
@ -20,7 +21,8 @@ module.exports = {
},
permissionsClient: [...PERMISSION_GROUPS.baseline],
run: async (context, args) => {
context.triggerTyping();
await acknowledge(context);
if(!args.invite) return editOrReply(context, {
content: link("https://canary.discord.com/application-directory/" + context.client.user.id + " ", "󠄴", "App Directory Invite", true) + link(DISCORD_INVITES.invite + " ", "󠄴", "labsCore Support Server", true),
embeds: [createEmbed("default", context, {

View file

@ -3,6 +3,7 @@ const { PERMISSION_GROUPS } = require('#constants');
const { PERMISSION_CATEGORIES, PERMISSIONS_TEXT } = require('#permissions');
const { createEmbed, page, formatPaginationEmbeds } = require("#utils/embed");
const { acknowledge } = require('#utils/interactions');
const { icon, iconPill, smallPill, pill } = require("#utils/markdown");
const { editOrReply } = require("#utils/message");
@ -96,6 +97,8 @@ module.exports = {
},
permissionsClient: [...PERMISSION_GROUPS.baseline],
run: async (context, args) => {
await acknowledge(context);
let r = context.guild.roles.filter((r)=>r.name.toLowerCase().includes(args.query.toLowerCase()) || r.id == args.query)[0]
if(!r) return await editOrReply(context, createEmbed("warning", context, "No roles matched your query."))

View file

@ -2,6 +2,7 @@ const { paginator } = require("#client");
const { PERMISSION_GROUPS } = require("#constants");
const { createEmbed, page } = require("#utils/embed");
const { acknowledge } = require("#utils/interactions");
const { icon, highlight, timestamp, smallIconPill, smallPill } = require("#utils/markdown");
const { editOrReply } = require("#utils/message");
const { getUser, renderBadges, getUserAvatar } = require("#utils/users");
@ -22,7 +23,8 @@ module.exports = {
},
permissionsClient: [...PERMISSION_GROUPS.baseline],
run: async (context, args) => {
context.triggerTyping();
await acknowledge(context);
try{
let u;
if(!args.user) { args.user = context.user.id }

View file

@ -3,6 +3,7 @@ const { PERMISSION_GROUPS } = require("#constants");
const { format } = require("#utils/ansi");
const { createEmbed } = require("#utils/embed");
const { acknowledge } = require("#utils/interactions");
const { icon, codeblock, iconPill, smallPill, stringwrap } = require("#utils/markdown");
const { editOrReply } = require("#utils/message");
const { STATICS } = require("#utils/statics");
@ -64,8 +65,8 @@ module.exports = {
},
permissionsClient: [...PERMISSION_GROUPS.baseline],
run: async (context, args) => {
await context.triggerTyping();
await acknowledge(context);
try {
let msg = '';
if (context.message.messageReference) {

View file

@ -3,6 +3,7 @@ const { PERMISSION_GROUPS } = require("#constants");
const { format } = require("#utils/ansi");
const { createEmbed } = require("#utils/embed");
const { acknowledge } = require("#utils/interactions");
const { codeblock, iconPill, stringwrap, link } = require("#utils/markdown");
const { editOrReply } = require("#utils/message");
const { STATICS } = require("#utils/statics");
@ -41,8 +42,8 @@ module.exports = {
},
permissionsClient: [...PERMISSION_GROUPS.baseline],
run: async (context, args) => {
await context.triggerTyping();
await acknowledge(context);
try {
let msg = '';
let author = {};

View file

@ -5,6 +5,7 @@ const { icon } = require("#utils/markdown");
const { Permissions } = require("detritus-client/lib/constants");
const { PERMISSION_GROUPS } = require("#constants");
const { acknowledge } = require("#utils/interactions");
// TODO: rework this eventually
// -> filter by user
@ -32,7 +33,8 @@ module.exports = {
},
permissionsClient: [Permissions.MANAGE_MESSAGES],
run: async (context, args) => {
await context.triggerTyping();
await acknowledge(context);
if(isNaN(parseInt(args.amount))) return editOrReply(context, createEmbed("warning", context, "Invalid Amount"))
if(args.amount >= 51 || args.amount <= 0){

View file

@ -1,6 +1,7 @@
const { PERMISSION_GROUPS } = require('#constants');
const { renderMusicButtons } = require('#utils/buttons');
const { createEmbed } = require('#utils/embed')
const { createEmbed } = require('#utils/embed');
const { acknowledge } = require('#utils/interactions');
const { icon } = require('#utils/markdown');
const { editOrReply } = require('#utils/message')
@ -21,7 +22,8 @@ module.exports = {
},
permissionsClient: [...PERMISSION_GROUPS.baseline],
run: async (context) => {
context.triggerTyping();
await acknowledge(context);
if (!context.message.messageReference) return editOrReply(context, createEmbed("warning", context, "You need to reply to a message containing a song link."))
try {
let msg;

View file

@ -2,7 +2,8 @@ const { bingImages } = require('#api');
const { paginator } = require('#client');
const { PERMISSION_GROUPS } = require('#constants');
const { createEmbed, formatPaginationEmbeds, page } = require('#utils/embed')
const { createEmbed, formatPaginationEmbeds, page } = require('#utils/embed');
const { acknowledge } = require('#utils/interactions');
const { editOrReply } = require('#utils/message')
const { STATICS } = require('#utils/statics')
@ -40,7 +41,8 @@ module.exports = {
},
permissionsClient: [...PERMISSION_GROUPS.baseline],
run: async (context, args) => {
context.triggerTyping();
await acknowledge(context);
if (!args.query) return editOrReply(context, createEmbed("warning", context, `Missing Parameter (query).`))
try {
let search = await bingImages(context, args.query, context.channel.nsfw)

View file

@ -2,7 +2,8 @@ const { bing } = require('#api');
const { paginator } = require('#client');
const { PERMISSION_GROUPS } = require('#constants');
const { createEmbed, formatPaginationEmbeds, page } = require('#utils/embed')
const { createEmbed, formatPaginationEmbeds, page } = require('#utils/embed');
const { acknowledge } = require('#utils/interactions');
const { citation, link, codeblock } = require('#utils/markdown')
const { editOrReply } = require('#utils/message')
const { STATICS } = require('#utils/statics')
@ -107,7 +108,8 @@ module.exports = {
},
permissionsClient: [...PERMISSION_GROUPS.baseline],
run: async (context, args) => {
context.triggerTyping();
await acknowledge(context);
if(!args.query) return editOrReply(context, createEmbed("warning", context, `Missing Parameter (query).`))
try{
let search = await bing(context, args.query, context.channel.nsfw)

View file

@ -2,7 +2,8 @@ const { googleImages } = require('#api');
const { paginator } = require('#client');
const { PERMISSION_GROUPS } = require('#constants');
const { createEmbed, formatPaginationEmbeds, page } = require('#utils/embed')
const { createEmbed, formatPaginationEmbeds, page } = require('#utils/embed');
const { acknowledge } = require('#utils/interactions');
const { editOrReply } = require('#utils/message')
const { STATICS } = require('#utils/statics')
@ -40,7 +41,8 @@ module.exports = {
},
permissionsClient: [...PERMISSION_GROUPS.baseline],
run: async (context, args) => {
context.triggerTyping();
await acknowledge(context);
if (!args.query) return editOrReply(context, createEmbed("warning", context, `Missing Parameter (query).`))
try {
let search = await googleImages(context, args.query, context.channel.nsfw)

View file

@ -3,7 +3,8 @@ const { paginator } = require('#client');
const { PERMISSION_GROUPS } = require('#constants');
const { format } = require('#utils/ansi');
const { createEmbed, formatPaginationEmbeds, page } = require('#utils/embed')
const { createEmbed, formatPaginationEmbeds, page } = require('#utils/embed');
const { acknowledge } = require('#utils/interactions');
const { link, citation, icon, codeblock, pill, smallPill } = require('#utils/markdown')
const { editOrReply } = require('#utils/message')
const { STATICS } = require('#utils/statics')
@ -246,7 +247,8 @@ module.exports = {
},
permissionsClient: [...PERMISSION_GROUPS.baseline],
run: async (context, args) => {
context.triggerTyping();
await acknowledge(context);
if(!args.query) return editOrReply(context, createEmbed("warning", context, `Missing Parameter (query).`))
try{
let search = await google(context, args.query, context.channel.nsfw)

View file

@ -2,7 +2,8 @@ const { lyrics } = require('#api');
const { paginator } = require('#client');
const { PERMISSION_GROUPS } = require('#constants');
const { createEmbed, formatPaginationEmbeds, page } = require('#utils/embed')
const { createEmbed, formatPaginationEmbeds, page } = require('#utils/embed');
const { acknowledge } = require('#utils/interactions');
const { smallIconPill } = require('#utils/markdown');
const { editOrReply } = require('#utils/message')
const { STATICS } = require('#utils/statics')
@ -77,7 +78,8 @@ module.exports = {
},
permissionsClient: [...PERMISSION_GROUPS.baseline],
run: async (context, args) => {
context.triggerTyping();
await acknowledge(context);
if(!args.query) return editOrReply(context, createEmbed("warning", context, `Missing Parameter (query).`))
try{
let search = await lyrics(context, args.query)

View file

@ -1,7 +1,8 @@
const { maps, mapsSupplemental } = require('#api');
const { PERMISSION_GROUPS } = require('#constants');
const { createEmbed } = require('#utils/embed')
const { createEmbed } = require('#utils/embed');
const { acknowledge } = require('#utils/interactions');
const { link, icon, iconAsEmojiObject, citation } = require('#utils/markdown');
const { editOrReply } = require('#utils/message')
const { STATICS, STATIC_ASSETS } = require('#utils/statics')
@ -92,7 +93,8 @@ module.exports = {
},
permissionsClient: [...PERMISSION_GROUPS.baseline],
run: async (context, args) => {
context.triggerTyping();
await acknowledge(context);
if (!args.query) return editOrReply(context, createEmbed("warning", context, `Missing Parameter (query).`))
try {
let search = await maps(context, args.query)

View file

@ -2,7 +2,8 @@ const { quora, quoraResult } = require('#api');
const { paginator } = require('#client');
const { PERMISSION_GROUPS } = require('#constants');
const { createEmbed, formatPaginationEmbeds, page } = require('#utils/embed')
const { createEmbed, formatPaginationEmbeds, page } = require('#utils/embed');
const { acknowledge } = require('#utils/interactions');
const { link, pill } = require('#utils/markdown')
const { editOrReply } = require('#utils/message')
const { STATICS, STATIC_ASSETS } = require('#utils/statics')
@ -135,7 +136,8 @@ module.exports = {
},
permissionsClient: [...PERMISSION_GROUPS.baseline],
run: async (context, args) => {
context.triggerTyping();
await acknowledge(context);
if (!args.query) return editOrReply(context, createEmbed("warning", context, `Missing Parameter (query).`))
try {
let search = await quora(context, args.query)

View file

@ -3,7 +3,8 @@ const { paginator } = require('#client');
const { PERMISSION_GROUPS } = require('#constants');
const { getRecentImage } = require("#utils/attachment");
const { createEmbed, formatPaginationEmbeds, page } = require('#utils/embed')
const { createEmbed, formatPaginationEmbeds, page } = require('#utils/embed');
const { acknowledge } = require('#utils/interactions');
const { editOrReply } = require('#utils/message')
const { STATICS } = require('#utils/statics')
@ -43,7 +44,8 @@ module.exports = {
},
permissionsClient: [...PERMISSION_GROUPS.baseline],
run: async (context) => {
context.triggerTyping();
await acknowledge(context);
try {
let image = await getRecentImage(context, 50)
if (!image) return editOrReply(context, createEmbed("warning", context, "No images found."))

View file

@ -2,7 +2,8 @@ const { rule34 } = require('#api');
const { paginator } = require('#client');
const { PERMISSION_GROUPS } = require('#constants');
const { createEmbed, formatPaginationEmbeds, page } = require('#utils/embed')
const { createEmbed, formatPaginationEmbeds, page } = require('#utils/embed');
const { acknowledge } = require('#utils/interactions');
const { pill } = require('#utils/markdown')
const { editOrReply } = require('#utils/message')
@ -55,8 +56,8 @@ module.exports = {
],
permissionsClient: [...PERMISSION_GROUPS.baseline],
run: async (context, args) => {
context.triggerTyping();
await acknowledge(context);
// very important, maybe make this a command option eventually
if (!context.channel.nsfw) {
return editOrReply(context, createEmbed("nsfw", context))

View file

@ -2,7 +2,8 @@ const { urbandictionary } = require('#api');
const { paginator } = require('#client');
const { PERMISSION_GROUPS } = require('#constants');
const { createEmbed, formatPaginationEmbeds, page } = require('#utils/embed')
const { createEmbed, formatPaginationEmbeds, page } = require('#utils/embed');
const { acknowledge } = require('#utils/interactions');
const { link, iconPill } = require('#utils/markdown')
const { editOrReply } = require('#utils/message')
const { STATICS } = require('#utils/statics')
@ -48,7 +49,8 @@ module.exports = {
},
permissionsClient: [...PERMISSION_GROUPS.baseline],
run: async (context, args) => {
context.triggerTyping();
await acknowledge(context);
try{
let search = await urbandictionary(context, args.query)
search = search.response

View file

@ -2,7 +2,8 @@ const { wikihow } = require('#api');
const { paginator } = require('#client');
const { PERMISSION_GROUPS } = require('#constants');
const { createEmbed, formatPaginationEmbeds, page } = require('#utils/embed')
const { createEmbed, formatPaginationEmbeds, page } = require('#utils/embed');
const { acknowledge } = require('#utils/interactions');
const { editOrReply } = require('#utils/message')
const { STATICS } = require('#utils/statics')
@ -37,7 +38,8 @@ module.exports = {
},
permissionsClient: [...PERMISSION_GROUPS.baseline],
run: async (context, args) => {
context.triggerTyping();
await acknowledge(context);
try{
let search = await wikihow(context, args.query)
search = search.response

View file

@ -1,7 +1,8 @@
const { paginator } = require('#client');
const { PERMISSION_GROUPS } = require('#constants');
const { createEmbed, formatPaginationEmbeds, page } = require('#utils/embed')
const { createEmbed, formatPaginationEmbeds, page } = require('#utils/embed');
const { acknowledge } = require('#utils/interactions');
const { editOrReply } = require('#utils/message')
const { STATICS } = require('#utils/statics')
@ -20,7 +21,8 @@ module.exports = {
},
permissionsClient: [...PERMISSION_GROUPS.baseline],
run: async (context, args) => {
context.triggerTyping();
await acknowledge(context);
try{
let search = await superagent.get(`https://api.wikimedia.org/core/v1/wikipedia/en/search/page`)
.query({

View file

@ -2,7 +2,8 @@ const { paginator } = require('#client');
const { PERMISSION_GROUPS } = require('#constants');
const { WolframQueryCompute } = require('#obelisk');
const { createEmbed, formatPaginationEmbeds, page } = require('#utils/embed')
const { createEmbed, formatPaginationEmbeds, page } = require('#utils/embed');
const { acknowledge } = require('#utils/interactions');
const { citation, smallIconPill } = require('#utils/markdown');
const { editOrReply } = require('#utils/message')
const { STATICS } = require('#utils/statics')
@ -52,7 +53,8 @@ module.exports = {
},
permissionsClient: [...PERMISSION_GROUPS.baseline],
run: async (context, args) => {
context.triggerTyping();
await acknowledge(context);
if(context.message.messageReference) {
let msg = await context.message.channel.fetchMessage(context.message.messageReference.messageId);

View file

@ -1,7 +1,8 @@
const { paginator } = require('#client');
const { PERMISSION_GROUPS } = require('#constants');
const { createEmbed, formatPaginationEmbeds, page } = require('#utils/embed')
const { createEmbed, formatPaginationEmbeds, page } = require('#utils/embed');
const { acknowledge } = require('#utils/interactions');
const { editOrReply } = require('#utils/message')
const superagent = require('superagent')
@ -19,7 +20,8 @@ module.exports = {
},
permissionsClient: [...PERMISSION_GROUPS.baseline],
run: async (context, args) => {
context.triggerTyping();
await acknowledge(context);
if (!args.query) return editOrReply(context, createEmbed("warning", context, `Missing Parameter (query).`))
if(!isNaN(parseInt(args.query))){

View file

@ -2,7 +2,8 @@ const { youtube } = require('#api');
const { paginator } = require('#client');
const { YOUTUBE_CATEGORIES, PERMISSION_GROUPS } = require('#constants');
const { createEmbed, formatPaginationEmbeds, page } = require('#utils/embed')
const { createEmbed, formatPaginationEmbeds, page } = require('#utils/embed');
const { acknowledge } = require('#utils/interactions');
const { link, iconPill, smallPill, timestamp } = require('#utils/markdown')
const { editOrReply } = require('#utils/message')
const { STATICS } = require('#utils/statics')
@ -121,7 +122,8 @@ module.exports = {
],
permissionsClient: [...PERMISSION_GROUPS.baseline],
run: async (context, args) => {
context.triggerTyping();
await acknowledge(context);
if(!args.query) return editOrReply(context, createEmbed("warning", context, `Missing Parameter (query).`))
try{
if(args.type == 'all') args.type = undefined;

View file

@ -2,7 +2,8 @@ const { dictionary } = require('#api');
const { paginator } = require('#client');
const { TRANSLATE_LANGUAGE_MAPPINGS, DICTIONARY_LANGUAGES, PERMISSION_GROUPS } = require('#constants');
const { createEmbed, formatPaginationEmbeds, page } = require('#utils/embed')
const { createEmbed, formatPaginationEmbeds, page } = require('#utils/embed');
const { acknowledge } = require('#utils/interactions');
const { link, iconPill, smallPill, icon, iconLinkPill, pill } = require('#utils/markdown')
const { editOrReply } = require('#utils/message')
const { dictionaryGetCodeFromAny } = require('#utils/translate');
@ -64,7 +65,8 @@ module.exports = {
],
permissionsClient: [...PERMISSION_GROUPS.baseline],
run: async (context, args) => {
context.triggerTyping();
await acknowledge(context);
let language = dictionaryGetCodeFromAny(args.lang);

View file

@ -11,6 +11,7 @@ const { Utils } = require("detritus-client");
const { Components, Snowflake } = require("detritus-client/lib/utils");
const { InteractionCallbackTypes, DiscordRegexNames } = require("detritus-client/lib/constants");
const { bold } = require("detritus-client/lib/utils/markup");
const { acknowledge } = require("#utils/interactions");
const onlyEmoji = require('emoji-aware').onlyEmoji;
@ -52,7 +53,8 @@ module.exports = {
],
permissionsClient: [...PERMISSION_GROUPS.baseline],
run: async (context, args) => {
await context.triggerTyping()
await acknowledge(context);
let msg = context.message;
if (context.message.messageReference) {
msg = await context.message.channel.fetchMessage(context.message.messageReference.messageId)

View file

@ -2,6 +2,7 @@ const { emojipedia } = require("#api");
const { PERMISSION_GROUPS } = require("#constants");
const { createEmbed } = require("#utils/embed");
const { acknowledge } = require("#utils/interactions");
const { pill, smallIconPill } = require("#utils/markdown");
const { editOrReply } = require("#utils/message");
const { STATICS, STATIC_ASSETS } = require("#utils/statics");
@ -45,7 +46,8 @@ module.exports = {
},
permissionsClient: [...PERMISSION_GROUPS.baseline],
run: async (context, args) => {
await context.triggerTyping()
await acknowledge(context);
let msg = context.message;
if (context.message.messageReference) {
msg = await context.message.channel.fetchMessage(context.message.messageReference.messageId)

View file

@ -7,7 +7,8 @@ const { editOrReply } = require("#utils/message");
const { DiscordRegexNames } = require("detritus-client/lib/constants");
const { Utils } = require("detritus-client");
const superagent = require('superagent')
const superagent = require('superagent');
const { acknowledge } = require("#utils/interactions");
module.exports = {
label: 'code',
@ -24,7 +25,7 @@ module.exports = {
],
permissionsClient: [...PERMISSION_GROUPS.baseline],
run: async (context, args) => {
context.triggerTyping();
await acknowledge(context);
if(!args.code) return editOrReply(context, createEmbed("warning", context, "No code provided."))

View file

@ -2,6 +2,7 @@ const { paginator } = require("#client");
const { COLORS, PERMISSION_GROUPS } = require("#constants");
const { createEmbed, page, formatPaginationEmbeds } = require("#utils/embed");
const { acknowledge } = require("#utils/interactions");
const { codeblock, pill, smallIconPill } = require("#utils/markdown");
const { editOrReply } = require("#utils/message");
const { STATIC_ICONS } = require("#utils/statics");
@ -23,7 +24,7 @@ module.exports = {
},
permissionsClient: [...PERMISSION_GROUPS.baseline],
run: async (context, args) => {
context.triggerTyping();
await acknowledge(context);
let content = args.content
if (context.message.messageReference) {

View file

@ -3,6 +3,7 @@ const { PERMISSION_GROUPS } = require("#constants");
const { getRecentImage } = require("#utils/attachment");
const { createEmbed } = require("#utils/embed");
const { acknowledge } = require("#utils/interactions");
const { codeblock, smallIconPill } = require("#utils/markdown");
const { editOrReply } = require("#utils/message");
const { STATICS } = require("#utils/statics");
@ -18,7 +19,8 @@ module.exports = {
},
permissionsClient: [...PERMISSION_GROUPS.baseline],
run: async (context) => {
context.triggerTyping();
await acknowledge(context);
let image = await getRecentImage(context, 50)
if (!image) return editOrReply(context, createEmbed("warning", context, "No images found."))

View file

@ -3,6 +3,7 @@ const { TRANSLATE_LANGUAGES, TRANSLATE_DISPLAY_MAPPINGS, PERMISSION_GROUPS } = r
const { getRecentImage } = require("#utils/attachment");
const { createEmbed } = require("#utils/embed");
const { acknowledge } = require("#utils/interactions");
const { codeblock, icon, pill, limitedString, smallIconPill } = require("#utils/markdown");
const { editOrReply } = require("#utils/message");
const { STATICS } = require("#utils/statics");
@ -25,8 +26,8 @@ module.exports = {
],
permissionsClient: [...PERMISSION_GROUPS.baseline],
run: async (context, args) => {
context.triggerTyping();
await acknowledge(context);
if(!args.to) args.to = "en"
if(args.to.startsWith("-to")) args.to = args.to.replace("-to ", "")

View file

@ -6,6 +6,7 @@ const { STATICS } = require('#utils/statics');
const superagent = require('superagent');
const { PERMISSION_GROUPS } = require("#constants");
const { acknowledge } = require("#utils/interactions");
module.exports = {
name: 'qr',
@ -20,7 +21,8 @@ module.exports = {
},
permissionsClient: [...PERMISSION_GROUPS.baseline, ...PERMISSION_GROUPS.attachments],
run: async (context, args) => {
await acknowledge(context);
// If we have an argument, generate code
if(args.text.length){
let response = await editOrReply(context, createEmbed("loading", context, `Generating qr code...`))
@ -49,8 +51,6 @@ module.exports = {
if (!image) return editOrReply(context, createEmbed("warning", context, "No images found."))
try {
await context.triggerTyping();
const t = Date.now();
let res = await superagent.get(`https://api.qrserver.com/v1/read-qr-code/`)

View file

@ -2,6 +2,7 @@ const { PERMISSION_GROUPS } = require("#constants");
const { WebUtilsWebPageScreenshot} = require("#obelisk");
const { createEmbed } = require("#utils/embed");
const { acknowledge } = require("#utils/interactions");
const { editOrReply } = require("#utils/message");
module.exports = {
@ -18,6 +19,8 @@ module.exports = {
},
permissionsClient: [...PERMISSION_GROUPS.baseline, ...PERMISSION_GROUPS.attachments],
run: async (context, args) => {
await acknowledge(context);
if (!args.url) return editOrReply(context, createEmbed("warning", context, "No url supplied."))
await editOrReply(context, createEmbed("loading", context, `Creating website screenshot...`))

View file

@ -1,7 +1,8 @@
const { googleTranslate } = require('#api');
const { TRANSLATE_LANGUAGES, TRANSLATE_DISPLAY_MAPPINGS, PERMISSION_GROUPS } = require('#constants');
const { createEmbed } = require('#utils/embed')
const { createEmbed } = require('#utils/embed');
const { acknowledge } = require('#utils/interactions');
const { codeblock, icon, pill, stringwrap, smallIconPill } = require('#utils/markdown');
const { editOrReply } = require('#utils/message')
const { STATICS } = require('#utils/statics');
@ -24,8 +25,8 @@ module.exports = {
],
permissionsClient: [...PERMISSION_GROUPS.baseline],
run: async (context, args) => {
await context.triggerTyping();
await acknowledge(context);
let content = args.text;
// TODO: Turn this into a reply helper

View file

@ -2,7 +2,8 @@ const { darksky } = require('#api');
const { paginator } = require('#client');
const { PERMISSION_GROUPS } = require('#constants');
const { createEmbed, page } = require('#utils/embed')
const { createEmbed, page } = require('#utils/embed');
const { acknowledge } = require('#utils/interactions');
const { pill, iconPill, smallPill, weatherIcon, timestamp, icon, link, stringwrap} = require('#utils/markdown');
const { editOrReply } = require('#utils/message')
const { STATICS } = require('#utils/statics');
@ -114,7 +115,8 @@ module.exports = {
],
permissionsClient: [...PERMISSION_GROUPS.baseline],
run: async (context, args) => {
context.triggerTyping();
await acknowledge(context);
if(!args.query) return editOrReply(context, createEmbed("warning", context, `Missing Parameter (location).`))
try{
// Quick Units

View file

@ -30,7 +30,18 @@ module.exports.acknowledge = async function(context, incognito = false, permissi
return await context.respond({data: { flags: MessageFlags.EPHEMERAL }, type: InteractionCallbackTypes.DEFERRED_CHANNEL_MESSAGE_WITH_SOURCE});
}
return await context.respond({data: {}, type: InteractionCallbackTypes.DEFERRED_CHANNEL_MESSAGE_WITH_SOURCE})
}
};
// Command Flow
return await context.triggerTyping()
/**
* This endpoint will sometimes error when
* - Discord breaks their platform again
* - Discord disables it via cloudflare to reduce
* platform load.
*
* In order to avoid our bot from crashing, we catch the
* error here.
*/
return await context.triggerTyping().catch((e)=>{})
}