From 256f5d054ccab3542f04808d2c1aea91f044fb3e Mon Sep 17 00:00:00 2001 From: bignutty <3515180-bignutty@users.noreply.gitlab.com> Date: Fri, 3 Jan 2025 22:36:42 +0100 Subject: [PATCH] add date to anime listings --- commands/message/search/anime.js | 55 ++++++++++++++++++++++++++++++-- 1 file changed, 53 insertions(+), 2 deletions(-) diff --git a/commands/message/search/anime.js b/commands/message/search/anime.js index 41bf16e..cd191a2 100644 --- a/commands/message/search/anime.js +++ b/commands/message/search/anime.js @@ -17,6 +17,14 @@ function renderAnimeResultsPage(context, res){ fields: [] }) + // Add Metadata to Title + if(res.dates){ + if(res.dates.start){ + if(res.dates.end && new Date(res.dates.start).getFullYear() !== new Date(res.dates.end).getFullYear()) result.author.name += ` (${new Date(res.dates.start).getFullYear()} - ${new Date(res.dates.end).getFullYear()})` + else result.author.name += ` (${new Date(res.dates.start).getFullYear()})` + } + } + // Render Description if(res.subtitle) result.description += `-# ${res.subtitle}\n\n`; if(res.subtype) result.description += pill(OMNI_ANIME_FORMAT_TYPES[res.subtype]) + " " @@ -48,7 +56,9 @@ function renderAnimeResultsPage(context, res){ }) } - return page(result); + return page(result, {}, { + episodes_key: res.supplemental.episodes + }); } module.exports = { @@ -86,7 +96,48 @@ module.exports = { await paginator.createPaginator({ context, - pages: formatPaginationEmbeds(pages) + pages: formatPaginationEmbeds(pages), + interactive: { + episodes_button: { + // Button Label + label: "Episodes", + // Next to pagination or new row + inline: false, + visible: true, + condition: (page)=>{ + return (page.getState("episodes_key") !== null) + }, + // Will resolve all conditions at paginator creation time + precompute_conditions: true, + resolvePage: (page)=>{ + // If an interactive button for this index hasn't been + // resolved yet, run this code + page.getState("episodes_key"); // -> supplemental key + + /* Resolve supplemental key via api */ + + return [...cards]; + } + }, + characters_button: { + // Button Label + label: "Characters", + // Next to pagination or new row + inline: false, + condition: (page)=>{ + return (page.getState("characters_key") !== null) + }, + resolvePage: (page)=>{ + // If an interactive button for this index hasn't been + // resolved yet, run this code + page.getState("characters_key"); // -> supplemental key + + /* Resolve supplemental key via api */ + + return [...cards]; + } + } + } }); }catch(e){ if(e.response?.body?.status == 1) return editOrReply(context, createEmbed("warning", context, e.response?.body?.message))