This commit is contained in:
Louis Mazin 2026-04-16 17:56:15 +02:00
parent d23d49d7c3
commit 724287dc13

View File

@ -10,8 +10,8 @@ const PINBOARD_SPACER_LEFT_CUSTOM_ID = 'pinboard-image-spacer-left';
const PINBOARD_SPACER_RIGHT_CUSTOM_ID = 'pinboard-image-spacer-right';
const selectedImageIndexByMessage = new Map();
const preloadedImagesByUrl = new Map();
const warmedMessageIds = new Set();
const warmingMessageIds = new Set();
const warmupRefreshKeyByMessage = new Map();
let lastKnownStatus = null;
let imageRefreshKey = Date.now();
@ -179,7 +179,7 @@ const waitMs = async (delayMs) => new Promise(resolve => {
setTimeout(resolve, delayMs);
});
const visualWarmupEnabled = () => process.env.PINBOARD_VISUAL_WARMUP_ENABLED === 'true';
const visualWarmupEnabled = () => process.env.PINBOARD_VISUAL_WARMUP_ENABLED !== 'false';
const getVisualWarmupDelayMs = () => {
const raw = Number.parseInt(process.env.PINBOARD_VISUAL_WARMUP_DELAY_MS || '350', 10);
@ -189,11 +189,12 @@ const getVisualWarmupDelayMs = () => {
return raw;
};
const runVisualWarmup = async (message, status, pinboardItems, initialIndex) => {
const runVisualWarmup = async (message, status, pinboardItems, initialIndex, refreshKey) => {
if (!visualWarmupEnabled()) return;
if (!message || !message.id) return;
if (pinboardItems.length <= 1) return;
if (warmedMessageIds.has(message.id) || warmingMessageIds.has(message.id)) return;
if (warmingMessageIds.has(message.id)) return;
if (warmupRefreshKeyByMessage.get(message.id) === refreshKey) return;
warmingMessageIds.add(message.id);
@ -206,7 +207,7 @@ const runVisualWarmup = async (message, status, pinboardItems, initialIndex) =>
useAttachmentForSelected: false,
disableCacheBustForSelected: true,
includeFiles: false,
refreshKey: imageRefreshKey
refreshKey
});
await message.edit(payload);
await waitMs(delayMs);
@ -217,11 +218,11 @@ const runVisualWarmup = async (message, status, pinboardItems, initialIndex) =>
useAttachmentForSelected: false,
disableCacheBustForSelected: true,
includeFiles: false,
refreshKey: imageRefreshKey
refreshKey
});
await message.edit(restoredPayload);
warmedMessageIds.add(message.id);
warmupRefreshKeyByMessage.set(message.id, refreshKey);
console.log(`🔥 Warm-up visuel termine pour message ${message.id}`);
} catch (error) {
console.log(`⚠️ Warm-up visuel annule (${message.id}): ${error.message}`);
@ -415,7 +416,7 @@ const update = async (client) => {
await message.edit(payload);
const initialIndex = clampIndex(selectedImageIndexByMessage.get(message.id) ?? 0, pinboardItems.length);
runVisualWarmup(message, status, pinboardItems, initialIndex)
runVisualWarmup(message, status, pinboardItems, initialIndex, imageRefreshKey)
.catch(error => console.log(`⚠️ Warm-up visuel en erreur: ${error.message}`));
console.log(`📊 Panneau Minecraft mis a jour (${status.playersOnline}/${status.playersMax})`);