mirror of
https://gitlab.com/bignutty/labscore.git
synced 2025-06-08 22:23:03 -04:00
dictionary v2
This commit is contained in:
parent
1d9d84724c
commit
a139c9b406
3 changed files with 23 additions and 22 deletions
|
@ -7,37 +7,31 @@ const { dictionary } = require('../../../labscore/api');
|
||||||
|
|
||||||
const { Permissions } = require("detritus-client/lib/constants");
|
const { Permissions } = require("detritus-client/lib/constants");
|
||||||
|
|
||||||
function createDictionaryPage(context, result, word){
|
function createDictionaryPage(context, result, index){
|
||||||
let phon = ''
|
let phon = ''
|
||||||
if(result.phonetic) phon = `\n*${result.phonetic}*`
|
if(result.phonetic) phon = `\n*${result.phonetic}*`
|
||||||
|
|
||||||
let e = createEmbed("default", context, {
|
let e = createEmbed("default", context, {
|
||||||
description: `${icon("definition")} **${link(`https://en.wiktionary.org/wiki/${encodeURIComponent(word.word)}`, word.word, "Definition on Wiktionary")}**`,
|
description: `${icon("definition")} **${link(`https://en.wiktionary.org/wiki/${encodeURIComponent(result.word)}`, result.word, "Definition on Wiktionary")}**`,
|
||||||
fields: []
|
fields: []
|
||||||
})
|
})
|
||||||
|
|
||||||
if(word.phonetics) e.description += smallPill(word.phonetics)
|
if(result.phonetic) e.description += smallPill(result.phonetic)
|
||||||
|
|
||||||
let def = word.definitions[result]
|
let word = result.entries[index]
|
||||||
|
let defItms = []
|
||||||
|
|
||||||
let ref = 1;
|
let i = 1;
|
||||||
let defDesc = []
|
for(const def of word.definitions){
|
||||||
|
let entry = `${i}. ${def.definition}\n - *${def.example}*`
|
||||||
for(const d of def){
|
if(def.synonyms) entry += `\n${icon("empty")}${def.synonyms.splice(0, 5).map((s)=>smallPill(s)).join(' ')}`
|
||||||
let defItms = [`**${ref}.** `]
|
defItms.push(entry)
|
||||||
defItms.push(d.definition, citation(ref, d.src))
|
i++
|
||||||
if(d.examples) defItms.push(`\n ${icon("message")} *${d.examples.join(`*\n ${icon("message")} *`)}*`)
|
|
||||||
// Synonyms are limited to 5 to prevent overflow
|
|
||||||
if(d.synonyms) defItms.push(`\n ${iconPill("definition", "Synonyms")} ${d.synonyms.splice(0, 5).map((s)=>smallPill(s)).join(' ')}`)
|
|
||||||
|
|
||||||
ref++;
|
|
||||||
if([...defDesc, defItms.join(' ')].join('\n\n').length >= 1024) continue;
|
|
||||||
defDesc.push(defItms.join(''))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
e.fields.push({
|
e.fields.push({
|
||||||
name: result,
|
name: word.type,
|
||||||
value: defDesc.join('\n\n')
|
value: defItms.join('\n')
|
||||||
})
|
})
|
||||||
|
|
||||||
let res = {"embeds": [e]}
|
let res = {"embeds": [e]}
|
||||||
|
@ -65,8 +59,11 @@ module.exports = {
|
||||||
if(search.body.status == 1) return editOrReply(context, createEmbed("warning", context, search.body.message))
|
if(search.body.status == 1) return editOrReply(context, createEmbed("warning", context, search.body.message))
|
||||||
|
|
||||||
let pages = []
|
let pages = []
|
||||||
for(const res of Object.keys(search.body.result.definitions)){
|
|
||||||
pages.push(createDictionaryPage(context, res, search.body.result))
|
let i = 0;
|
||||||
|
for(const d of search.body.results[0].entries){
|
||||||
|
pages.push(createDictionaryPage(context, search.body.results[0], i))
|
||||||
|
i++;
|
||||||
}
|
}
|
||||||
|
|
||||||
pages = formatPaginationEmbeds(pages)
|
pages = formatPaginationEmbeds(pages)
|
||||||
|
@ -75,6 +72,7 @@ module.exports = {
|
||||||
pages
|
pages
|
||||||
});
|
});
|
||||||
}catch(e){
|
}catch(e){
|
||||||
|
console.log(e)
|
||||||
if(e.response?.body?.status && e.response.body.status == 2) return editOrReply(context, {embeds:[createEmbed("warning", context, e.response.body.message)]})
|
if(e.response?.body?.status && e.response.body.status == 2) return editOrReply(context, {embeds:[createEmbed("warning", context, e.response.body.message)]})
|
||||||
return editOrReply(context, {embeds:[createEmbed("error", context, `Unable to perform dictionary lookup.`)]})
|
return editOrReply(context, {embeds:[createEmbed("error", context, `Unable to perform dictionary lookup.`)]})
|
||||||
}
|
}
|
||||||
|
|
|
@ -49,7 +49,7 @@ const Api = Object.freeze({
|
||||||
TTS_SAPI4: '/tts/sapi4',
|
TTS_SAPI4: '/tts/sapi4',
|
||||||
TTS_TIKTOK: '/tts/tiktok',
|
TTS_TIKTOK: '/tts/tiktok',
|
||||||
|
|
||||||
UTILS_DICTIONARY: '/utils/dictionary',
|
UTILS_DICTIONARY: '/utils/dictionary-v2',
|
||||||
UTILS_EMOJIPEDIA: '/utils/emojipedia',
|
UTILS_EMOJIPEDIA: '/utils/emojipedia',
|
||||||
UTILS_GARFIELD: '/utils/garfield',
|
UTILS_GARFIELD: '/utils/garfield',
|
||||||
UTILS_INFERKIT: '/utils/inferkit',
|
UTILS_INFERKIT: '/utils/inferkit',
|
||||||
|
|
|
@ -179,6 +179,9 @@ module.exports.REDESIGN_ICONS = Object.freeze({
|
||||||
"information": "<:ico_information:1139704769179562064>",
|
"information": "<:ico_information:1139704769179562064>",
|
||||||
"question": "<:ico_question:1139704770760806502>",
|
"question": "<:ico_question:1139704770760806502>",
|
||||||
|
|
||||||
|
// Internal Icons
|
||||||
|
"empty": "<:e:749601069298090034>",
|
||||||
|
|
||||||
// Legacy Icon Compat
|
// Legacy Icon Compat
|
||||||
"success_simple": "<:lc_success:699608002910617670>",
|
"success_simple": "<:lc_success:699608002910617670>",
|
||||||
"failiure_simple": "<:lc_denied:688071041787887647>",
|
"failiure_simple": "<:lc_denied:688071041787887647>",
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue