test
This commit is contained in:
parent
9895d039e8
commit
abc5b3890f
@ -5,6 +5,8 @@ const path = require('node:path');
|
||||
const PINBOARD_SELECT_CUSTOM_ID = 'pinboard-image-select';
|
||||
const selectedImageIndexByMessage = new Map();
|
||||
const preloadedImagesByUrl = new Map();
|
||||
const warmedMessageIds = new Set();
|
||||
const warmingMessageIds = new Set();
|
||||
let lastKnownStatus = null;
|
||||
|
||||
const getCacheBustValue = () => {
|
||||
@ -152,6 +154,59 @@ const preloadPinboardImages = async (items) => {
|
||||
}
|
||||
};
|
||||
|
||||
const waitMs = async (delayMs) => new Promise(resolve => {
|
||||
setTimeout(resolve, delayMs);
|
||||
});
|
||||
|
||||
const visualWarmupEnabled = () => process.env.PINBOARD_VISUAL_WARMUP_ENABLED === 'true';
|
||||
|
||||
const getVisualWarmupDelayMs = () => {
|
||||
const raw = Number.parseInt(process.env.PINBOARD_VISUAL_WARMUP_DELAY_MS || '350', 10);
|
||||
if (Number.isNaN(raw) || raw < 150) {
|
||||
return 350;
|
||||
}
|
||||
return raw;
|
||||
};
|
||||
|
||||
const runVisualWarmup = async (message, status, pinboardItems, initialIndex) => {
|
||||
if (!visualWarmupEnabled()) return;
|
||||
if (!message || !message.id) return;
|
||||
if (pinboardItems.length <= 1) return;
|
||||
if (warmedMessageIds.has(message.id) || warmingMessageIds.has(message.id)) return;
|
||||
|
||||
warmingMessageIds.add(message.id);
|
||||
|
||||
try {
|
||||
const delayMs = getVisualWarmupDelayMs();
|
||||
|
||||
for (let index = 0; index < pinboardItems.length; index += 1) {
|
||||
selectedImageIndexByMessage.set(message.id, index);
|
||||
const payload = buildPanelPayload(status, message.id, pinboardItems, {
|
||||
useAttachmentForSelected: false,
|
||||
disableCacheBustForSelected: true,
|
||||
includeFiles: false
|
||||
});
|
||||
await message.edit(payload);
|
||||
await waitMs(delayMs);
|
||||
}
|
||||
|
||||
selectedImageIndexByMessage.set(message.id, initialIndex);
|
||||
const restoredPayload = buildPanelPayload(status, message.id, pinboardItems, {
|
||||
useAttachmentForSelected: false,
|
||||
disableCacheBustForSelected: true,
|
||||
includeFiles: false
|
||||
});
|
||||
await message.edit(restoredPayload);
|
||||
|
||||
warmedMessageIds.add(message.id);
|
||||
console.log(`🔥 Warm-up visuel termine pour message ${message.id}`);
|
||||
} catch (error) {
|
||||
console.log(`⚠️ Warm-up visuel annule (${message.id}): ${error.message}`);
|
||||
} finally {
|
||||
warmingMessageIds.delete(message.id);
|
||||
}
|
||||
};
|
||||
|
||||
const buildSelectedImageEmbed = (item, imageReference, options = {}) => {
|
||||
const useAttachment = options.useAttachment !== false;
|
||||
const disableCacheBust = options.disableCacheBust === true;
|
||||
@ -306,6 +361,10 @@ const update = async (client) => {
|
||||
|
||||
await message.edit(payload);
|
||||
|
||||
const initialIndex = clampIndex(selectedImageIndexByMessage.get(message.id) ?? 0, pinboardItems.length);
|
||||
runVisualWarmup(message, status, pinboardItems, initialIndex)
|
||||
.catch(error => console.log(`⚠️ Warm-up visuel en erreur: ${error.message}`));
|
||||
|
||||
console.log(`📊 Panneau Minecraft mis a jour (${status.playersOnline}/${status.playersMax})`);
|
||||
} catch (error) {
|
||||
console.log(`❌ Erreur displayer: ${error.message}`);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user