major cleanup

This commit is contained in:
derpystuff 2023-11-04 17:29:06 +01:00
parent ddd918470e
commit a8cf49e31e
60 changed files with 537 additions and 619 deletions

View file

@ -1,4 +1,4 @@
const { createEmbed, formatPaginationEmbeds } = require('../../../labscore/utils/embed')
const { createEmbed, formatPaginationEmbeds, page } = require('../../../labscore/utils/embed')
const { pill } = require('../../../labscore/utils/markdown')
const { editOrReply } = require('../../../labscore/utils/message')
@ -7,26 +7,22 @@ const { rule34 } = require('../../../labscore/api');
const { Permissions } = require("detritus-client/lib/constants");
function createRule34Page(context, result){
let res = {
"embeds": [
createEmbed("default", context, {
description: '',
image: {
url: result.fileUrl
},
footer: {
text: `Rating: ${result.rating}`
}
})
]
}
function createRule34Page(context, result) {
let res = page(createEmbed("default", context, {
description: '',
image: {
url: result.fileUrl
},
footer: {
text: `Rating: ${result.rating}`
}
}))
// Render a few tags
if(result.tags) {
if (result.tags) {
let tags = result.tags.splice(0, 5)
let tagDisplay = ''
for(const t of tags) tagDisplay += pill(t)
for (const t of tags) tagDisplay += pill(t)
res.embeds[0].description += `\n${tagDisplay}`
}
@ -56,39 +52,38 @@ module.exports = {
usage: 'rule34 <query> [-site <service>]'
},
args: [
{name: 'site', default: 'rule34', type: 'string', help: `Site to search on \` ${Object.keys(SITES).join(', ')} \``}
{ 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],
run: async (context, args) => {
context.triggerTyping();
// very important, maybe make this a command option eventually
if(!context.channel.nsfw){
return editOrReply(context, {embeds:[createEmbed("nsfw", context)]})
if (!context.channel.nsfw) {
return editOrReply(context, createEmbed("nsfw", context))
}
if(!args.query) return editOrReply(context, {embeds:[createEmbed("warning", context, `Missing Parameter (query).`)]})
if(!Object.keys(SITES).includes(args.site.toLowerCase())) return editOrReply(context, {embeds:[createEmbed("warning", context, `Invalid site type.`)]})
try{
if (!args.query) return editOrReply(context, createEmbed("warning", context, `Missing Parameter (query).`))
if (!Object.keys(SITES).includes(args.site.toLowerCase())) return editOrReply(context, createEmbed("warning", context, `Invalid site type.`))
try {
let search = await rule34(context, args.query, args.site.toLowerCase())
search = search.response
if(search.body.status == 2) return editOrReply(context, {embeds:[createEmbed("error", context, search.body.message )]})
if(search.body.data.length == 0) return editOrReply(context, {embeds:[createEmbed("warning", context, `No results found on ${SITES[args.site.toLowerCase()]}.`)]})
if (search.body.status == 2) return editOrReply(context, createEmbed("error", context, search.body.message))
if (search.body.data.length == 0) return editOrReply(context, createEmbed("warning", context, `No results found on ${SITES[args.site.toLowerCase()]}.`))
let pages = []
for(const res of search.body.data){
for (const res of search.body.data) {
pages.push(createRule34Page(context, res))
}
pages = formatPaginationEmbeds(pages)
const paging = await paginator.createPaginator({
await paginator.createPaginator({
context,
pages
pages: formatPaginationEmbeds(pages)
});
}catch(e){
} catch (e) {
console.log(e)
return editOrReply(context, {embeds:[createEmbed("error", context, `Unable to perform rule34 search.`)]})
return editOrReply(context, createEmbed("error", context, `Unable to perform rule34 search.`))
}
},
};