fast72 commited on
Commit
a44de77
·
verified ·
1 Parent(s): 9660a60

Update server.js

Browse files
Files changed (1) hide show
  1. server.js +30 -31
server.js CHANGED
@@ -1,62 +1,61 @@
1
-
2
  const express = require('express');
3
  const axios = require('axios');
4
 
5
  const app = express();
6
  const WEBHOOK = process.env.WHOOK;
 
7
  let lastMinute = -1, lastSnap = '';
8
 
9
  const list = (obj) =>
10
  Object.entries(obj || {})
11
  .filter(([, v]) => +v)
12
  .sort()
13
- .map(([k, v]) => `${v}x : ${k}`);
14
 
15
  const build = (d) => {
 
 
16
  const eggs = (d.eggs || []).filter(e => e.quantity)
17
  .sort((a, b) => a.name.localeCompare(b.name))
18
- .map(e => `${e.quantity}x : ${e.name}`);
19
 
20
- const snap = JSON.stringify([d.seeds, d.gear, d.honeyevent, d.cosmetic, eggs]);
21
  if (snap === lastSnap) return;
22
  lastSnap = snap;
23
 
 
 
 
 
 
 
 
 
 
 
24
  return {
25
- title: 'Grow a Garden Stock',
26
- timestamp: new Date().toISOString(),
27
- color: 0x5865F2,
28
- fields: [
29
- ['Seeds', list(d.seeds)],
30
- ['Gears', list(d.gear)],
31
- ['Honey Events', list(d.honeyevent)],
32
- ['Cosmetics', list(d.cosmetic)],
33
- ['Eggs', eggs]
34
- ].map(([t, arr]) => ({
35
- name: `**— ${t}**`,
36
- value: arr.length ? arr.join('\n') : 'None'
37
- }))
38
  };
39
  };
40
 
41
  setInterval(async () => {
42
- const now = new Date(), min = now.getMinutes();
43
- if (min % 5 !== 0 || min === lastMinute) return;
44
 
45
  try {
46
  const { data } = await axios.get('https://www.gamersberg.com/api/grow-a-garden/stock');
47
  const d = data?.data?.[0];
48
  if (!data.success || !d) return;
49
 
50
- const embed = build(d);
51
- if (!embed) return;
52
-
53
- await axios.post(WEBHOOK, { embeds: [embed] });
54
- lastMinute = min;
55
- console.log('Sent:', now.toLocaleTimeString());
56
- } catch (e) {
57
- console.error(e.message);
58
- }
59
- }, 2500);
60
 
61
- app.get('/', (_, res) => res.send('🌱 Stock bot running'));
62
- app.listen(7860, () => console.log('🚀 Running on port 7860'));
 
 
 
 
1
  const express = require('express');
2
  const axios = require('axios');
3
 
4
  const app = express();
5
  const WEBHOOK = process.env.WHOOK;
6
+
7
  let lastMinute = -1, lastSnap = '';
8
 
9
  const list = (obj) =>
10
  Object.entries(obj || {})
11
  .filter(([, v]) => +v)
12
  .sort()
13
+ .map(([k, v]) => `${k} **x${v}**`);
14
 
15
  const build = (d) => {
16
+ const seeds = list(d.seeds);
17
+ const gears = list(d.gear);
18
  const eggs = (d.eggs || []).filter(e => e.quantity)
19
  .sort((a, b) => a.name.localeCompare(b.name))
20
+ .map(e => `${e.name} x${e.quantity}`);
21
 
22
+ const snap = JSON.stringify([seeds, gears, eggs]);
23
  if (snap === lastSnap) return;
24
  lastSnap = snap;
25
 
26
+ const desc = [
27
+ `**SEEDS STOCK**`,
28
+ ...seeds,
29
+ '',
30
+ `**GEAR STOCK**`,
31
+ ...gears,
32
+ '',
33
+ eggs.length ? `**EGG STOCK**\n${eggs.join('\n')}` : ''
34
+ ].join('\n');
35
+
36
  return {
37
+ embeds: [{
38
+ title: 'Grow a Garden Stocks',
39
+ description: desc.trim(),
40
+ color: 0x5865F2,
41
+ timestamp: new Date().toISOString()
42
+ }]
 
 
 
 
 
 
 
43
  };
44
  };
45
 
46
  setInterval(async () => {
47
+ const now = new Date(), m = now.getMinutes();
48
+ if (m % 5 !== 0 || m === lastMinute) return;
49
 
50
  try {
51
  const { data } = await axios.get('https://www.gamersberg.com/api/grow-a-garden/stock');
52
  const d = data?.data?.[0];
53
  if (!data.success || !d) return;
54
 
55
+ const payload = build(d);
56
+ if (!payload) return;
 
 
 
 
 
 
 
 
57
 
58
+ await axios.post(WEBHOOK, payload);
59
+ lastMinute = m;
60
+ console.log('Sent at', now.toLocaleTimeString());
61
+ } catch (