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

@ -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