const express = require('express'); const axios = require('axios'); const app = express(); const WEBHOOK = process.env.WHOOK; let lastSnap = '', lastMinute = -1, lastSent = ''; const seedOrder = [ 'Carrot', 'Strawberry', 'Blueberry', 'Orange Tulip', 'Tomato', 'Corn', 'Daffodil', 'Watermelon', 'Pumpkin', 'Apple', 'Bamboo', 'Coconut', 'Cactus', 'Dragon Fruit', 'Mango', 'Grape', 'Mushroom', 'Pepper', 'Cacao', 'Beanstalk', 'Ember Lily', 'Sugar Apple' ]; const gearOrder = [ 'Watering Can', 'Trowel', 'Recall Wrench', 'Basic Sprinkler', 'Advanced Sprinkler', 'Godly Sprinkler', 'Lightning Rod', 'Master Sprinkler', 'Cleaning Spray', 'Favorite Tool', 'Harvest Tool', 'Friendship Pot' ]; const sortList = (arr, order) => arr .filter(i => i?.value) .sort((a, b) => order.indexOf(a.name) - order.indexOf(b.name)) .map(i => `${i.name} **x${i.value}**`); const build = (seeds, gears, eggs) => { const snap = JSON.stringify([seeds, gears, eggs]); if (snap === lastSnap) return; lastSnap = snap; const desc = [ `**SEEDS STOCK**`, ...seeds, '', `**GEAR STOCK**`, ...gears, '', eggs.length ? `**EGG STOCK**\n${eggs.map(e => `${e.name} **x${e.value}**`).join('\n')}` : '' ].join('\n'); const pingItems = ['Godly Sprinkler', 'Cactus', 'Lightning Rod', 'Master Sprinkler', 'Beanstalk', 'Ember Lily', 'Sugar Apple', 'Legendary Egg', 'Mythical Egg', 'Bug Egg']; const ping = pingItems.some(item => desc.includes(item)); return { content: ping ? '@everyone' : undefined, embeds: [{ description: desc.trim(), color: 0x5865F2, timestamp: new Date().toISOString() }] }; }; setInterval(() => { const now = new Date(), m = now.getMinutes(); if (m % 5 !== 0 || m === lastMinute) return; lastMinute = m; setTimeout(async () => { try { const { data } = await axios.get('https://fast72-stock.hf.space/'); if (!data?.seeds || !data?.gears) return; const seeds = sortList(data.seeds, seedOrder); const gears = sortList(data.gears, gearOrder); const eggs = data.eggs?.filter(e => e?.value) || []; const payload = build(seeds, gears, eggs); if (!payload) return; await axios.post(WEBHOOK, payload); const time = new Date().toLocaleString('en-US', { timeZone: 'Asia/Jakarta' }); lastSent = new Date(time).toLocaleTimeString('id-ID', { hour12: false }); } catch (e) { console.error('[ERROR]', e.message); } }, 5000); }, 3000); app.get('/', (_, res) => res.send(`Sent at ${lastSent || '-'}`)); app.listen(7860);