[nextgen] implement timeout

This commit is contained in:
bignutty 2025-02-11 22:05:38 +01:00
parent c2630da9e2
commit 4e62cecf0f
2 changed files with 65 additions and 30 deletions

View file

@ -7,6 +7,8 @@ const { acknowledge } = require('#utils/interactions');
const { smallPill, link, pill, stringwrap, stringwrapPreserveWords} = require('#utils/markdown');
const { editOrReply } = require('#utils/message');
const DynamicCardStack = require("../../../labscore/cardstack/DynamicCardStack");
function renderAnimeResultsPage(context, res){
let result = createEmbed("default", context, {
author: {
@ -57,7 +59,8 @@ function renderAnimeResultsPage(context, res){
}
return page(result, {}, {
episodes_key: res.supplemental.episodes
episodes_key: res.supplemental.episodes,
name: res.title
});
}
@ -94,9 +97,8 @@ module.exports = {
if(!pages.length) return editOrReply(context, createEmbed("warning", context, `No results found.`))
await paginator.createPaginator({
context,
pages: formatPaginationEmbeds(pages),
new DynamicCardStack(context, {
cards: formatPaginationEmbeds(pages),
interactive: {
episodes_button: {
// Button Label
@ -107,16 +109,36 @@ module.exports = {
condition: (page)=>{
return (page.getState("episodes_key") !== null)
},
renderLoadingState: (pg) => {
return createEmbed("default", context, {
description: `-# ${pg.getState("name")} > **Episodes**`,
image: {
url: `https://bignutty.gitlab.io/webstorage4/v2/assets/loading/04_chat_loading.1zn1ocfb72tc.gif`
}
})
},
// Will resolve all conditions at paginator creation time
precompute_conditions: true,
resolvePage: (page)=>{
resolvePage: (pg)=>{
// If an interactive button for this index hasn't been
// resolved yet, run this code
page.getState("episodes_key"); // -> supplemental key
pg.getState("episodes_key"); // -> supplemental key
/* Resolve supplemental key via api */
console.log("get episodes for " + pg.getState("episodes_key"))
return [...cards];
let i = 0;
return [
createEmbed("default", context, {
description: `-# ${pg.getState("name")} > **Episodes**\n\nepisode page ${i++}`,
}),
createEmbed("default", context, {
description: `-# ${pg.getState("name")} > **Episodes**\n\nepisode page ${i++}`,
}),
createEmbed("default", context, {
description: `-# ${pg.getState("name")} > **Episodes**\n\nepisode page ${i++}`,
})
].map((p)=>page(p));
}
},
characters_button: {