mirror of
https://gitlab.com/bignutty/labscore.git
synced 2025-06-07 13:43:06 -04:00
- properly handle permissions for user commands
- add central permission group constant
This commit is contained in:
parent
dcb823a0a1
commit
d2aeecf70d
100 changed files with 245 additions and 942 deletions
|
@ -1,3 +1,4 @@
|
|||
const { PERMISSION_GROUPS } = require('#constants');
|
||||
const { renderMusicButtons } = require('#utils/buttons');
|
||||
const { createEmbed } = require('#utils/embed');
|
||||
const { acknowledge } = require('#utils/interactions');
|
||||
|
@ -22,7 +23,7 @@ module.exports = {
|
|||
],
|
||||
run: async (context, args) => {
|
||||
try{
|
||||
await acknowledge(context);
|
||||
await acknowledge(context, false, [...PERMISSION_GROUPS.baseline_slash]);
|
||||
|
||||
const { message } = args;
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
const { googleVisionOcr, googleTranslate } = require('#api');
|
||||
const { TRANSLATE_DISPLAY_MAPPINGS, TRANSLATE_LANGUAGES } = require('#constants');
|
||||
const { TRANSLATE_DISPLAY_MAPPINGS, TRANSLATE_LANGUAGES, PERMISSION_GROUPS } = require('#constants');
|
||||
|
||||
const { getMessageAttachment, validateAttachment } = require('#utils/attachment');
|
||||
const { createEmbed } = require('#utils/embed');
|
||||
|
@ -24,7 +24,7 @@ module.exports = {
|
|||
],
|
||||
run: async (context, args) => {
|
||||
try{
|
||||
await acknowledge(context);
|
||||
await acknowledge(context, false, [...PERMISSION_GROUPS.baseline_slash]);
|
||||
|
||||
const { message } = args;
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
const { reverseImageSearch } = require('#api');
|
||||
const { paginator } = require('#client');
|
||||
const { PERMISSION_GROUPS } = require('#constants');
|
||||
|
||||
const { getMessageAttachment, validateAttachment } = require('#utils/attachment');
|
||||
const { createEmbed, formatPaginationEmbeds, page } = require('#utils/embed');
|
||||
|
@ -46,7 +47,7 @@ module.exports = {
|
|||
],
|
||||
run: async (context, args) => {
|
||||
try{
|
||||
await acknowledge(context);
|
||||
await acknowledge(context, false, [...PERMISSION_GROUPS.baseline_slash]);
|
||||
|
||||
const { message } = args;
|
||||
|
||||
|
|
|
@ -7,6 +7,7 @@ const { codeblock } = require('#utils/markdown');
|
|||
const { STATICS } = require('#utils/statics');
|
||||
|
||||
const { ApplicationCommandTypes, MessageFlags } = require("detritus-client/lib/constants");
|
||||
const { PERMISSION_GROUPS } = require('#constants');
|
||||
;
|
||||
|
||||
module.exports = {
|
||||
|
@ -21,7 +22,7 @@ module.exports = {
|
|||
1
|
||||
],
|
||||
run: async (context, args) => {
|
||||
await acknowledge(context);
|
||||
await acknowledge(context, false, [...PERMISSION_GROUPS.baseline_slash]);
|
||||
|
||||
try {
|
||||
const { message } = args;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
const { googleTranslate } = require('#api');
|
||||
const { TRANSLATE_DISPLAY_MAPPINGS, TRANSLATE_LANGUAGES, TRANSLATE_LANGUAGE_MAPPINGS, TRANSLATE_DEFAULT_LANGUAGE_LIST } = require('#constants');
|
||||
const { TRANSLATE_DISPLAY_MAPPINGS, TRANSLATE_LANGUAGES, TRANSLATE_LANGUAGE_MAPPINGS, TRANSLATE_DEFAULT_LANGUAGE_LIST, PERMISSION_GROUPS } = require('#constants');
|
||||
|
||||
const { createEmbed } = require('#utils/embed');
|
||||
const { acknowledge } = require('#utils/interactions');
|
||||
|
@ -22,7 +22,7 @@ module.exports = {
|
|||
1
|
||||
],
|
||||
run: async (context, args) => {
|
||||
await acknowledge(context);
|
||||
await acknowledge(context, false, [...PERMISSION_GROUPS.baseline_slash]);
|
||||
|
||||
const { message } = args;
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
const { otter } = require('#api');
|
||||
const { PERMISSION_GROUPS } = require('#constants');
|
||||
|
||||
const { createEmbed } = require('#utils/embed');
|
||||
const { acknowledge } = require('#utils/interactions');
|
||||
|
@ -27,7 +28,7 @@ module.exports = {
|
|||
}
|
||||
],
|
||||
run: async (context, args) => {
|
||||
await acknowledge(context, args.incognito);
|
||||
await acknowledge(context, args.incognito, [...PERMISSION_GROUPS.baseline_slash]);
|
||||
|
||||
try{
|
||||
const ott = (await otter()).response.body
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
const { PERMISSION_GROUPS } = require('#constants');
|
||||
const { createEmbed } = require('#utils/embed');
|
||||
const { acknowledge } = require('#utils/interactions');
|
||||
const { editOrReply } = require('#utils/message');
|
||||
|
@ -32,7 +33,7 @@ module.exports = {
|
|||
}
|
||||
],
|
||||
run: async (context, args) => {
|
||||
await acknowledge(context, args.incognito);
|
||||
await acknowledge(context, args.incognito, [...PERMISSION_GROUPS.baseline_slash]);
|
||||
|
||||
if(!args.user) return editOrReply(context, createEmbed("default", context, {
|
||||
image: {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
const { BADGE_ICONS } = require('#constants');
|
||||
const { BADGE_ICONS, PERMISSION_GROUPS } = require('#constants');
|
||||
|
||||
const { createEmbed } = require('#utils/embed');
|
||||
const { acknowledge } = require('#utils/interactions');
|
||||
|
@ -35,7 +35,7 @@ module.exports = {
|
|||
}
|
||||
],
|
||||
run: async (context, args) => {
|
||||
await acknowledge(context, args.incognito);
|
||||
await acknowledge(context, args.incognito, [...PERMISSION_GROUPS.baseline_slash]);
|
||||
|
||||
try{
|
||||
const { user, member } = args;
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
const { googleImages } = require('#api');
|
||||
const { paginator } = require('#client');
|
||||
const { PERMISSION_GROUPS } = require('#constants');
|
||||
|
||||
const { createEmbed, formatPaginationEmbeds, page } = require('#utils/embed');
|
||||
const { acknowledge } = require('#utils/interactions');
|
||||
|
@ -57,7 +58,7 @@ module.exports = {
|
|||
}
|
||||
],
|
||||
run: async (context, args) => {
|
||||
await acknowledge(context, args.incognito);
|
||||
await acknowledge(context, args.incognito, [...PERMISSION_GROUPS.baseline_slash]);
|
||||
|
||||
try {
|
||||
let search = await googleImages(context, args.query, false) //safesearch is always on
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
const { google } = require('#api');
|
||||
const { paginator } = require('#client');
|
||||
const { PERMISSION_GROUPS } = require('#constants');
|
||||
const { format } = require('#utils/ansi');
|
||||
|
||||
const { createEmbed, formatPaginationEmbeds, page } = require('#utils/embed');
|
||||
|
@ -260,7 +261,7 @@ module.exports = {
|
|||
}
|
||||
],
|
||||
run: async (context, args) => {
|
||||
await acknowledge(context, args.incognito);
|
||||
await acknowledge(context, args.incognito, [...PERMISSION_GROUPS.baseline_slash]);
|
||||
|
||||
try{
|
||||
let search = await google(context, args.query, false) // safe search is always on
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
const { lyrics } = require('#api');
|
||||
const { paginator } = require('#client');
|
||||
const { PERMISSION_GROUPS } = require('#constants');
|
||||
|
||||
const { createEmbed, formatPaginationEmbeds, page } = require('#utils/embed');
|
||||
const { acknowledge } = require('#utils/interactions');
|
||||
|
@ -93,7 +94,7 @@ module.exports = {
|
|||
}
|
||||
],
|
||||
run: async (context, args) => {
|
||||
await acknowledge(context, args.incognito);
|
||||
await acknowledge(context, args.incognito, [...PERMISSION_GROUPS.baseline_slash]);
|
||||
|
||||
try{
|
||||
let search = await lyrics(context, args.query)
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
const { maps, mapsSupplemental } = require('#api');
|
||||
const { PERMISSION_GROUPS } = require('#constants');
|
||||
|
||||
const { createEmbed } = require('#utils/embed');
|
||||
const { acknowledge } = require('#utils/interactions');
|
||||
|
@ -7,7 +8,6 @@ const { editOrReply } = require('#utils/message')
|
|||
const { STATICS, STATIC_ASSETS } = require('#utils/statics');
|
||||
const { ApplicationCommandOptionTypes } = require('detritus-client/lib/constants');
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Components } = require('detritus-client/lib/utils');
|
||||
|
||||
function renderPlaceCard(context, place) {
|
||||
|
@ -108,7 +108,7 @@ module.exports = {
|
|||
}
|
||||
],
|
||||
run: async (context, args) => {
|
||||
await acknowledge(context, args.incognito);
|
||||
await acknowledge(context, args.incognito, [...PERMISSION_GROUPS.baseline_slash]);
|
||||
|
||||
try {
|
||||
let search = await maps(context, args.query)
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
const { urbandictionary } = require('#api');
|
||||
const { paginator } = require('#client');
|
||||
const { PERMISSION_GROUPS } = require('#constants');
|
||||
|
||||
const { createEmbed, formatPaginationEmbeds, page } = require('#utils/embed');
|
||||
const { acknowledge } = require('#utils/interactions');
|
||||
|
@ -7,8 +8,7 @@ const { link, iconPill } = require('#utils/markdown')
|
|||
const { editOrReply } = require('#utils/message')
|
||||
const { STATICS } = require('#utils/statics')
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions, ApplicationCommandOptionTypes } = require("detritus-client/lib/constants");
|
||||
const { ApplicationCommandOptionTypes } = require("detritus-client/lib/constants");
|
||||
|
||||
function createUrbanPage(context, result){
|
||||
let e = createEmbed("default", context, {
|
||||
|
@ -64,7 +64,7 @@ module.exports = {
|
|||
}
|
||||
],
|
||||
run: async (context, args) => {
|
||||
await acknowledge(context, args.incognito);
|
||||
await acknowledge(context, args.incognito, [...PERMISSION_GROUPS.baseline_slash]);
|
||||
|
||||
try{
|
||||
let search = await urbandictionary(context, args.term)
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
const { wolframAlpha } = require('#api');
|
||||
const { paginator } = require('#client');
|
||||
const { PERMISSION_GROUPS } = require('#constants');
|
||||
|
||||
const { createEmbed, formatPaginationEmbeds, page } = require('#utils/embed');
|
||||
const { acknowledge } = require('#utils/interactions');
|
||||
|
@ -67,7 +68,7 @@ module.exports = {
|
|||
}
|
||||
],
|
||||
run: async (context, args) => {
|
||||
await acknowledge(context, args.incognito);
|
||||
await acknowledge(context, args.incognito, [...PERMISSION_GROUPS.baseline_slash]);
|
||||
|
||||
try {
|
||||
let search = await wolframAlpha(context, args.query)
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
const { paginator } = require('#client');
|
||||
const { PERMISSION_GROUPS } = require('#constants');
|
||||
|
||||
const { createEmbed, formatPaginationEmbeds, page } = require('#utils/embed');
|
||||
const { acknowledge } = require('#utils/interactions');
|
||||
|
@ -35,7 +36,7 @@ module.exports = {
|
|||
}
|
||||
],
|
||||
run: async (context, args) => {
|
||||
await acknowledge(context, args.incognito);
|
||||
await acknowledge(context, args.incognito, [...PERMISSION_GROUPS.baseline_slash]);
|
||||
|
||||
if(!isNaN(parseInt(args.query))){
|
||||
try{
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
const { youtube } = require('#api');
|
||||
const { paginator } = require('#client');
|
||||
const { YOUTUBE_CATEGORIES } = require('#constants');
|
||||
const { YOUTUBE_CATEGORIES, PERMISSION_GROUPS } = require('#constants');
|
||||
|
||||
const { createEmbed, formatPaginationEmbeds, page } = require('#utils/embed');
|
||||
const { acknowledge } = require('#utils/interactions');
|
||||
|
@ -180,7 +180,7 @@ module.exports = {
|
|||
}
|
||||
],
|
||||
run: async (context, args) => {
|
||||
await acknowledge(context, args.incognito);
|
||||
await acknowledge(context, args.incognito, [...PERMISSION_GROUPS.baseline_slash]);
|
||||
|
||||
try{
|
||||
if(!args.type) args.type="all"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
const { dictionary } = require('#api');
|
||||
const { paginator } = require('#client');
|
||||
const { TRANSLATE_LANGUAGE_MAPPINGS, DICTIONARY_LANGUAGES } = require('#constants');
|
||||
const { TRANSLATE_LANGUAGE_MAPPINGS, DICTIONARY_LANGUAGES, PERMISSION_GROUPS } = require('#constants');
|
||||
|
||||
const { createEmbed, formatPaginationEmbeds, page } = require('#utils/embed');
|
||||
const { acknowledge } = require('#utils/interactions');
|
||||
|
@ -76,7 +76,7 @@ module.exports = {
|
|||
}
|
||||
],
|
||||
run: async (context, args) => {
|
||||
await acknowledge(context, args.incognito);
|
||||
await acknowledge(context, args.incognito, [...PERMISSION_GROUPS.baseline_slash]);
|
||||
|
||||
try{
|
||||
let search = await dictionary(context, args.term, "en")
|
||||
|
|
|
@ -11,6 +11,7 @@ const { ingest } = require("#logging");
|
|||
const { Utils } = require("detritus-client");
|
||||
const { InteractionCallbackTypes, ApplicationCommandOptionTypes, DiscordRegexNames } = require("detritus-client/lib/constants");
|
||||
const { Components, Snowflake } = require("detritus-client/lib/utils");
|
||||
const { PERMISSION_GROUPS } = require("#constants");
|
||||
|
||||
const onlyEmoji = require('emoji-aware').onlyEmoji;
|
||||
|
||||
|
@ -64,7 +65,7 @@ module.exports = {
|
|||
}
|
||||
],
|
||||
run: async (context, args) => {
|
||||
await acknowledge(context, args.incognito);
|
||||
await acknowledge(context, args.incognito, [...PERMISSION_GROUPS.baseline_slash]);
|
||||
|
||||
const { matches } = Utils.regex(
|
||||
DiscordRegexNames.EMOJI,
|
||||
|
|
|
@ -8,6 +8,7 @@ const { STATICS, STATIC_ASSETS } = require("#utils/statics");
|
|||
const { Components } = require("detritus-client/lib/utils");
|
||||
const { InteractionCallbackTypes, MessageComponentButtonStyles, ApplicationCommandOptionTypes } = require("detritus-client/lib/constants");
|
||||
const { acknowledge } = require("#utils/interactions");
|
||||
const { PERMISSION_GROUPS } = require("#constants");
|
||||
|
||||
const onlyEmoji = require('emoji-aware').onlyEmoji;
|
||||
|
||||
|
@ -59,7 +60,7 @@ module.exports = {
|
|||
}
|
||||
],
|
||||
run: async (context, args) => {
|
||||
await acknowledge(context, args.incognito);
|
||||
await acknowledge(context, args.incognito, [...PERMISSION_GROUPS.baseline_slash]);
|
||||
|
||||
const emoji = onlyEmoji(args.emoji)
|
||||
if(!emoji){
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
const { PERMISSION_GROUPS } = require('#constants');
|
||||
const { renderMusicButtons } = require('#utils/buttons');
|
||||
const { createEmbed } = require('#utils/embed');
|
||||
const { acknowledge } = require('#utils/interactions');
|
||||
|
@ -37,7 +38,7 @@ module.exports = {
|
|||
],
|
||||
run: async (context, args) => {
|
||||
try{
|
||||
await acknowledge(context, args.incognito);
|
||||
await acknowledge(context, args.incognito, [...PERMISSION_GROUPS.baseline_slash]);
|
||||
|
||||
let urls = args.url.match(urlr)
|
||||
if(urls){
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
const { googleVisionOcr } = require("#api");
|
||||
const { PERMISSION_GROUPS } = require("#constants");
|
||||
|
||||
const { validateAttachment } = require("#utils/attachment");
|
||||
const { createEmbed } = require("#utils/embed");
|
||||
|
@ -36,7 +37,7 @@ module.exports = {
|
|||
}
|
||||
],
|
||||
run: async (context, args) => {
|
||||
await acknowledge(context, args.incognito);
|
||||
await acknowledge(context, args.incognito, [...PERMISSION_GROUPS.baseline_slash]);
|
||||
|
||||
if(!validateAttachment(args.image, "image")) return await editOrReply(context, createEmbed("warning", context, "Unsupported attachment type."))
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
const { reverseImageSearch } = require("#api");
|
||||
const { paginator } = require("#client");
|
||||
const { PERMISSION_GROUPS } = require("#constants");
|
||||
|
||||
const { validateAttachment } = require("#utils/attachment");
|
||||
const { createEmbed, formatPaginationEmbeds, page } = require("#utils/embed");
|
||||
|
@ -55,7 +56,7 @@ module.exports = {
|
|||
}
|
||||
],
|
||||
run: async (context, args) => {
|
||||
await acknowledge(context, args.incognito);
|
||||
await acknowledge(context, args.incognito, [...PERMISSION_GROUPS.baseline_slash]);
|
||||
|
||||
if(!validateAttachment(args.image, "image")) return await editOrReply(context, createEmbed("warning", context, "Unsupported attachment type."))
|
||||
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
const { PERMISSION_GROUPS } = require("#constants");
|
||||
const { WebUtilsWebPageScreenshot} = require("#obelisk");
|
||||
|
||||
const { createEmbed } = require("#utils/embed");
|
||||
|
@ -33,7 +34,7 @@ module.exports = {
|
|||
}
|
||||
],
|
||||
run: async (context, args) => {
|
||||
await acknowledge(context, args.incognito);
|
||||
await acknowledge(context, args.incognito, [...PERMISSION_GROUPS.baseline_slash, PERMISSION_GROUPS.attachments]);
|
||||
|
||||
await editOrReply(context, createEmbed("loading", context, `Creating website screenshot...`))
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
const { googleTranslate } = require('#api');
|
||||
const { TRANSLATE_LANGUAGES, TRANSLATE_DISPLAY_MAPPINGS } = require('#constants');
|
||||
const { TRANSLATE_LANGUAGES, TRANSLATE_DISPLAY_MAPPINGS, PERMISSION_GROUPS } = require('#constants');
|
||||
|
||||
const { createEmbed } = require('#utils/embed')
|
||||
const { codeblock, icon, pill, stringwrap } = require('#utils/markdown');
|
||||
|
@ -51,7 +51,7 @@ module.exports = {
|
|||
}
|
||||
],
|
||||
run: async (context, args) => {
|
||||
await acknowledge(context, args.incognito);
|
||||
await acknowledge(context, args.incognito, [...PERMISSION_GROUPS.baseline_slash]);
|
||||
|
||||
if(!args.to) args.to = "en";
|
||||
if(!args.from) args.from = "auto";
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
const { darksky } = require('#api');
|
||||
const { paginator } = require('#client');
|
||||
const { PERMISSION_GROUPS } = require('#constants');
|
||||
|
||||
const { createEmbed, page } = require('#utils/embed');
|
||||
const { acknowledge } = require('#utils/interactions');
|
||||
|
@ -7,7 +8,7 @@ const { pill, iconPill, smallPill, weatherIcon, timestamp, icon, link, stringwra
|
|||
const { editOrReply } = require('#utils/message');
|
||||
const { STATICS } = require('#utils/statics');
|
||||
|
||||
const { ApplicationCommandOptionTypes } = require('detritus-client/lib/constants');
|
||||
const { ApplicationCommandOptionTypes, ApplicationIntegrationTypes, InteractionContextTypes } = require('detritus-client/lib/constants');
|
||||
|
||||
const modifiers = {
|
||||
"°C": (i)=>i,
|
||||
|
@ -94,12 +95,13 @@ module.exports = {
|
|||
name: 'weather',
|
||||
description: 'Check the weather at a location.',
|
||||
contexts: [
|
||||
0,
|
||||
1,
|
||||
2
|
||||
InteractionContextTypes.GUILD,
|
||||
InteractionContextTypes.PRIVATE_CHANNEL,
|
||||
InteractionContextTypes.BOT_DM
|
||||
],
|
||||
integrationTypes: [
|
||||
1
|
||||
ApplicationIntegrationTypes.GUILD_INSTALL,
|
||||
ApplicationIntegrationTypes.USER_INSTALL
|
||||
],
|
||||
options: [
|
||||
{
|
||||
|
@ -137,7 +139,7 @@ module.exports = {
|
|||
}
|
||||
],
|
||||
run: async (context, args) => {
|
||||
await acknowledge(context, args.incognito);
|
||||
await acknowledge(context, args.incognito, [...PERMISSION_GROUPS.baseline_slash]);
|
||||
|
||||
try{
|
||||
let data = await darksky(context, args.location)
|
||||
|
|
|
@ -1,14 +1,11 @@
|
|||
const { paginator } = require('#client');
|
||||
const { DISCORD_INVITES, DEFAULT_PREFIXES } = require('#constants');
|
||||
const { DISCORD_INVITES, DEFAULT_PREFIXES, PERMISSION_GROUPS } = require('#constants');
|
||||
|
||||
const { createEmbed, formatPaginationEmbeds, page } = require('#utils/embed')
|
||||
const { codeblock, icon, link, pill, smallPill, iconPill, stringwrap } = require('#utils/markdown')
|
||||
const { editOrReply } = require('#utils/message');
|
||||
const { hasFeature } = require('#utils/testing');
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
|
||||
function createHelpPage(context, title, contents, descriptions) {
|
||||
return page(createEmbed("default", context, {
|
||||
description: `${title}\n\n` +
|
||||
|
@ -131,7 +128,7 @@ module.exports = {
|
|||
category: 'core',
|
||||
usage: 'help [<command>]'
|
||||
},
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.READ_MESSAGE_HISTORY],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline],
|
||||
run: async (context, args) => {
|
||||
if(await hasFeature(context, "core/help")) categories["limited"] = `${iconPill("stars", "Limited Test Commands")}`;
|
||||
else if (categories["limited"]) delete categories["limited"]
|
||||
|
|
|
@ -1,11 +1,9 @@
|
|||
const { PERMISSION_GROUPS } = require('#constants');
|
||||
const { format } = require('#utils/ansi')
|
||||
const { createEmbed } = require('#utils/embed')
|
||||
const { codeblock, icon } = require('#utils/markdown')
|
||||
const { editOrReply } = require('#utils/message')
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
|
||||
module.exports = {
|
||||
description: 'ping!',
|
||||
name: 'ping',
|
||||
|
@ -15,7 +13,7 @@ module.exports = {
|
|||
category: 'core',
|
||||
usage: 'ping'
|
||||
},
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.READ_MESSAGE_HISTORY],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline],
|
||||
run: async (context) => {
|
||||
context.triggerTyping();
|
||||
ping = await context.client.ping()
|
||||
|
|
|
@ -1,12 +1,9 @@
|
|||
const { PRIVACY_POLICY_LAST_UPDATE, PRIVACY_POLICY_SECTIONS, DISCORD_INVITES, COLORS, PRIVACY_POLICY_PREVIOUS_REVISION } = require('#constants');
|
||||
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 { icon, timestamp, link, iconLinkPill } = require('#utils/markdown');
|
||||
const { editOrReply } = require('#utils/message');
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
|
||||
module.exports = {
|
||||
name: 'privacy',
|
||||
metadata: {
|
||||
|
@ -15,7 +12,7 @@ module.exports = {
|
|||
category: 'core',
|
||||
usage: 'privacy'
|
||||
},
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.READ_MESSAGE_HISTORY],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline],
|
||||
run: async (context) => {
|
||||
return await editOrReply(context,
|
||||
createEmbed("default", context, {
|
||||
|
|
|
@ -1,11 +1,9 @@
|
|||
const { PERMISSION_GROUPS } = require('#constants');
|
||||
const { format } = require('#utils/ansi');
|
||||
const { createEmbed } = require('#utils/embed')
|
||||
const { codeblock } = require('#utils/markdown')
|
||||
const { editOrReply } = require('#utils/message');
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
|
||||
module.exports = {
|
||||
name: 'shard',
|
||||
metadata: {
|
||||
|
@ -14,7 +12,7 @@ module.exports = {
|
|||
category: 'core',
|
||||
usage: 'shard'
|
||||
},
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.READ_MESSAGE_HISTORY],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline],
|
||||
run: async (context) => {
|
||||
return await editOrReply(context,
|
||||
createEmbed("default", context, {
|
||||
|
|
|
@ -1,12 +1,9 @@
|
|||
const { OPEN_SOURCE_REPOSITORY_URL } = require('#constants');
|
||||
const { OPEN_SOURCE_REPOSITORY_URL, PERMISSION_GROUPS } = require('#constants');
|
||||
|
||||
const { createEmbed } = require('#utils/embed');
|
||||
const { highlight, iconPill, iconLinkPill } = require('#utils/markdown');
|
||||
const { editOrReply } = require('#utils/message');
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
|
||||
const superagent = require("superagent");
|
||||
|
||||
// TODO: Move this into utils
|
||||
|
@ -34,7 +31,7 @@ module.exports = {
|
|||
category: 'core',
|
||||
usage: 'stats'
|
||||
},
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.READ_MESSAGE_HISTORY],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline],
|
||||
run: async (context) => {
|
||||
context.triggerTyping();
|
||||
try{
|
||||
|
|
|
@ -1,9 +1,7 @@
|
|||
const { PERMISSION_GROUPS } = require('#constants');
|
||||
const { createEmbed } = require('#utils/embed')
|
||||
const { editOrReply } = require('#utils/message')
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
|
||||
module.exports = {
|
||||
name: 'undo',
|
||||
default: 1,
|
||||
|
@ -15,7 +13,7 @@ module.exports = {
|
|||
category: 'core',
|
||||
usage: 'undo [<amount (1-5)>]'
|
||||
},
|
||||
permissionsClient: [Permissions.SEND_MESSAGES, Permissions.EMBED_LINKS, Permissions.READ_MESSAGE_HISTORY],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline],
|
||||
run: async (context, args) => {
|
||||
try{
|
||||
if(typeof(args.amount) == "string") args.amount = parseInt(args.amount)
|
||||
|
|
|
@ -1,159 +0,0 @@
|
|||
const { editOrReply } = require("#utils/message");
|
||||
const { Components } = require("detritus-client/lib/utils");
|
||||
|
||||
module.exports = {
|
||||
label: "text",
|
||||
name: "mapstest",
|
||||
metadata: {
|
||||
description: 'speak.',
|
||||
description_short: 'speak',
|
||||
examples: ['say hug'],
|
||||
category: 'dev',
|
||||
usage: 'say <text>'
|
||||
},
|
||||
onBefore: context => context.user.isClientOwner,
|
||||
onCancel: ()=>{},
|
||||
run: async (context, args) => {
|
||||
await context.triggerTyping();
|
||||
|
||||
let component = new Components();
|
||||
|
||||
let row0 = component.addActionRow({
|
||||
custom_id: "r0"
|
||||
});
|
||||
row0.addButton({
|
||||
custom_id: "s00",
|
||||
disabled: true,
|
||||
emoji: "<:empty:749601069298090034>",
|
||||
style: 2
|
||||
})
|
||||
|
||||
row0.addButton({
|
||||
custom_id: "s01",
|
||||
disabled: false,
|
||||
emoji: "<:up:1264344081572565102>",
|
||||
style: 1
|
||||
})
|
||||
|
||||
row0.addButton({
|
||||
custom_id: "s02",
|
||||
disabled: true,
|
||||
emoji: "<:empty:749601069298090034>",
|
||||
style: 2
|
||||
})
|
||||
|
||||
|
||||
row0.addButton({
|
||||
custom_id: "s03",
|
||||
disabled: true,
|
||||
emoji: "<:empty:749601069298090034>",
|
||||
style: 2
|
||||
})
|
||||
|
||||
|
||||
row0.addButton({
|
||||
custom_id: "s04",
|
||||
disabled: true,
|
||||
emoji: "<:ico_door_white:1264348023916466176>",
|
||||
style: 4
|
||||
})
|
||||
|
||||
|
||||
row0.addButton({
|
||||
custom_id: "s10",
|
||||
disabled: false,
|
||||
emoji: "<:left:1264344064103284846>",
|
||||
style: 1
|
||||
})
|
||||
|
||||
row0.addButton({
|
||||
custom_id: "s11",
|
||||
disabled: false,
|
||||
emoji: "<:ico_pegman_down:1264344115785502802>",
|
||||
style: 3
|
||||
})
|
||||
|
||||
row0.addButton({
|
||||
custom_id: "s12",
|
||||
disabled: false,
|
||||
emoji: "<:right:1264344072257015830>",
|
||||
style: 1
|
||||
})
|
||||
|
||||
|
||||
|
||||
row0.addButton({
|
||||
custom_id: "s13",
|
||||
disabled: true,
|
||||
emoji: "<:empty:749601069298090034>",
|
||||
style: 2
|
||||
})
|
||||
|
||||
|
||||
row0.addButton({
|
||||
custom_id: "s14",
|
||||
disabled: true,
|
||||
emoji: "<:empty:749601069298090034>",
|
||||
style: 2
|
||||
})
|
||||
|
||||
|
||||
|
||||
row0.addButton({
|
||||
custom_id: "s20",
|
||||
disabled: true,
|
||||
emoji: "<:empty:749601069298090034>",
|
||||
style: 2
|
||||
})
|
||||
|
||||
row0.addButton({
|
||||
custom_id: "s21",
|
||||
disabled: false,
|
||||
emoji: "<:down:1264344051751059479>",
|
||||
style: 1
|
||||
})
|
||||
|
||||
row0.addButton({
|
||||
custom_id: "s22",
|
||||
disabled: true,
|
||||
emoji: "<:empty:749601069298090034>",
|
||||
style: 2
|
||||
})
|
||||
|
||||
|
||||
|
||||
row0.addButton({
|
||||
custom_id: "s23",
|
||||
disabled: true,
|
||||
emoji: "<:empty:749601069298090034>",
|
||||
style: 2
|
||||
})
|
||||
|
||||
|
||||
row0.addButton({
|
||||
custom_id: "s24",
|
||||
disabled: true,
|
||||
emoji: "<:empty:749601069298090034>",
|
||||
style: 2
|
||||
})
|
||||
|
||||
|
||||
|
||||
console.log(JSON.stringify(component))
|
||||
|
||||
editOrReply(context, {
|
||||
embeds: [
|
||||
{
|
||||
author: {
|
||||
name: "New York Stock Exchange, NYC",
|
||||
iconUrl: "https://bignutty.gitlab.io/webstorage4/v2/assets/brands/maps.png"
|
||||
},
|
||||
image: {
|
||||
url: "https://cdn.discordapp.com/attachments/415951527258095616/1264345049215275080/9k.png?ex=669d8896&is=669c3716&hm=a3f0a1b025fd75f47e144e7a9e3161242634dfcd1d76825f1e82deeb0269f30a&"
|
||||
}
|
||||
}
|
||||
],
|
||||
components: component
|
||||
})
|
||||
}
|
||||
};
|
|
@ -1,12 +1,9 @@
|
|||
const { DEFAULT_PREFIXES } = require('#constants');
|
||||
const { DEFAULT_PREFIXES, PERMISSION_GROUPS } = require('#constants');
|
||||
|
||||
const { createEmbed } = require('#utils/embed')
|
||||
const { codeblock } = require('#utils/markdown');
|
||||
const { editOrReply } = require('#utils/message')
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
|
||||
const superagent = require('superagent');
|
||||
|
||||
const SIZES = Object.freeze({
|
||||
|
@ -36,7 +33,7 @@ module.exports = {
|
|||
{ name: 'variance', default: '', required: false, help: "Variance (1000-9999)" },
|
||||
{ name: 'rotate', default: '', required: false, help: "Rotation amount (0-360)" }
|
||||
],
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.ATTACH_FILES, Permissions.READ_MESSAGE_HISTORY],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline, ...PERMISSION_GROUPS.attachments],
|
||||
run: async (context, args) => {
|
||||
await editOrReply(context, createEmbed("loading", context, `Generating image...`))
|
||||
try{
|
||||
|
|
|
@ -1,73 +0,0 @@
|
|||
const { createEmbed } = require('#utils/embed')
|
||||
const { editOrReply } = require('#utils/message')
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
|
||||
const APPS = [
|
||||
"appcode",
|
||||
"aqua",
|
||||
"big-data-tools",
|
||||
"clion",
|
||||
"cwm",
|
||||
"datagrip",
|
||||
"datalore",
|
||||
"dataspell",
|
||||
"dotcover",
|
||||
"dotmemory",
|
||||
"dotpeek",
|
||||
"dottrace",
|
||||
"fleet",
|
||||
"gateway",
|
||||
"goland",
|
||||
"grazie",
|
||||
"hub",
|
||||
"intellij-idea",
|
||||
"intellij-idea-community",
|
||||
"intellij-idea-edu",
|
||||
"intellij-rust",
|
||||
"jetbrains",
|
||||
"jb-academy",
|
||||
"kotlin",
|
||||
"license-vault",
|
||||
"marketplace",
|
||||
"mono",
|
||||
"mps",
|
||||
"phpstorm",
|
||||
"pycharm",
|
||||
"pycharm-community",
|
||||
"pycharm-edu",
|
||||
"qa-tools",
|
||||
"qodana",
|
||||
"resharper",
|
||||
"resharper-cpp",
|
||||
"rider",
|
||||
"riderflow",
|
||||
"rubymine",
|
||||
"space",
|
||||
"teamcity",
|
||||
"toolbox",
|
||||
"upsource",
|
||||
"webstorm",
|
||||
"youtrack",
|
||||
]
|
||||
|
||||
module.exports = {
|
||||
name: 'art2',
|
||||
aliases: ['wallpaper2'],
|
||||
metadata: {
|
||||
description: 'Returns a random colorful wallpaper from JetBrains Eidos.',
|
||||
description_short: 'AI wallpapers',
|
||||
category: 'fun',
|
||||
usage: `art2`
|
||||
},
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.READ_MESSAGE_HISTORY],
|
||||
run: async (context) => {
|
||||
context.triggerTyping();
|
||||
return editOrReply(context, createEmbed("default", context, {
|
||||
image: {
|
||||
url: `https://resources.jetbrains.com/cai/eidos_231/${APPS[Math.floor(Math.random()*APPS.length)]}/${Math.floor(1 + Math.random()*999)}.png`
|
||||
}
|
||||
}))
|
||||
}
|
||||
};
|
|
@ -1,13 +1,10 @@
|
|||
const { garfield } = require('#api');
|
||||
const { FUNNY_CAT_ICONS } = require('#constants');
|
||||
const { FUNNY_CAT_ICONS, PERMISSION_GROUPS } = require('#constants');
|
||||
|
||||
const { createEmbed } = require('#utils/embed');
|
||||
const { timestamp } = require('#utils/markdown');
|
||||
const { editOrReply } = require('#utils/message')
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
|
||||
module.exports = {
|
||||
name: 'garfield',
|
||||
aliases: ['garf'],
|
||||
|
@ -17,7 +14,7 @@ module.exports = {
|
|||
category: 'fun',
|
||||
usage: `garfield`
|
||||
},
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.READ_MESSAGE_HISTORY],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline],
|
||||
run: async (context) => {
|
||||
context.triggerTyping();
|
||||
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
const { PERMISSION_GROUPS } = require('#constants');
|
||||
const { createEmbed } = require('#utils/embed');
|
||||
const { editOrReply } = require('#utils/message');
|
||||
const { STATICS } = require('#utils/statics');
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
|
||||
const superagent = require('superagent');
|
||||
|
||||
module.exports = {
|
||||
|
@ -16,7 +14,7 @@ module.exports = {
|
|||
category: 'fun',
|
||||
usage: `inspire`
|
||||
},
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.ATTACH_FILES, Permissions.READ_MESSAGE_HISTORY],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline],
|
||||
run: async (context) => {
|
||||
await context.triggerTyping();
|
||||
try {
|
||||
|
|
|
@ -1,11 +1,9 @@
|
|||
const { otter } = require('#api');
|
||||
const { PERMISSION_GROUPS } = require('#constants');
|
||||
|
||||
const { createEmbed } = require('#utils/embed')
|
||||
const { editOrReply } = require('#utils/message')
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
|
||||
module.exports = {
|
||||
name: 'otter',
|
||||
metadata: {
|
||||
|
@ -15,7 +13,7 @@ module.exports = {
|
|||
usage: `otter`,
|
||||
slashCommand: "otter"
|
||||
},
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.ATTACH_FILES, Permissions.READ_MESSAGE_HISTORY],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline],
|
||||
run: async (context) => {
|
||||
await context.triggerTyping();
|
||||
try{
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
const { PERMISSION_GROUPS } = require('#constants');
|
||||
const { webAsk } = require('#obelisk');
|
||||
|
||||
const { createEmbed } = require('#utils/embed')
|
||||
|
@ -6,9 +7,6 @@ const { editOrReply } = require('#utils/message')
|
|||
const { STATIC_ICONS } = require('#utils/statics');
|
||||
const { hasFeature } = require('#utils/testing');
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
|
||||
// TODO: general purpose constant?
|
||||
const URL_REGEX = /https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([^> \n]*)/
|
||||
|
||||
|
@ -22,7 +20,7 @@ module.exports = {
|
|||
category: 'limited',
|
||||
usage: 'ask <question>'
|
||||
},
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.READ_MESSAGE_HISTORY],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline],
|
||||
run: async (context, args) => {
|
||||
if(!await hasFeature(context, "flamingo/summary")) return;
|
||||
context.triggerTyping();
|
||||
|
|
|
@ -1,13 +1,11 @@
|
|||
const { emogen } = require("#api");
|
||||
const { PERMISSION_GROUPS } = require("#constants");
|
||||
|
||||
const { createEmbed } = require("#utils/embed");
|
||||
const { iconPill } = require("#utils/markdown");
|
||||
const { editOrReply } = require("#utils/message");
|
||||
const { hasFeature } = require("#utils/testing");
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
|
||||
module.exports = {
|
||||
name: 'emogen',
|
||||
label: 'text',
|
||||
|
@ -21,7 +19,7 @@ module.exports = {
|
|||
args: [
|
||||
{ name: 'style', default: 'microsoft', required: false, help: "Emogen Style" }
|
||||
],
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.ATTACH_FILES, Permissions.READ_MESSAGE_HISTORY],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline, ...PERMISSION_GROUPS.attachments],
|
||||
run: async (context, args) => {
|
||||
if(!await hasFeature(context, "ai/imagen")) return;
|
||||
context.triggerTyping();
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
const { PERMISSION_GROUPS } = require("#constants");
|
||||
const { LlmModelsGenerate } = require("#obelisk");
|
||||
|
||||
const { createEmbed } = require("#utils/embed");
|
||||
|
@ -6,9 +7,6 @@ const { editOrReply } = require("#utils/message");
|
|||
const { STATIC_ICONS } = require("#utils/statics");
|
||||
const { hasFeature } = require("#utils/testing");
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
|
||||
module.exports = {
|
||||
name: 'gemini-pro',
|
||||
label: 'text',
|
||||
|
@ -20,7 +18,7 @@ module.exports = {
|
|||
category: 'limited',
|
||||
usage: 'gemini-pro <prompt>'
|
||||
},
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.ATTACH_FILES, Permissions.READ_MESSAGE_HISTORY],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline, ...PERMISSION_GROUPS.attachments],
|
||||
run: async (context, args) => {
|
||||
if(!await hasFeature(context, "ai/gemini/text")) return;
|
||||
context.triggerTyping();
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
const { PERMISSION_GROUPS } = require("#constants");
|
||||
const { geminiVision } = require("#obelisk");
|
||||
|
||||
const { getRecentImage } = require("#utils/attachment");
|
||||
|
@ -7,9 +8,6 @@ const { editOrReply } = require("#utils/message");
|
|||
const { STATIC_ICONS } = require("#utils/statics");
|
||||
const { hasFeature } = require("#utils/testing");
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
|
||||
module.exports = {
|
||||
name: 'gemini-vision',
|
||||
label: 'text',
|
||||
|
@ -21,7 +19,7 @@ module.exports = {
|
|||
category: 'limited',
|
||||
usage: 'gemini-vision <attachment> <prompt>'
|
||||
},
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.ATTACH_FILES, Permissions.READ_MESSAGE_HISTORY],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline, ...PERMISSION_GROUPS.attachments],
|
||||
run: async (context, args) => {
|
||||
if(!await hasFeature(context, "ai/gemini/vision")) return;
|
||||
context.triggerTyping();
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
const { PERMISSION_GROUPS } = require('#constants');
|
||||
const { LlmPrivateBard } = require('#obelisk');
|
||||
|
||||
const { createEmbed } = require('#utils/embed')
|
||||
|
@ -6,8 +7,7 @@ const { editOrReply } = require('#utils/message')
|
|||
const { STATIC_ICONS } = require('#utils/statics');
|
||||
const { hasFeature } = require('#utils/testing');
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions, InteractionCallbackTypes } = require("detritus-client/lib/constants");
|
||||
const { InteractionCallbackTypes } = require("detritus-client/lib/constants");
|
||||
const { Components } = require('detritus-client/lib/utils');
|
||||
|
||||
module.exports = {
|
||||
|
@ -22,7 +22,7 @@ module.exports = {
|
|||
usage: 'gemini <input>'
|
||||
},
|
||||
args: [],
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.ATTACH_FILES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.READ_MESSAGE_HISTORY],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline, ...PERMISSION_GROUPS.attachments],
|
||||
run: async (context, args) => {
|
||||
if(!await hasFeature(context, "ai/bard")) return;
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
const { gpt } = require('#api');
|
||||
const { PERMISSION_GROUPS } = require('#constants');
|
||||
|
||||
const { createEmbed } = require('#utils/embed')
|
||||
const { editOrReply } = require('#utils/message')
|
||||
|
@ -6,8 +7,6 @@ const { iconPill, stringwrap, smallIconPill } = require('#utils/markdown')
|
|||
const { STATICS, STATIC_ASSETS } = require('#utils/statics');
|
||||
const { hasFeature } = require('#utils/testing');
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
|
||||
module.exports = {
|
||||
name: 'gpt',
|
||||
|
@ -24,7 +23,7 @@ module.exports = {
|
|||
{ name: 'prompt', default: '', required: false, help: "The starting system prompt." },
|
||||
// { name: 'temperature', default: 0.25, required: false, help: "Model temperature." },
|
||||
],
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.ATTACH_FILES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.READ_MESSAGE_HISTORY],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline, ...PERMISSION_GROUPS.attachments],
|
||||
run: async (context, args) => {
|
||||
if(!await hasFeature(context, "ai/gpt")) return;
|
||||
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
const { PERMISSION_GROUPS } = require("#constants");
|
||||
const { GenerativeImagesModelsImagen } = require("#obelisk");
|
||||
|
||||
const { createEmbed } = require("#utils/embed");
|
||||
|
@ -6,9 +7,6 @@ const { editOrReply } = require("#utils/message");
|
|||
const { STATIC_ICONS, STATIC_ASSETS } = require("#utils/statics");
|
||||
const { hasFeature } = require("#utils/testing");
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
|
||||
module.exports = {
|
||||
name: 'imagen',
|
||||
label: 'text',
|
||||
|
@ -20,7 +18,7 @@ module.exports = {
|
|||
category: 'limited',
|
||||
usage: 'imagen <prompt>'
|
||||
},
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.ATTACH_FILES, Permissions.READ_MESSAGE_HISTORY],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline, ...PERMISSION_GROUPS.attachments],
|
||||
run: async (context, args) => {
|
||||
if(!await hasFeature(context, "ai/imagen")) return;
|
||||
context.triggerTyping();
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
const { palm2 } = require('#obelisk');
|
||||
const { PERMISSION_GROUPS } = require('#constants');
|
||||
|
||||
const { createEmbed } = require('#utils/embed')
|
||||
const { editOrReply } = require('#utils/message')
|
||||
|
@ -6,9 +7,6 @@ const { iconPill, stringwrap, smallIconPill } = require('#utils/markdown')
|
|||
const { STATIC_ICONS } = require('#utils/statics');
|
||||
const { hasFeature } = require('#utils/testing');
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
|
||||
module.exports = {
|
||||
name: 'palm',
|
||||
label: 'text',
|
||||
|
@ -24,7 +22,7 @@ module.exports = {
|
|||
{ name: 'prompt', default: '', required: false, help: "The starting system prompt." },
|
||||
{ name: 'temperature', default: 0.25, required: false, help: "Model temperature." },
|
||||
],
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.ATTACH_FILES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.READ_MESSAGE_HISTORY],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline, ...PERMISSION_GROUPS.attachments],
|
||||
run: async (context, args) => {
|
||||
if(!await hasFeature(context, "ai/palm")) return;
|
||||
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
const { PERMISSION_GROUPS } = require('#constants');
|
||||
const { SparkWebSummarize } = require('#obelisk');
|
||||
|
||||
const { createEmbed } = require('#utils/embed')
|
||||
|
@ -6,9 +7,6 @@ const { editOrReply } = require('#utils/message')
|
|||
const { STATIC_ICONS } = require('#utils/statics');
|
||||
const { hasFeature } = require('#utils/testing');
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
|
||||
// TODO: general purpose constant? regex util?
|
||||
const URL_REGEX = /https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([^> \n]*)/
|
||||
|
||||
|
@ -23,7 +21,7 @@ module.exports = {
|
|||
category: 'limited',
|
||||
usage: 'summarize'
|
||||
},
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.READ_MESSAGE_HISTORY],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline],
|
||||
run: async (context, args) => {
|
||||
if(!await hasFeature(context, "flamingo/summary")) return;
|
||||
context.triggerTyping();
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
const { PERMISSION_GROUPS } = require("#constants");
|
||||
const { wallpaper } = require("#obelisk");
|
||||
|
||||
const { createEmbed } = require("#utils/embed");
|
||||
|
@ -6,9 +7,6 @@ const { editOrReply } = require("#utils/message");
|
|||
const { STATIC_ICONS, STATIC_ASSETS } = require("#utils/statics");
|
||||
const { hasFeature } = require("#utils/testing");
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
|
||||
module.exports = {
|
||||
name: 'wallpaper',
|
||||
label: 'text',
|
||||
|
@ -23,7 +21,7 @@ module.exports = {
|
|||
args: [
|
||||
{ name: 'format', default: 'wide', required: false, help: "Image style (wide, square)." }
|
||||
],
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.ATTACH_FILES, Permissions.READ_MESSAGE_HISTORY],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline, ...PERMISSION_GROUPS.attachments],
|
||||
run: async (context, args) => {
|
||||
if(!await hasFeature(context, "ai/wallpapers")) return;
|
||||
context.triggerTyping();
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
const { googleVisionLabels } = require("#api");
|
||||
const { PERMISSION_GROUPS } = require("#constants");
|
||||
|
||||
const { getRecentImage } = require("#utils/attachment");
|
||||
const { createEmbed } = require("#utils/embed");
|
||||
|
@ -6,9 +7,6 @@ const { pill, smallPill } = require("#utils/markdown");
|
|||
const { editOrReply } = require("#utils/message");
|
||||
const { STATICS } = require("#utils/statics");
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
|
||||
module.exports = {
|
||||
name: 'labels',
|
||||
metadata: {
|
||||
|
@ -17,7 +15,7 @@ module.exports = {
|
|||
category: 'utils',
|
||||
usage: 'labels <attachment>'
|
||||
},
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.READ_MESSAGE_HISTORY],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline],
|
||||
run: async (context) => {
|
||||
context.triggerTyping();
|
||||
let image = await getRecentImage(context, 50)
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
const { googleVisionSafetyLabels } = require("#api");
|
||||
const { GOOGLE_CLOUD_SAFETY_LABELS, GOOGLE_CLOUD_SAFETY_LABELS_NAMES } = require("#constants");
|
||||
const { GOOGLE_CLOUD_SAFETY_LABELS, GOOGLE_CLOUD_SAFETY_LABELS_NAMES, PERMISSION_GROUPS } = require("#constants");
|
||||
|
||||
const { getRecentImage } = require("#utils/attachment");
|
||||
const { createEmbed } = require("#utils/embed");
|
||||
|
@ -7,9 +7,6 @@ const { iconPill, smallPill } = require("#utils/markdown");
|
|||
const { editOrReply } = require("#utils/message");
|
||||
const { STATICS } = require("#utils/statics");
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
|
||||
module.exports = {
|
||||
name: 'safetylabels',
|
||||
metadata: {
|
||||
|
@ -18,7 +15,7 @@ module.exports = {
|
|||
category: 'utils',
|
||||
usage: 'safetylabels <attachment>'
|
||||
},
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.READ_MESSAGE_HISTORY],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline],
|
||||
run: async (context) => {
|
||||
context.triggerTyping();
|
||||
let image = await getRecentImage(context, 50)
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
const { PERMISSION_GROUPS } = require('#constants');
|
||||
const { AudioTranscribe } = require('#obelisk');
|
||||
|
||||
const { createEmbed } = require('#utils/embed')
|
||||
|
@ -5,9 +6,6 @@ const { codeblock, icon } = require('#utils/markdown');
|
|||
const { editOrReply } = require('#utils/message')
|
||||
const { STATICS } = require('#utils/statics');
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
|
||||
module.exports = {
|
||||
name: 'transcribe',
|
||||
aliases: ['tcr'],
|
||||
|
@ -18,7 +16,7 @@ module.exports = {
|
|||
usage: 'transcribe',
|
||||
slashCommand: "Transcribe Voice Message"
|
||||
},
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.READ_MESSAGE_HISTORY, Permissions.READ_MESSAGE_HISTORY],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline],
|
||||
run: async (context) => {
|
||||
context.triggerTyping();
|
||||
if (!context.message.messageReference) return editOrReply(context, createEmbed("warning", context, "You need to reply to a voice message."))
|
||||
|
|
|
@ -1,72 +0,0 @@
|
|||
const { createEmbed } = require("#utils/embed");
|
||||
const { editOrReply } = require("#utils/message");
|
||||
const { STATICS } = require("#utils/statics");
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
|
||||
const superagent = require('superagent');
|
||||
const { link } = require("#utils/markdown");
|
||||
|
||||
module.exports = {
|
||||
name: 'craiyon',
|
||||
label: 'query',
|
||||
metadata: {
|
||||
description: 'Uses Craiyon to generate four images from a text prompt.',
|
||||
description_short: 'Craiyon AI image generation',
|
||||
examples: ['craiyon Otter'],
|
||||
category: 'image',
|
||||
usage: 'craiyon <text>'
|
||||
},
|
||||
ratelimit: {
|
||||
type: 'guild',
|
||||
limit: 1,
|
||||
duration: 5000
|
||||
},
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.ATTACH_FILES, Permissions.READ_MESSAGE_HISTORY],
|
||||
run: async (context, args) => {
|
||||
|
||||
return editOrReply(context, createEmbed("default", context, {
|
||||
description: `Image manipulation commands are **no longer supported** in ${context.client.application.name}.\n\nIf you're looking for a suitable replacement, check out ${link("https://canary.discord.com/oauth2/authorize?client_id=571661221854707713", "Assyst", "Invite Assyst Bot")}.`,
|
||||
image: {
|
||||
url: "https://cdn.discordapp.com/attachments/1029331568315093043/1282814251005775902/attachment.gif?ex=66e0b95e&is=66df67de&hm=81087808fd9bcd31886050280cae535827c274efdf6d04a318a073c40dc5a554&"
|
||||
}
|
||||
}))
|
||||
await editOrReply(context, createEmbed("loading", context, `Synthesizing images...`))
|
||||
|
||||
let noticeTimer = setTimeout(()=>{
|
||||
let emb = createEmbed("loading", context, `Synthesizing images...`)
|
||||
emb.footer = {
|
||||
text: "This might take several minutes to complete."
|
||||
};
|
||||
editOrReply(context, { embeds: [ emb ] });
|
||||
}, 30000)
|
||||
|
||||
try{
|
||||
let t = Date.now();
|
||||
|
||||
let img = await superagent.post(`https://bf.dallemini.ai/generate`)
|
||||
.send({
|
||||
prompt: args.query
|
||||
})
|
||||
|
||||
clearTimeout(noticeTimer)
|
||||
|
||||
let embeds = [];
|
||||
let files = [];
|
||||
|
||||
for(let i = 0; i < 4; i++){
|
||||
embeds.push(createEmbed("default", context, {image: {url:`attachment://dalle${i}.jpeg`}, url: `https://example.com`, footer: { iconUrl: STATICS.labscore, text: `${context.application.name} • Took ${((Date.now() - t) / 1000).toFixed(2)}s` }}))
|
||||
files.push({
|
||||
filename: `dalle${i}.jpeg`,
|
||||
value: Buffer.from(img.body.images[i], 'base64')
|
||||
})
|
||||
}
|
||||
|
||||
await editOrReply(context, { embeds, files })
|
||||
}catch(e){
|
||||
if(e.response.status == 503) return await editOrReply(context, createEmbed("error", context, `DALL-E Mini server is busy, try again later.`))
|
||||
await editOrReply(context, createEmbed("error", context, `Image generation failed.`))
|
||||
}
|
||||
},
|
||||
};
|
|
@ -1,57 +0,0 @@
|
|||
const { getRecentImage } = require("#utils/attachment");
|
||||
const { createEmbed } = require("#utils/embed");
|
||||
const { editOrReply } = require("#utils/message");
|
||||
const { STATICS } = require("#utils/statics");
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
|
||||
const { billboardCityscape } = require("../../../../service/makesweet");
|
||||
const { description } = require("../../../interaction/slash/search/lyrics");
|
||||
const { link } = require("#utils/markdown");
|
||||
|
||||
module.exports = {
|
||||
name: 'billboard',
|
||||
label: 'text',
|
||||
metadata: {
|
||||
description: 'Generates an animated gif with the MakeSweet billboard template.',
|
||||
description_short: 'Animated billboard generation',
|
||||
category: 'image',
|
||||
usage: 'billboard <image>'
|
||||
},
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.ATTACH_FILES, Permissions.READ_MESSAGE_HISTORY],
|
||||
run: async (context, args) => {
|
||||
|
||||
return editOrReply(context, createEmbed("default", context, {
|
||||
description: `Image manipulation commands are **no longer supported** in ${context.client.application.name}.\n\nIf you're looking for a suitable replacement, check out ${link("https://canary.discord.com/oauth2/authorize?client_id=571661221854707713", "Assyst", "Invite Assyst Bot")}.`,
|
||||
image: {
|
||||
url: "https://cdn.discordapp.com/attachments/1029331568315093043/1282814251005775902/attachment.gif?ex=66e0b95e&is=66df67de&hm=81087808fd9bcd31886050280cae535827c274efdf6d04a318a073c40dc5a554&"
|
||||
}
|
||||
}))
|
||||
let image = await getRecentImage(context, 50)
|
||||
if (!image) return editOrReply(context, createEmbed("warning", context, "No images found."))
|
||||
|
||||
await editOrReply(context, createEmbed("loading", context, `Generating image...`))
|
||||
|
||||
if (!args.text) args.text = ""
|
||||
try {
|
||||
const timings = Date.now();
|
||||
let mkswt = await billboardCityscape(image)
|
||||
|
||||
return await editOrReply(context, {
|
||||
embeds: [createEmbed("image", context, {
|
||||
url: "makesweet.gif",
|
||||
time: ((Date.now() - timings) / 1000).toFixed(2),
|
||||
provider: {
|
||||
icon: STATICS.makesweet,
|
||||
text: "MakeSweet"
|
||||
}
|
||||
})],
|
||||
files: [{ filename: "makesweet.gif", value: mkswt.body }]
|
||||
})
|
||||
} catch (e) {
|
||||
console.log(e)
|
||||
await editOrReply(context, createEmbed("error", context, "Something went wrong."))
|
||||
}
|
||||
},
|
||||
}
|
|
@ -1,55 +0,0 @@
|
|||
const { getRecentImage } = require("#utils/attachment");
|
||||
const { createEmbed } = require("#utils/embed");
|
||||
const { editOrReply } = require("#utils/message");
|
||||
const { STATICS } = require("#utils/statics");
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
|
||||
const { circuitBoard } = require("../../../../service/makesweet");
|
||||
const { link } = require("#utils/markdown");
|
||||
|
||||
module.exports = {
|
||||
name: 'circuitboard',
|
||||
label: 'text',
|
||||
metadata: {
|
||||
description: 'Generates an animated gif with the MakeSweet circuit board template.',
|
||||
description_short: 'Animated circuit board generation',
|
||||
category: 'image',
|
||||
usage: 'circuitboard <image>'
|
||||
},
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.ATTACH_FILES, Permissions.READ_MESSAGE_HISTORY],
|
||||
run: async (context, args) => {
|
||||
|
||||
return editOrReply(context, createEmbed("default", context, {
|
||||
description: `Image manipulation commands are **no longer supported** in ${context.client.application.name}.\n\nIf you're looking for a suitable replacement, check out ${link("https://canary.discord.com/oauth2/authorize?client_id=571661221854707713", "Assyst", "Invite Assyst Bot")}.`,
|
||||
image: {
|
||||
url: "https://cdn.discordapp.com/attachments/1029331568315093043/1282814251005775902/attachment.gif?ex=66e0b95e&is=66df67de&hm=81087808fd9bcd31886050280cae535827c274efdf6d04a318a073c40dc5a554&"
|
||||
}
|
||||
}))
|
||||
let image = await getRecentImage(context, 50)
|
||||
if(!image) return editOrReply(context, createEmbed("warning", context, "No images found."))
|
||||
|
||||
await editOrReply(context, createEmbed("loading", context, `Generating image...`))
|
||||
|
||||
if(!args.text) args.text = ""
|
||||
try {
|
||||
const timings = Date.now();
|
||||
let mkswt = await circuitBoard(image)
|
||||
|
||||
return await editOrReply(context, {
|
||||
embeds: [createEmbed("image", context, {
|
||||
url: "makesweet.gif",
|
||||
time: ((Date.now() - timings) / 1000).toFixed(2),
|
||||
provider: {
|
||||
icon: STATICS.makesweet,
|
||||
text: "MakeSweet"
|
||||
}
|
||||
})],
|
||||
files: [{ filename: "makesweet.gif", value: mkswt.body }]
|
||||
})
|
||||
} catch (e) {
|
||||
await editOrReply(context, createEmbed("error", context, e))
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,55 +0,0 @@
|
|||
const { getRecentImage } = require("#utils/attachment");
|
||||
const { createEmbed } = require("#utils/embed");
|
||||
const { editOrReply } = require("#utils/message");
|
||||
const { STATICS } = require("#utils/statics");
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
|
||||
const { flag } = require("../../../../service/makesweet");
|
||||
const { link } = require("#utils/markdown");
|
||||
|
||||
module.exports = {
|
||||
name: 'flag',
|
||||
label: 'text',
|
||||
metadata: {
|
||||
description: 'Generates an animated gif with the MakeSweet flag template.',
|
||||
description_short: 'Animated flag generation',
|
||||
category: 'image',
|
||||
usage: 'flag <image>'
|
||||
},
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.ATTACH_FILES, Permissions.READ_MESSAGE_HISTORY],
|
||||
run: async (context, args) => {
|
||||
|
||||
return editOrReply(context, createEmbed("default", context, {
|
||||
description: `Image manipulation commands are **no longer supported** in ${context.client.application.name}.\n\nIf you're looking for a suitable replacement, check out ${link("https://canary.discord.com/oauth2/authorize?client_id=571661221854707713", "Assyst", "Invite Assyst Bot")}.`,
|
||||
image: {
|
||||
url: "https://cdn.discordapp.com/attachments/1029331568315093043/1282814251005775902/attachment.gif?ex=66e0b95e&is=66df67de&hm=81087808fd9bcd31886050280cae535827c274efdf6d04a318a073c40dc5a554&"
|
||||
}
|
||||
}))
|
||||
let image = await getRecentImage(context, 50)
|
||||
if(!image) return editOrReply(context, createEmbed("warning", context, "No images found."))
|
||||
|
||||
await editOrReply(context, createEmbed("loading", context, `Generating image...`))
|
||||
|
||||
if(!args.text) args.text = ""
|
||||
try {
|
||||
const timings = Date.now();
|
||||
let mkswt = await flag(image)
|
||||
|
||||
return await editOrReply(context, {
|
||||
embeds: [createEmbed("image", context, {
|
||||
url: "makesweet.gif",
|
||||
time: ((Date.now() - timings) / 1000).toFixed(2),
|
||||
provider: {
|
||||
icon: STATICS.makesweet,
|
||||
text: "MakeSweet"
|
||||
}
|
||||
})],
|
||||
files: [{ filename: "makesweet.gif", value: mkswt.body }]
|
||||
})
|
||||
} catch (e) {
|
||||
await editOrReply(context, createEmbed("error", context, e))
|
||||
}
|
||||
},
|
||||
}
|
|
@ -1,56 +0,0 @@
|
|||
const { getRecentImage } = require("#utils/attachment");
|
||||
const { createEmbed } = require("#utils/embed");
|
||||
const { editOrReply } = require("#utils/message");
|
||||
const { STATICS } = require("#utils/statics");
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
|
||||
const { heartLocket } = require("../../../../service/makesweet");
|
||||
const { link } = require("#utils/markdown");
|
||||
|
||||
module.exports = {
|
||||
name: 'heartlocket',
|
||||
label: 'text',
|
||||
metadata: {
|
||||
description: 'Generates an animated gif with the MakeSweet heart locket template. Accepts text as an optional input.',
|
||||
description_short: 'Animated heart locket generation',
|
||||
examples: ['heartlocket Big Nutty'],
|
||||
category: 'image',
|
||||
usage: 'heartlocket <image> [<text>]'
|
||||
},
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.ATTACH_FILES, Permissions.READ_MESSAGE_HISTORY],
|
||||
run: async (context, args) => {
|
||||
|
||||
return editOrReply(context, createEmbed("default", context, {
|
||||
description: `Image manipulation commands are **no longer supported** in ${context.client.application.name}.\n\nIf you're looking for a suitable replacement, check out ${link("https://canary.discord.com/oauth2/authorize?client_id=571661221854707713", "Assyst", "Invite Assyst Bot")}.`,
|
||||
image: {
|
||||
url: "https://cdn.discordapp.com/attachments/1029331568315093043/1282814251005775902/attachment.gif?ex=66e0b95e&is=66df67de&hm=81087808fd9bcd31886050280cae535827c274efdf6d04a318a073c40dc5a554&"
|
||||
}
|
||||
}))
|
||||
let image = await getRecentImage(context, 50)
|
||||
if(!image) return editOrReply(context, createEmbed("warning", context, "No images found."))
|
||||
|
||||
await editOrReply(context, createEmbed("loading", context, `Generating image...`))
|
||||
|
||||
if(!args.text) args.text = ""
|
||||
try {
|
||||
const timings = Date.now();
|
||||
let mkswt = await heartLocket(args.text, image)
|
||||
|
||||
return await editOrReply(context, {
|
||||
embeds: [createEmbed("image", context, {
|
||||
url: "makesweet.gif",
|
||||
time: ((Date.now() - timings) / 1000).toFixed(2),
|
||||
provider: {
|
||||
icon: STATICS.makesweet,
|
||||
text: "MakeSweet"
|
||||
}
|
||||
})],
|
||||
files: [{ filename: "makesweet.gif", value: mkswt.body }]
|
||||
})
|
||||
} catch (e) {
|
||||
await editOrReply(context, createEmbed("error", context, e))
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,64 +0,0 @@
|
|||
const { retroWave } = require('#api')
|
||||
|
||||
const { createEmbed } = require('#utils/embed')
|
||||
const { editOrReply } = require('#utils/message')
|
||||
const { STATICS } = require('#utils/statics')
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
const { link } = require("#utils/markdown");
|
||||
|
||||
module.exports = {
|
||||
name: 'retro',
|
||||
label: 'text',
|
||||
metadata: {
|
||||
description: 'Generates an image with a retro style.',
|
||||
description_short: 'Retro-styled text',
|
||||
examples: ['retro crazy|chaos in|cyberspace'],
|
||||
category: 'image',
|
||||
usage: 'retro <line1|line2|line3> [-background <1-5>] [-style <1-4>]'
|
||||
},
|
||||
args: [
|
||||
{default: 5, name: 'background', type: 'integer', help: "Background Style ` 1, 2, 3, 4, 5 `"},
|
||||
{default: 4, name: 'style', type: 'integer', help: "Text Style ` 1, 2, 3, 4 `"},
|
||||
],
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.ATTACH_FILES, Permissions.READ_MESSAGE_HISTORY],
|
||||
run: async (context, args) => {
|
||||
|
||||
return editOrReply(context, createEmbed("default", context, {
|
||||
description: `Image manipulation commands are **no longer supported** in ${context.client.application.name}.\n\nIf you're looking for a suitable replacement, check out ${link("https://canary.discord.com/oauth2/authorize?client_id=571661221854707713", "Assyst", "Invite Assyst Bot")}.`,
|
||||
image: {
|
||||
url: "https://cdn.discordapp.com/attachments/1029331568315093043/1282814251005775902/attachment.gif?ex=66e0b95e&is=66df67de&hm=81087808fd9bcd31886050280cae535827c274efdf6d04a318a073c40dc5a554&"
|
||||
}
|
||||
}))
|
||||
context.triggerTyping();
|
||||
|
||||
if(!args.text) return editOrReply(context, createEmbed("warning", context, `Missing Parameter (text).`))
|
||||
if(args.background > 5 || args.background < 1) return editOrReply(context, createEmbed("warning", context, `Invalid Parameter (background).`))
|
||||
if(args.style > 4 || args.style < 1) return editOrReply(context, createEmbed("warning", context, `Invalid Parameter (style).`))
|
||||
|
||||
let lines = `${args.text}| | `.split('|')
|
||||
if(args.text.includes('|')) lines = [lines[1], lines[2], lines[0]]
|
||||
|
||||
try{
|
||||
let res = await retroWave(context, args.background, args.style, lines[2], lines[0], lines[1])
|
||||
|
||||
if(res.response.body.status == 1) return editOrReply(context, createEmbed("warning", context, res.response.body.errors[0]))
|
||||
|
||||
image = res.response.body.data.images[res.response.body.data.best_quality]
|
||||
|
||||
return editOrReply(context, createEmbed("image", context, {
|
||||
url: image,
|
||||
time: res.timings,
|
||||
provider: {
|
||||
icon: STATICS.photofunia,
|
||||
text: "PhotoFunia"
|
||||
}
|
||||
}))
|
||||
}catch(e){
|
||||
console.log(e)
|
||||
if(e.response?.body?.message) return editOrReply(context, createEmbed("error", context, e.response.body.message))
|
||||
return editOrReply(context, createEmbed("error", context, `Unable to generate image.`))
|
||||
}
|
||||
}
|
||||
};
|
|
@ -1,52 +0,0 @@
|
|||
const { yacht } = require('#api')
|
||||
|
||||
const { createEmbed } = require('#utils/embed')
|
||||
const { editOrReply } = require('#utils/message')
|
||||
const { STATICS } = require('#utils/statics')
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
const { link } = require("#utils/markdown");
|
||||
|
||||
module.exports = {
|
||||
name: 'yacht',
|
||||
label: 'text',
|
||||
metadata: {
|
||||
description: 'Generates an image with custom text on a yacht.',
|
||||
description_short: 'Custom text on a yacht',
|
||||
examples: ['yacht Im on a boat.'],
|
||||
category: 'image',
|
||||
usage: 'yacht <text>'
|
||||
},
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.ATTACH_FILES, Permissions.READ_MESSAGE_HISTORY],
|
||||
run: async (context, args) => {
|
||||
|
||||
return editOrReply(context, createEmbed("default", context, {
|
||||
description: `Image manipulation commands are **no longer supported** in ${context.client.application.name}.\n\nIf you're looking for a suitable replacement, check out ${link("https://canary.discord.com/oauth2/authorize?client_id=571661221854707713", "Assyst", "Invite Assyst Bot")}.`,
|
||||
image: {
|
||||
url: "https://cdn.discordapp.com/attachments/1029331568315093043/1282814251005775902/attachment.gif?ex=66e0b95e&is=66df67de&hm=81087808fd9bcd31886050280cae535827c274efdf6d04a318a073c40dc5a554&"
|
||||
}
|
||||
}))
|
||||
context.triggerTyping();
|
||||
|
||||
if(!args.text) return editOrReply(context, createEmbed("warning", context, `Missing Parameter (text).`))
|
||||
if(args.text.length >= 26) return editOrReply(context, createEmbed("warning", context, `Parameter text too long (>25).`))
|
||||
|
||||
try{
|
||||
let res = await yacht(context, args.text)
|
||||
image = res.response.body.data.images[res.response.body.data.best_quality]
|
||||
|
||||
return editOrReply(context, createEmbed("image", context, {
|
||||
url: image,
|
||||
time: res.timings,
|
||||
provider: {
|
||||
icon: STATICS.photofunia,
|
||||
text: "PhotoFunia"
|
||||
}
|
||||
}))
|
||||
}catch(e){
|
||||
console.log(e)
|
||||
return editOrReply(context, createEmbed("error", context, `Unable to generate image.`))
|
||||
}
|
||||
}
|
||||
};
|
|
@ -2,12 +2,10 @@ const { createEmbed } = require("#utils/embed");
|
|||
const { icon, highlight, link, stringwrap } = require('#utils/markdown');
|
||||
const { editOrReply } = require("#utils/message");
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
|
||||
const superagent = require('superagent');
|
||||
|
||||
const { Routes } = require('detritus-client-rest/lib/endpoints');
|
||||
const { PERMISSION_GROUPS } = require("#constants");
|
||||
|
||||
const applicationFlags = {
|
||||
EMBEDDED_RELEASED: 1,
|
||||
|
@ -48,7 +46,7 @@ module.exports = {
|
|||
category: 'info',
|
||||
usage: 'appinfo <application id>'
|
||||
},
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.READ_MESSAGE_HISTORY],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline],
|
||||
run: async (context, args) => {
|
||||
context.triggerTyping();
|
||||
let id;
|
||||
|
|
|
@ -1,13 +1,11 @@
|
|||
const { paginator } = require('#client');
|
||||
const { PERMISSION_GROUPS } = require('#constants');
|
||||
|
||||
const { createEmbed, page } = require("#utils/embed");
|
||||
const { icon } = require('#utils/markdown');
|
||||
const { editOrReply } = require("#utils/message");
|
||||
const { getUser, getUserAvatar } = require("#utils/users");
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
|
||||
module.exports = {
|
||||
name: 'avatar',
|
||||
label: 'user',
|
||||
|
@ -20,7 +18,7 @@ module.exports = {
|
|||
usage: 'avatar [<user>]',
|
||||
slashCommmand: 'avatar'
|
||||
},
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.READ_MESSAGE_HISTORY],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline],
|
||||
run: async (context, args) => {
|
||||
context.triggerTyping();
|
||||
if(!args.user) args.user = context.userId;
|
||||
|
|
|
@ -1,13 +1,11 @@
|
|||
const { paginator } = require('#client');
|
||||
const { PERMISSION_GROUPS } = require('#constants');
|
||||
|
||||
const { createEmbed, page } = require("#utils/embed");
|
||||
const { icon } = require('#utils/markdown');
|
||||
const { editOrReply } = require("#utils/message");
|
||||
const { getUser } = require("#utils/users");
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
|
||||
module.exports = {
|
||||
name: 'banner',
|
||||
label: 'user',
|
||||
|
@ -20,7 +18,7 @@ module.exports = {
|
|||
usage: 'avatar [<user>]',
|
||||
slashCommmand: 'banner'
|
||||
},
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.READ_MESSAGE_HISTORY],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline],
|
||||
run: async (context, args) => {
|
||||
context.triggerTyping();
|
||||
if(!args.user) args.user = context.userId;
|
||||
|
|
|
@ -1,13 +1,11 @@
|
|||
const { paginator } = require('#client');
|
||||
const { PERMISSION_GROUPS } = require('#constants');
|
||||
|
||||
const { createEmbed, page, formatPaginationEmbeds } = require("#utils/embed");
|
||||
const { guildFeaturesField } = require("#utils/fields");
|
||||
const { icon, highlight, timestamp, codeblock, smallIconPill } = require("#utils/markdown");
|
||||
const { editOrReply } = require("#utils/message");
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
|
||||
module.exports = {
|
||||
name: 'server',
|
||||
label: 'user',
|
||||
|
@ -18,7 +16,7 @@ module.exports = {
|
|||
category: 'info',
|
||||
usage: 'server'
|
||||
},
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.READ_MESSAGE_HISTORY],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline],
|
||||
run: async (context) => {
|
||||
try{
|
||||
const emojis = context.message.guild.emojis
|
||||
|
|
|
@ -1,9 +1,7 @@
|
|||
const { PERMISSION_GROUPS } = require('#constants');
|
||||
const { createEmbed } = require('#utils/embed')
|
||||
const { editOrReply } = require('#utils/message')
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
|
||||
module.exports = {
|
||||
name: 'serverbanner',
|
||||
aliases: ["guildbanner", "gb", "sb", "groupbanner"],
|
||||
|
@ -13,7 +11,7 @@ module.exports = {
|
|||
category: 'info',
|
||||
usage: 'serverbanner'
|
||||
},
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.READ_MESSAGE_HISTORY],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline],
|
||||
run: async (context) => {
|
||||
context.triggerTyping();
|
||||
if (!context.guild.bannerUrl) return editOrReply(context, createEmbed("warning", context, "Server doesn't have a banner set."))
|
||||
|
|
|
@ -1,9 +1,7 @@
|
|||
const { PERMISSION_GROUPS } = require('#constants');
|
||||
const { createEmbed } = require('#utils/embed')
|
||||
const { editOrReply } = require('#utils/message')
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
|
||||
module.exports = {
|
||||
name: 'servericon',
|
||||
aliases: ["guildicon", "gi", "si", "groupicon"],
|
||||
|
@ -13,7 +11,7 @@ module.exports = {
|
|||
category: 'info',
|
||||
usage: 'servericon'
|
||||
},
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.READ_MESSAGE_HISTORY],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline],
|
||||
run: async (context) => {
|
||||
context.triggerTyping();
|
||||
if (!context.guild.iconUrl) return editOrReply(context, createEmbed("warning", context, "Server doesn't have an icon."))
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
const { paginator } = require('#client');
|
||||
const { DISCORD_INVITES, OPEN_SOURCE_REPOSITORY_URL } = require("#constants");
|
||||
const { DISCORD_INVITES, OPEN_SOURCE_REPOSITORY_URL, PERMISSION_GROUPS } = require("#constants");
|
||||
|
||||
const { createEmbed, formatPaginationEmbeds, page } = require("#utils/embed");
|
||||
const { guildFeaturesField } = require("#utils/fields");
|
||||
|
@ -7,9 +7,6 @@ const { icon, highlight, timestamp, iconPill, iconLinkPill, link } = require("#u
|
|||
const { editOrReply } = require("#utils/message");
|
||||
const { STATIC_ASSETS } = require("#utils/statics");
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
|
||||
module.exports = {
|
||||
name: 'invite',
|
||||
label: 'invite',
|
||||
|
@ -21,7 +18,7 @@ module.exports = {
|
|||
category: 'info',
|
||||
usage: 'invite <invite code>'
|
||||
},
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.READ_MESSAGE_HISTORY],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline],
|
||||
run: async (context, args) => {
|
||||
context.triggerTyping();
|
||||
if(!args.invite) return editOrReply(context, {
|
||||
|
|
|
@ -1,13 +1,11 @@
|
|||
const { paginator } = require('#client');
|
||||
const { PERMISSION_GROUPS } = require('#constants');
|
||||
const { PERMISSION_CATEGORIES, PERMISSIONS_TEXT } = require('#permissions');
|
||||
|
||||
const { createEmbed, page, formatPaginationEmbeds } = require("#utils/embed");
|
||||
const { guildFeaturesField } = require("#utils/fields");
|
||||
const { icon, highlight, timestamp, codeblock, iconPill, smallPill, pill } = require("#utils/markdown");
|
||||
const { icon, iconPill, smallPill, pill } = require("#utils/markdown");
|
||||
const { editOrReply } = require("#utils/message");
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
const { PermissionTools } = require('detritus-client/lib/utils');
|
||||
|
||||
// TODO: Move this to a utility module
|
||||
|
@ -96,7 +94,7 @@ module.exports = {
|
|||
category: 'info',
|
||||
usage: 'role <name|id>'
|
||||
},
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.READ_MESSAGE_HISTORY],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline],
|
||||
run: async (context, args) => {
|
||||
let r = context.guild.roles.filter((r)=>r.name.toLowerCase().includes(args.query.toLowerCase()) || r.id == args.query)[0]
|
||||
|
||||
|
@ -146,9 +144,7 @@ module.exports = {
|
|||
|
||||
pages.push(page(newPage))
|
||||
}
|
||||
|
||||
|
||||
|
||||
await paginator.createPaginator({
|
||||
context,
|
||||
pages: formatPaginationEmbeds(pages)
|
||||
|
|
|
@ -1,13 +1,12 @@
|
|||
const { paginator } = require("#client");
|
||||
const { BADGE_ICONS } = require("#constants");
|
||||
const { PERMISSION_GROUPS } = require("#constants");
|
||||
|
||||
const { createEmbed, page } = require("#utils/embed");
|
||||
const { icon, highlight, timestamp, smallIconPill, smallPill } = require("#utils/markdown");
|
||||
const { editOrReply } = require("#utils/message");
|
||||
const { getUser, renderBadges, getUserAvatar } = require("#utils/users");
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { UserFlags, Permissions } = require("detritus-client/lib/constants");
|
||||
const { UserFlags } = require("detritus-client/lib/constants");
|
||||
|
||||
module.exports = {
|
||||
name: 'user',
|
||||
|
@ -21,7 +20,7 @@ module.exports = {
|
|||
usage: 'user [<user>]',
|
||||
slashCommand: 'user'
|
||||
},
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.READ_MESSAGE_HISTORY],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline],
|
||||
run: async (context, args) => {
|
||||
context.triggerTyping();
|
||||
try{
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
const { perspective } = require("#api");
|
||||
const { PERMISSION_GROUPS } = require("#constants");
|
||||
|
||||
const { format } = require("#utils/ansi");
|
||||
const { createEmbed } = require("#utils/embed");
|
||||
|
@ -6,8 +7,6 @@ const { icon, codeblock, iconPill, smallPill, stringwrap } = require("#utils/mar
|
|||
const { editOrReply } = require("#utils/message");
|
||||
const { STATICS } = require("#utils/statics");
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
const { Components } = require("detritus-client/lib/utils");
|
||||
|
||||
function getPerspectiveColor(score) {
|
||||
|
@ -63,7 +62,7 @@ module.exports = {
|
|||
category: 'mod',
|
||||
usage: 'analyze <prompt>'
|
||||
},
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.READ_MESSAGE_HISTORY],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline],
|
||||
run: async (context, args) => {
|
||||
await context.triggerTyping();
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
const { perspective } = require("#api");
|
||||
const { PERMISSION_GROUPS } = require("#constants");
|
||||
|
||||
const { format } = require("#utils/ansi");
|
||||
const { createEmbed } = require("#utils/embed");
|
||||
|
@ -7,9 +8,6 @@ const { editOrReply } = require("#utils/message");
|
|||
const { STATICS } = require("#utils/statics");
|
||||
const { getUserAvatar } = require("#utils/users");
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
|
||||
function getPerspectiveColor(score) {
|
||||
if (score >= 0.9) return "m"
|
||||
if (score >= 0.76) return "r"
|
||||
|
@ -41,7 +39,7 @@ module.exports = {
|
|||
category: 'mod',
|
||||
usage: 'perspective <prompt>'
|
||||
},
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.READ_MESSAGE_HISTORY],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline],
|
||||
run: async (context, args) => {
|
||||
await context.triggerTyping();
|
||||
|
||||
|
|
|
@ -3,8 +3,8 @@ const { createEmbed } = require("#utils/embed");
|
|||
const { editOrReply } = require("#utils/message");
|
||||
const { icon } = require("#utils/markdown");
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
const { PERMISSION_GROUPS } = require("#constants");
|
||||
|
||||
// TODO: rework this eventually
|
||||
// -> filter by user
|
||||
|
@ -22,7 +22,7 @@ module.exports = {
|
|||
{default: 20, name: 'amount', type: 'integer', help: "Amount of messages to be checked (1-20)"},
|
||||
{default: true, name: 'case', type: 'bool', help: "If provided, should the search query be case sensitive"},
|
||||
],
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.MANAGE_MESSAGES, Permissions.READ_MESSAGE_HISTORY],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline, Permissions.MANAGE_MESSAGES],
|
||||
permissions: [Permissions.MANAGE_MESSAGES],
|
||||
onPermissionsFail: (context) => editOrReply(context, {content: `${icon("failiure_simple")} ${context.message.author.mention}, you are lacking the permission \`Manage Messages\`.`}),
|
||||
ratelimit: {
|
||||
|
|
|
@ -1,11 +1,9 @@
|
|||
const { PERMISSION_GROUPS } = require('#constants');
|
||||
const { renderMusicButtons } = require('#utils/buttons');
|
||||
const { createEmbed } = require('#utils/embed')
|
||||
const { icon } = require('#utils/markdown');
|
||||
const { editOrReply } = require('#utils/message')
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
|
||||
const superagent = require('superagent')
|
||||
|
||||
// TODO: make this a constant, or add a URL util
|
||||
|
@ -21,7 +19,7 @@ module.exports = {
|
|||
usage: 'audio',
|
||||
slashCommand: "Music Platforms"
|
||||
},
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.READ_MESSAGE_HISTORY],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline],
|
||||
run: async (context) => {
|
||||
context.triggerTyping();
|
||||
if (!context.message.messageReference) return editOrReply(context, createEmbed("warning", context, "You need to reply to a message containing a song link."))
|
||||
|
|
|
@ -1,13 +1,11 @@
|
|||
const { bingImages } = require('#api');
|
||||
const { paginator } = require('#client');
|
||||
const { PERMISSION_GROUPS } = require('#constants');
|
||||
|
||||
const { createEmbed, formatPaginationEmbeds, page } = require('#utils/embed')
|
||||
const { editOrReply } = require('#utils/message')
|
||||
const { STATICS } = require('#utils/statics')
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
|
||||
// TODO: create a favicon() util
|
||||
function createImageResultPage(context, result) {
|
||||
let res = page(
|
||||
|
@ -40,7 +38,7 @@ module.exports = {
|
|||
category: 'search',
|
||||
usage: 'bing <query>'
|
||||
},
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.READ_MESSAGE_HISTORY],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline],
|
||||
run: async (context, args) => {
|
||||
context.triggerTyping();
|
||||
if (!args.query) return editOrReply(context, createEmbed("warning", context, `Missing Parameter (query).`))
|
||||
|
|
|
@ -1,14 +1,12 @@
|
|||
const { bing } = require('#api');
|
||||
const { paginator } = require('#client');
|
||||
const { PERMISSION_GROUPS } = require('#constants');
|
||||
|
||||
const { createEmbed, formatPaginationEmbeds, page } = require('#utils/embed')
|
||||
const { citation, link, codeblock } = require('#utils/markdown')
|
||||
const { editOrReply } = require('#utils/message')
|
||||
const { STATICS } = require('#utils/statics')
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
|
||||
// TODO: create a favicon() util
|
||||
function createSearchResultPage(context, entry){
|
||||
let res;
|
||||
|
@ -107,7 +105,7 @@ module.exports = {
|
|||
category: 'search',
|
||||
usage: 'bing <query>'
|
||||
},
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.READ_MESSAGE_HISTORY],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline],
|
||||
run: async (context, args) => {
|
||||
context.triggerTyping();
|
||||
if(!args.query) return editOrReply(context, createEmbed("warning", context, `Missing Parameter (query).`))
|
||||
|
|
|
@ -1,13 +1,11 @@
|
|||
const { googleImages } = require('#api');
|
||||
const { paginator } = require('#client');
|
||||
const { PERMISSION_GROUPS } = require('#constants');
|
||||
|
||||
const { createEmbed, formatPaginationEmbeds, page } = require('#utils/embed')
|
||||
const { editOrReply } = require('#utils/message')
|
||||
const { STATICS } = require('#utils/statics')
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
|
||||
// TODO: create a favicon() util
|
||||
function createImageResultPage(context, result) {
|
||||
let res = page(createEmbed("default", context, {
|
||||
|
@ -40,7 +38,7 @@ module.exports = {
|
|||
usage: 'image <query>',
|
||||
slashCommand: "image"
|
||||
},
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.READ_MESSAGE_HISTORY],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline],
|
||||
run: async (context, args) => {
|
||||
context.triggerTyping();
|
||||
if (!args.query) return editOrReply(context, createEmbed("warning", context, `Missing Parameter (query).`))
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
const { google } = require('#api');
|
||||
const { paginator } = require('#client');
|
||||
const { PERMISSION_GROUPS } = require('#constants');
|
||||
const { format } = require('#utils/ansi');
|
||||
|
||||
const { createEmbed, formatPaginationEmbeds, page } = require('#utils/embed')
|
||||
|
@ -7,9 +8,6 @@ const { link, citation, icon, codeblock, pill, smallPill } = require('#utils/mar
|
|||
const { editOrReply } = require('#utils/message')
|
||||
const { STATICS } = require('#utils/statics')
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
|
||||
function renderFooter(context, doodle){
|
||||
if(doodle?.super_g) return {
|
||||
iconUrl: doodle.super_g,
|
||||
|
@ -246,7 +244,7 @@ module.exports = {
|
|||
usage: 'google <query>',
|
||||
slashCommand: "google"
|
||||
},
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.READ_MESSAGE_HISTORY],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline],
|
||||
run: async (context, args) => {
|
||||
context.triggerTyping();
|
||||
if(!args.query) return editOrReply(context, createEmbed("warning", context, `Missing Parameter (query).`))
|
||||
|
|
|
@ -1,14 +1,12 @@
|
|||
const { lyrics } = require('#api');
|
||||
const { paginator } = require('#client');
|
||||
const { PERMISSION_GROUPS } = require('#constants');
|
||||
|
||||
const { createEmbed, formatPaginationEmbeds, page } = require('#utils/embed')
|
||||
const { smallIconPill } = require('#utils/markdown');
|
||||
const { editOrReply } = require('#utils/message')
|
||||
const { STATICS } = require('#utils/statics')
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
|
||||
const META_FIELDS = {
|
||||
"Album": "stat_videos",
|
||||
"Released": "note"
|
||||
|
@ -77,7 +75,7 @@ module.exports = {
|
|||
usage: 'lyrics <query>',
|
||||
slashCommand: "lyics"
|
||||
},
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.READ_MESSAGE_HISTORY, Permissions.READ_MESSAGE_HISTORY],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline],
|
||||
run: async (context, args) => {
|
||||
context.triggerTyping();
|
||||
if(!args.query) return editOrReply(context, createEmbed("warning", context, `Missing Parameter (query).`))
|
||||
|
|
|
@ -1,12 +1,11 @@
|
|||
const { maps, mapsSupplemental } = require('#api');
|
||||
const { PERMISSION_GROUPS } = require('#constants');
|
||||
|
||||
const { createEmbed } = require('#utils/embed')
|
||||
const { link, icon, iconAsEmojiObject, citation } = require('#utils/markdown');
|
||||
const { editOrReply } = require('#utils/message')
|
||||
const { STATICS, STATIC_ASSETS } = require('#utils/statics')
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
const { Components } = require('detritus-client/lib/utils');
|
||||
|
||||
function renderPlaceCard(context, place) {
|
||||
|
@ -91,7 +90,7 @@ module.exports = {
|
|||
usage: 'maps <query>',
|
||||
slashCommand: "maps"
|
||||
},
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.READ_MESSAGE_HISTORY, Permissions.READ_MESSAGE_HISTORY],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline],
|
||||
run: async (context, args) => {
|
||||
context.triggerTyping();
|
||||
if (!args.query) return editOrReply(context, createEmbed("warning", context, `Missing Parameter (query).`))
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
const { quora, quoraResult } = require('#api');
|
||||
const { paginator } = require('#client');
|
||||
const { PERMISSION_GROUPS } = require('#constants');
|
||||
|
||||
const { createEmbed, formatPaginationEmbeds, page } = require('#utils/embed')
|
||||
const { link, pill } = require('#utils/markdown')
|
||||
const { editOrReply } = require('#utils/message')
|
||||
const { STATICS, STATIC_ASSETS } = require('#utils/statics')
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions, InteractionCallbackTypes } = require("detritus-client/lib/constants");
|
||||
const { InteractionCallbackTypes } = require("detritus-client/lib/constants");
|
||||
const { Components } = require('detritus-client/lib/utils');
|
||||
|
||||
function createQuoraAnswerPage(context, question, answer) {
|
||||
|
@ -133,7 +133,7 @@ module.exports = {
|
|||
category: 'search',
|
||||
usage: 'quora <query>'
|
||||
},
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.READ_MESSAGE_HISTORY],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline],
|
||||
run: async (context, args) => {
|
||||
context.triggerTyping();
|
||||
if (!args.query) return editOrReply(context, createEmbed("warning", context, `Missing Parameter (query).`))
|
||||
|
|
|
@ -1,14 +1,12 @@
|
|||
const { reverseImageSearch } = require('#api');
|
||||
const { paginator } = require('#client');
|
||||
const { PERMISSION_GROUPS } = require('#constants');
|
||||
|
||||
const { getRecentImage } = require("#utils/attachment");
|
||||
const { createEmbed, formatPaginationEmbeds, page } = require('#utils/embed')
|
||||
const { editOrReply } = require('#utils/message')
|
||||
const { STATICS } = require('#utils/statics')
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
|
||||
// TODO: create a favicon() util
|
||||
function createReverseImageSearchResultPage(context, result, source) {
|
||||
let res = page(
|
||||
|
@ -43,7 +41,7 @@ module.exports = {
|
|||
usage: 'reverse <image>',
|
||||
slashCommand: "Reverse Image Search"
|
||||
},
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.READ_MESSAGE_HISTORY],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline],
|
||||
run: async (context) => {
|
||||
context.triggerTyping();
|
||||
try {
|
||||
|
|
|
@ -1,13 +1,11 @@
|
|||
const { rule34 } = require('#api');
|
||||
const { paginator } = require('#client');
|
||||
const { PERMISSION_GROUPS } = require('#constants');
|
||||
|
||||
const { createEmbed, formatPaginationEmbeds, page } = require('#utils/embed')
|
||||
const { pill } = require('#utils/markdown')
|
||||
const { editOrReply } = require('#utils/message')
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
|
||||
function createRule34Page(context, result) {
|
||||
let res = page(createEmbed("default", context, {
|
||||
description: '',
|
||||
|
@ -55,7 +53,7 @@ module.exports = {
|
|||
args: [
|
||||
{ name: 'site', default: 'rule34', type: 'string', help: `Site to search on \` ${Object.keys(SITES).join(', ')} \`` }
|
||||
],
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.READ_MESSAGE_HISTORY],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline],
|
||||
run: async (context, args) => {
|
||||
context.triggerTyping();
|
||||
|
||||
|
|
|
@ -1,14 +1,12 @@
|
|||
const { urbandictionary } = require('#api');
|
||||
const { paginator } = require('#client');
|
||||
const { PERMISSION_GROUPS } = require('#constants');
|
||||
|
||||
const { createEmbed, formatPaginationEmbeds, page } = require('#utils/embed')
|
||||
const { link, iconPill } = require('#utils/markdown')
|
||||
const { editOrReply } = require('#utils/message')
|
||||
const { STATICS } = require('#utils/statics')
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
|
||||
function createUrbanPage(context, result){
|
||||
let e = createEmbed("default", context, {
|
||||
description: `**${link(result.link, result.title)}**`,
|
||||
|
@ -48,7 +46,7 @@ module.exports = {
|
|||
usage: 'urbandictionary <query>',
|
||||
slashCommand: "urbandictionary"
|
||||
},
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.READ_MESSAGE_HISTORY],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline],
|
||||
run: async (context, args) => {
|
||||
context.triggerTyping();
|
||||
try{
|
||||
|
|
|
@ -1,13 +1,11 @@
|
|||
const { wikihow } = require('#api');
|
||||
const { paginator } = require('#client');
|
||||
const { PERMISSION_GROUPS } = require('#constants');
|
||||
|
||||
const { createEmbed, formatPaginationEmbeds, page } = require('#utils/embed')
|
||||
const { editOrReply } = require('#utils/message')
|
||||
const { STATICS } = require('#utils/statics')
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
|
||||
function createWikiHowPage(context, result){
|
||||
let e = createEmbed("default", context, {
|
||||
author: {
|
||||
|
@ -37,7 +35,7 @@ module.exports = {
|
|||
category: 'search',
|
||||
usage: 'wikihow <query>'
|
||||
},
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.READ_MESSAGE_HISTORY],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline],
|
||||
run: async (context, args) => {
|
||||
context.triggerTyping();
|
||||
try{
|
||||
|
|
|
@ -1,12 +1,10 @@
|
|||
const { paginator } = require('#client');
|
||||
const { PERMISSION_GROUPS } = require('#constants');
|
||||
|
||||
const { createEmbed, formatPaginationEmbeds, page } = require('#utils/embed')
|
||||
const { editOrReply } = require('#utils/message')
|
||||
const { STATICS } = require('#utils/statics')
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
|
||||
const superagent = require('superagent');
|
||||
|
||||
module.exports = {
|
||||
|
@ -20,7 +18,7 @@ module.exports = {
|
|||
category: 'search',
|
||||
usage: 'wikipedia <query>'
|
||||
},
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.READ_MESSAGE_HISTORY],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline],
|
||||
run: async (context, args) => {
|
||||
context.triggerTyping();
|
||||
try{
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
const { paginator } = require('#client');
|
||||
const { PERMISSION_GROUPS } = require('#constants');
|
||||
const { WolframQueryCompute } = require('#obelisk');
|
||||
|
||||
const { createEmbed, formatPaginationEmbeds, page } = require('#utils/embed')
|
||||
|
@ -6,9 +7,6 @@ const { citation, smallIconPill } = require('#utils/markdown');
|
|||
const { editOrReply } = require('#utils/message')
|
||||
const { STATICS } = require('#utils/statics')
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
|
||||
function createWolframPage(context, pod, query, sources) {
|
||||
let res = page(createEmbed("default", context, {
|
||||
author: {
|
||||
|
@ -52,7 +50,7 @@ module.exports = {
|
|||
usage: 'wolframalpha <query>',
|
||||
slashCommand: "wolframalpha"
|
||||
},
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.READ_MESSAGE_HISTORY],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline],
|
||||
run: async (context, args) => {
|
||||
context.triggerTyping();
|
||||
|
||||
|
|
|
@ -1,11 +1,9 @@
|
|||
const { paginator } = require('#client');
|
||||
const { PERMISSION_GROUPS } = require('#constants');
|
||||
|
||||
const { createEmbed, formatPaginationEmbeds, page } = require('#utils/embed')
|
||||
const { editOrReply } = require('#utils/message')
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
|
||||
const superagent = require('superagent')
|
||||
|
||||
// TODO: create a favicon() util
|
||||
|
@ -19,7 +17,7 @@ module.exports = {
|
|||
category: 'search',
|
||||
usage: 'xkcd <query>'
|
||||
},
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.READ_MESSAGE_HISTORY],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline],
|
||||
run: async (context, args) => {
|
||||
context.triggerTyping();
|
||||
if (!args.query) return editOrReply(context, createEmbed("warning", context, `Missing Parameter (query).`))
|
||||
|
|
|
@ -1,15 +1,12 @@
|
|||
const { youtube } = require('#api');
|
||||
const { paginator } = require('#client');
|
||||
const { YOUTUBE_CATEGORIES } = require('#constants');
|
||||
const { YOUTUBE_CATEGORIES, PERMISSION_GROUPS } = require('#constants');
|
||||
|
||||
const { createEmbed, formatPaginationEmbeds, page } = require('#utils/embed')
|
||||
const { link, iconPill, smallPill, timestamp } = require('#utils/markdown')
|
||||
const { editOrReply } = require('#utils/message')
|
||||
const { STATICS } = require('#utils/statics')
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
|
||||
// https://www.html-code-generator.com/javascript/shorten-long-numbers
|
||||
const intToString = num => {
|
||||
num = num.toString().replace(/[^0-9.]/g, '');
|
||||
|
@ -122,7 +119,7 @@ module.exports = {
|
|||
args: [
|
||||
{name: 'type', default: 'all', type: 'string', help: `Video Category`}
|
||||
],
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.READ_MESSAGE_HISTORY],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline],
|
||||
run: async (context, args) => {
|
||||
context.triggerTyping();
|
||||
if(!args.query) return editOrReply(context, createEmbed("warning", context, `Missing Parameter (query).`))
|
||||
|
|
|
@ -1,15 +1,12 @@
|
|||
const { dictionary } = require('#api');
|
||||
const { paginator } = require('#client');
|
||||
const { TRANSLATE_LANGUAGE_MAPPINGS, DICTIONARY_LANGUAGES } = require('#constants');
|
||||
const { TRANSLATE_LANGUAGE_MAPPINGS, DICTIONARY_LANGUAGES, PERMISSION_GROUPS } = require('#constants');
|
||||
|
||||
const { createEmbed, formatPaginationEmbeds, page } = require('#utils/embed')
|
||||
const { link, iconPill, smallPill, icon, iconLinkPill, pill } = require('#utils/markdown')
|
||||
const { editOrReply } = require('#utils/message')
|
||||
const { dictionaryGetCodeFromAny } = require('#utils/translate');
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
|
||||
const LABELS = {
|
||||
"offensive": `${iconPill("warning", "Offensive")}`
|
||||
}
|
||||
|
@ -65,7 +62,7 @@ module.exports = {
|
|||
args: [
|
||||
{name: 'lang', default: 'en', type: 'language', help: "Language to define in"},
|
||||
],
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.READ_MESSAGE_HISTORY],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline],
|
||||
run: async (context, args) => {
|
||||
context.triggerTyping();
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
const { emojipedia, emojiKitchen } = require("#api");
|
||||
const { EMOJIPEDIA_PLATFORM_TYPES, EMOJIPEDIA_PLATFORM_TYPE_ALIASES } = require("#constants");
|
||||
const { EMOJIPEDIA_PLATFORM_TYPES, EMOJIPEDIA_PLATFORM_TYPE_ALIASES, PERMISSION_GROUPS } = require("#constants");
|
||||
const { ingest } = require("#logging");
|
||||
|
||||
const { createEmbed } = require("#utils/embed");
|
||||
|
@ -9,8 +9,7 @@ const { STATICS, STATIC_ASSETS } = require("#utils/statics");
|
|||
|
||||
const { Utils } = require("detritus-client");
|
||||
const { Components, Snowflake } = require("detritus-client/lib/utils");
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions, InteractionCallbackTypes, DiscordRegexNames } = require("detritus-client/lib/constants");
|
||||
const { InteractionCallbackTypes, DiscordRegexNames } = require("detritus-client/lib/constants");
|
||||
const { bold } = require("detritus-client/lib/utils/markup");
|
||||
|
||||
const onlyEmoji = require('emoji-aware').onlyEmoji;
|
||||
|
@ -51,7 +50,7 @@ module.exports = {
|
|||
args: [
|
||||
{name: 'type', default: 'twitter', type: 'string', help: `Emoji platform type`}
|
||||
],
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.READ_MESSAGE_HISTORY, Permissions.USE_EXTERNAL_EMOJIS],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline],
|
||||
run: async (context, args) => {
|
||||
await context.triggerTyping()
|
||||
let msg = context.message;
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
const { emojipedia } = require("#api");
|
||||
const { PERMISSION_GROUPS } = require("#constants");
|
||||
|
||||
const { createEmbed } = require("#utils/embed");
|
||||
const { pill, smallIconPill } = require("#utils/markdown");
|
||||
const { editOrReply } = require("#utils/message");
|
||||
const { STATICS, STATIC_ASSETS } = require("#utils/statics");
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions, InteractionCallbackTypes, MessageComponentButtonStyles } = require("detritus-client/lib/constants");
|
||||
const { InteractionCallbackTypes, MessageComponentButtonStyles } = require("detritus-client/lib/constants");
|
||||
const { Components } = require("detritus-client/lib/utils");
|
||||
|
||||
const onlyEmoji = require('emoji-aware').onlyEmoji;
|
||||
|
@ -43,7 +43,7 @@ module.exports = {
|
|||
usage: 'emojipedia <emoji>',
|
||||
slashCommand: "emojipedia"
|
||||
},
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.READ_MESSAGE_HISTORY, Permissions.USE_EXTERNAL_EMOJIS],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline],
|
||||
run: async (context, args) => {
|
||||
await context.triggerTyping()
|
||||
let msg = context.message;
|
||||
|
|
|
@ -1,11 +1,10 @@
|
|||
const { REXTESTER_LANGUAGES, COLORS, REXTESTER_COMPILER_ARGS } = require("#constants");
|
||||
const { REXTESTER_LANGUAGES, COLORS, REXTESTER_COMPILER_ARGS, PERMISSION_GROUPS } = require("#constants");
|
||||
|
||||
const { createEmbed } = require("#utils/embed");
|
||||
const { codeblock, highlight } = require("#utils/markdown");
|
||||
const { editOrReply } = require("#utils/message");
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { DiscordRegexNames, Permissions } = require("detritus-client/lib/constants");
|
||||
const { DiscordRegexNames } = require("detritus-client/lib/constants");
|
||||
const { Utils } = require("detritus-client");
|
||||
|
||||
const superagent = require('superagent')
|
||||
|
@ -23,7 +22,7 @@ module.exports = {
|
|||
args: [
|
||||
{name: 'lang', default: 'node'}
|
||||
],
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.READ_MESSAGE_HISTORY],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline],
|
||||
run: async (context, args) => {
|
||||
context.triggerTyping();
|
||||
|
||||
|
|
|
@ -1,14 +1,11 @@
|
|||
const { paginator } = require("#client");
|
||||
const { COLORS } = require("#constants");
|
||||
const { COLORS, PERMISSION_GROUPS } = require("#constants");
|
||||
|
||||
const { createEmbed, page, formatPaginationEmbeds } = require("#utils/embed");
|
||||
const { codeblock, pill, smallIconPill } = require("#utils/markdown");
|
||||
const { editOrReply } = require("#utils/message");
|
||||
const { STATIC_ICONS } = require("#utils/statics");
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
|
||||
const superagent = require('superagent');
|
||||
|
||||
const TEX_REGEX = /(\$\$?.*?\$\$?)/g
|
||||
|
@ -24,7 +21,7 @@ module.exports = {
|
|||
category: 'utils',
|
||||
usage: 'latex <expression> [-i]'
|
||||
},
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.READ_MESSAGE_HISTORY, Permissions.USE_EXTERNAL_EMOJIS],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline],
|
||||
run: async (context, args) => {
|
||||
context.triggerTyping();
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
const { googleVisionOcr } = require("#api");
|
||||
const { PERMISSION_GROUPS } = require("#constants");
|
||||
|
||||
const { getRecentImage } = require("#utils/attachment");
|
||||
const { createEmbed } = require("#utils/embed");
|
||||
|
@ -6,9 +7,6 @@ const { codeblock, smallIconPill } = require("#utils/markdown");
|
|||
const { editOrReply } = require("#utils/message");
|
||||
const { STATICS } = require("#utils/statics");
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
|
||||
module.exports = {
|
||||
name: 'ocr',
|
||||
metadata: {
|
||||
|
@ -18,7 +16,7 @@ module.exports = {
|
|||
usage: 'ocr <attachment>',
|
||||
slashCommand: "OCR"
|
||||
},
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.READ_MESSAGE_HISTORY, Permissions.USE_EXTERNAL_EMOJIS],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline],
|
||||
run: async (context) => {
|
||||
context.triggerTyping();
|
||||
let image = await getRecentImage(context, 50)
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
const { googleVisionOcr, googleTranslate } = require("#api");
|
||||
const { TRANSLATE_LANGUAGES, TRANSLATE_DISPLAY_MAPPINGS } = require("#constants");
|
||||
const { TRANSLATE_LANGUAGES, TRANSLATE_DISPLAY_MAPPINGS, PERMISSION_GROUPS } = require("#constants");
|
||||
|
||||
const { getRecentImage } = require("#utils/attachment");
|
||||
const { createEmbed } = require("#utils/embed");
|
||||
|
@ -8,9 +8,6 @@ const { editOrReply } = require("#utils/message");
|
|||
const { STATICS } = require("#utils/statics");
|
||||
const { isSupported, getCodeFromAny } = require('#utils/translate');
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
|
||||
module.exports = {
|
||||
name: 'ocrtr',
|
||||
label: 'to',
|
||||
|
@ -26,7 +23,7 @@ module.exports = {
|
|||
args: [
|
||||
{name: 'from', default: 'auto', type: 'string', help: "Language to translate from"}
|
||||
],
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.READ_MESSAGE_HISTORY, Permissions.USE_EXTERNAL_EMOJIS],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline],
|
||||
run: async (context, args) => {
|
||||
context.triggerTyping();
|
||||
|
||||
|
|
|
@ -4,10 +4,8 @@ const { editOrReply } = require('#utils/message')
|
|||
const { codeblock, icon, smallIconPill } = require('#utils/markdown');
|
||||
const { STATICS } = require('#utils/statics');
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
|
||||
const superagent = require('superagent');
|
||||
const { PERMISSION_GROUPS } = require("#constants");
|
||||
|
||||
module.exports = {
|
||||
name: 'qr',
|
||||
|
@ -20,7 +18,7 @@ module.exports = {
|
|||
category: 'utils',
|
||||
usage: `qr <contents>`
|
||||
},
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.READ_MESSAGE_HISTORY, Permissions.ATTACH_FILES, Permissions.USE_EXTERNAL_EMOJIS],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline, ...PERMISSION_GROUPS.attachments],
|
||||
run: async (context, args) => {
|
||||
|
||||
// If we have an argument, generate code
|
||||
|
|
|
@ -1,11 +1,9 @@
|
|||
const { PERMISSION_GROUPS } = require("#constants");
|
||||
const { WebUtilsWebPageScreenshot} = require("#obelisk");
|
||||
|
||||
const { createEmbed } = require("#utils/embed");
|
||||
const { editOrReply } = require("#utils/message");
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
|
||||
module.exports = {
|
||||
label: "url",
|
||||
name: "screenshot",
|
||||
|
@ -18,7 +16,7 @@ module.exports = {
|
|||
usage: 'screenshot <url>',
|
||||
slashCommand: "screenshot"
|
||||
},
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.ATTACH_FILES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.READ_MESSAGE_HISTORY],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline, ...PERMISSION_GROUPS.attachments],
|
||||
run: async (context, args) => {
|
||||
if (!args.url) return editOrReply(context, createEmbed("warning", context, "No url supplied."))
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
const { googleTranslate } = require('#api');
|
||||
const { TRANSLATE_LANGUAGES, TRANSLATE_DISPLAY_MAPPINGS } = require('#constants');
|
||||
const { TRANSLATE_LANGUAGES, TRANSLATE_DISPLAY_MAPPINGS, PERMISSION_GROUPS } = require('#constants');
|
||||
|
||||
const { createEmbed } = require('#utils/embed')
|
||||
const { codeblock, icon, pill, stringwrap, smallIconPill } = require('#utils/markdown');
|
||||
|
@ -7,9 +7,6 @@ const { editOrReply } = require('#utils/message')
|
|||
const { STATICS } = require('#utils/statics');
|
||||
const { isSupported, getCodeFromAny } = require('#utils/translate');
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
|
||||
module.exports = {
|
||||
name: 'translate',
|
||||
label: 'text',
|
||||
|
@ -25,7 +22,7 @@ module.exports = {
|
|||
{name: 'to', default: 'en', type: 'language', help: "Target Language"},
|
||||
{name: 'from', default: 'auto', type: 'language', help: "Source Language"}
|
||||
],
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.READ_MESSAGE_HISTORY, Permissions.USE_EXTERNAL_EMOJIS],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline],
|
||||
run: async (context, args) => {
|
||||
await context.triggerTyping();
|
||||
|
||||
|
|
|
@ -1,14 +1,12 @@
|
|||
const { darksky } = require('#api');
|
||||
const { paginator } = require('#client');
|
||||
const { PERMISSION_GROUPS } = require('#constants');
|
||||
|
||||
const { createEmbed, page } = require('#utils/embed')
|
||||
const { pill, iconPill, smallPill, weatherIcon, timestamp, icon, link, stringwrap} = require('#utils/markdown');
|
||||
const { editOrReply } = require('#utils/message')
|
||||
const { STATICS } = require('#utils/statics');
|
||||
|
||||
// TODO: Turn this into a general purpose permissions constant
|
||||
const { Permissions } = require("detritus-client/lib/constants");
|
||||
|
||||
const modifiers = {
|
||||
"°C": (i)=>i,
|
||||
"°F": (i)=>(i*(9/5))+32,
|
||||
|
@ -114,7 +112,7 @@ module.exports = {
|
|||
args: [
|
||||
{name: 't', default: 'celcius', type: 'units', help: "Temperature Units to use."},
|
||||
],
|
||||
permissionsClient: [Permissions.EMBED_LINKS, Permissions.SEND_MESSAGES, Permissions.USE_EXTERNAL_EMOJIS, Permissions.READ_MESSAGE_HISTORY],
|
||||
permissionsClient: [...PERMISSION_GROUPS.baseline],
|
||||
run: async (context, args) => {
|
||||
context.triggerTyping();
|
||||
if(!args.query) return editOrReply(context, createEmbed("warning", context, `Missing Parameter (location).`))
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
const { Permissions } = require("detritus-client/lib/constants")
|
||||
|
||||
module.exports.DISCORD_INVITES = Object.freeze({
|
||||
support: "https://discord.gg/8c4p6xcjru",
|
||||
privacy: "https://discord.gg/sQs8FhcTGh",
|
||||
|
@ -38,6 +40,22 @@ module.exports.COLORS = Object.freeze({
|
|||
incognito: 10057726,
|
||||
})
|
||||
|
||||
// Permission requirements that apply to commands
|
||||
module.exports.PERMISSION_GROUPS = Object.freeze({
|
||||
// Baseline permission set for regular commands
|
||||
baseline: [Permissions.SEND_MESSAGES, Permissions.VIEW_CHANNEL, Permissions.USE_EXTERNAL_EMOJIS, Permissions.EMBED_LINKS, Permissions.READ_MESSAGE_HISTORY],
|
||||
// Baseline permission set for slash commands
|
||||
baseline_slash: [
|
||||
Permissions.SEND_MESSAGES, Permissions.EMBED_LINKS,
|
||||
// Related to using user commands
|
||||
Permissions.USE_APPLICATION_COMMANDS,
|
||||
1n << 50n // Use external apps
|
||||
],
|
||||
|
||||
// Permissions for all commands that use attachments
|
||||
attachments: [Permissions.ATTACH_FILES],
|
||||
})
|
||||
|
||||
module.exports.BADGE_ICONS = Object.freeze({
|
||||
"active_developer": "<:b:1263607989873414196>",
|
||||
"bot_developer": "<:b:1263605652337463489>",
|
||||
|
@ -1589,6 +1607,12 @@ module.exports.YOUTUBE_CATEGORIES = {
|
|||
|
||||
// Special character that allows for fully hidden masked links on all (supported) platforms.
|
||||
module.exports.HIDDEN_MASKED_LINK_CHARACTER = "󠄴";
|
||||
|
||||
// Allows force-displaying an incognito reason
|
||||
module.exports.INCOGNITO_REASONS = Object.freeze({
|
||||
permissions: 50013
|
||||
})
|
||||
|
||||
/**
|
||||
* These will force the command to become "incognito".
|
||||
*/
|
||||
|
@ -1601,7 +1625,7 @@ module.exports.MESSAGE_BLOCK_REASONS = Object.freeze({
|
|||
message: "the server's AutoMod setup",
|
||||
support_article: 4421269296535
|
||||
},
|
||||
// TODO: Handle permissions properly, this works as a "hack" for now.
|
||||
// TODO: Handle permissions properly, this works as a "hack" for now.e
|
||||
50013: {
|
||||
message: "the channel's permission setup",
|
||||
support_article: 10543994968087
|
||||
|
|
|
@ -1,18 +1,31 @@
|
|||
const { MessageFlags, InteractionCallbackTypes } = require("detritus-client/lib/constants")
|
||||
|
||||
const { Context } = require("detritus-client/lib/command")
|
||||
const { InteractionContext } = require("detritus-client/lib/interaction")
|
||||
const { InteractionContext } = require("detritus-client/lib/interaction");
|
||||
const { PERMISSION_GROUPS, INCOGNITO_REASONS } = require("#constants");
|
||||
|
||||
/**
|
||||
* Acknowledges a command or interaction.
|
||||
* @param { InteractionContext|Context } context Command/interaction context
|
||||
* @param { boolean } incognito Specifies if the interaction should run privately (only applicable for interactions)
|
||||
* @param { Array } permissions Array of permissions that are required to execute this command
|
||||
*/
|
||||
module.exports.acknowledge = async function(context, incognito = false){
|
||||
module.exports.acknowledge = async function(context, incognito = false, permissions = [...PERMISSION_GROUPS.baseline_slash]){
|
||||
// Interaction flow
|
||||
if(context.editOrRespond){
|
||||
if(!context._meta) context._meta = {};
|
||||
|
||||
// Handle permissions for user commands in a guild context
|
||||
if(context.member && permissions.length >= 1){
|
||||
for(const p of permissions){
|
||||
if(!context.member.can(p)){
|
||||
incognito = true;
|
||||
context._meta.incognitoReason = INCOGNITO_REASONS.permissions;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(incognito){
|
||||
if(!context._meta) context._meta = {};
|
||||
context._meta.isIncognito = true;
|
||||
return await context.respond({data: { flags: MessageFlags.EPHEMERAL }, type: InteractionCallbackTypes.DEFERRED_CHANNEL_MESSAGE_WITH_SOURCE});
|
||||
}
|
||||
|
|
|
@ -32,6 +32,21 @@ module.exports.editOrReply = function(context, message, disableReference = false
|
|||
});
|
||||
}
|
||||
|
||||
if(context._meta?.incognitoReason){
|
||||
// TODO: make this an applyIncognitoNotice helper
|
||||
if(message.content){
|
||||
if(message.embeds && message.embeds.length <= 4){
|
||||
message.embeds.unshift({
|
||||
description: `${icon("flask_incognito")} This response has been made incognito due to ${MESSAGE_BLOCK_REASONS[context._meta.incognitoReason].message}.`,
|
||||
color: COLORS.incognito
|
||||
})
|
||||
}
|
||||
} else {
|
||||
// Uses new subtext formatting to look more "native"
|
||||
message.content = `-# ${icon("flask_mini")} This response has been made incognito due to ${MESSAGE_BLOCK_REASONS[context._meta.incognitoReason].message} • ${link("https://support.discord.com/hc/en-us/articles/" + MESSAGE_BLOCK_REASONS[context._meta.incognitoReason].support_article, "Learn More", "Support Article")}`
|
||||
}
|
||||
}
|
||||
|
||||
return context.editOrRespond(message).catch(async (e)=>{
|
||||
const errorData = await e.response.json();
|
||||
if(MESSAGE_BLOCK_REASONS[errorData.code]){
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
"author": "bignutty",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"detritus-client": "^0.17.0-beta.40",
|
||||
"detritus-client": "^0.17.0-beta.59",
|
||||
"dotenv": "^16.4.5",
|
||||
"emoji-aware": "^3.1.0",
|
||||
"eventemitter3": "^4.0.7",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue