fast72 commited on
Commit
e2cc95e
·
verified ·
1 Parent(s): 5256dc6

Update server.js

Browse files
Files changed (1) hide show
  1. server.js +15 -31
server.js CHANGED
@@ -18,33 +18,21 @@ const gearOrder = [
18
  'Favorite Tool', 'Harvest Tool', 'Friendship Pot'
19
  ];
20
 
21
- const fetchStock = async (type) => {
22
- const url = `https://www.growagardenvalues.com/stock/refresh_stock.php?type=${type}`;
23
- const { data } = await axios.get(url);
24
- return (data?.data?.records || []).reduce((obj, item) => {
25
- const name = item?.Data?.Name;
26
- const amount = +item?.Amount;
27
- if (name && amount) obj[name] = amount;
28
- return obj;
29
- }, {});
30
- };
31
-
32
- const fetchEggs = async () => {
33
- const { data } = await axios.get('https://www.growagardenvalues.com/stock/refresh_stock.php?type=eggs');
34
- return (data?.data?.records || [])
35
- .filter(e => +e.Amount)
36
- .map(e => `${e.Data?.Name} **x${e.Amount}**`);
37
- };
38
-
39
  const list = (obj, order = []) =>
40
  Object.entries(obj || {})
 
41
  .sort((a, b) => {
42
  const i = order.indexOf(a[0]), j = order.indexOf(b[0]);
43
  return (i === -1 ? 999 : i) - (j === -1 ? 999 : j);
44
  })
45
  .map(([k, v]) => `${k} **x${v}**`);
46
 
47
- const build = (seeds, gears, eggs) => {
 
 
 
 
 
48
  const snap = JSON.stringify([seeds, gears, eggs]);
49
  if (snap === lastSnap) return;
50
  lastSnap = snap;
@@ -59,11 +47,11 @@ const build = (seeds, gears, eggs) => {
59
  eggs.length ? `**EGG STOCK**\n${eggs.join('\n')}` : ''
60
  ].join('\n');
61
 
62
- const alert = ['Godly Sprinkler', 'Master Sprinkler', 'Beanstalk', 'Ember Lily', 'Sugar Apple', 'Legendary Egg', 'Mythical Egg', 'Bug Egg'];
63
- const ping = alert.some(word => desc.includes(word));
64
 
65
  return {
66
- content: ping ? '@everyone' : undefined,
67
  embeds: [{
68
  description: desc.trim(),
69
  color: 0x5865F2,
@@ -77,15 +65,11 @@ setInterval(async () => {
77
  if (m % 5 !== 0 || m === lastMinute) return;
78
 
79
  try {
80
- const [seedsRaw, gearsRaw, eggs] = await Promise.all([
81
- fetchStock('seeds'),
82
- fetchStock('gears'),
83
- fetchEggs()
84
- ]);
85
-
86
- const seeds = list(seedsRaw, seedOrder);
87
- const gears = list(gearsRaw, gearOrder);
88
- const payload = build(seeds, gears, eggs);
89
  if (!payload) return;
90
 
91
  await axios.post(WEBHOOK, payload);
 
18
  'Favorite Tool', 'Harvest Tool', 'Friendship Pot'
19
  ];
20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21
  const list = (obj, order = []) =>
22
  Object.entries(obj || {})
23
+ .filter(([k, v]) => +v)
24
  .sort((a, b) => {
25
  const i = order.indexOf(a[0]), j = order.indexOf(b[0]);
26
  return (i === -1 ? 999 : i) - (j === -1 ? 999 : j);
27
  })
28
  .map(([k, v]) => `${k} **x${v}**`);
29
 
30
+ const build = (d) => {
31
+ const seeds = list(d.seeds, seedOrder);
32
+ const gears = list(d.gear, gearOrder);
33
+ const eggs = (d.eggs || []).filter(e => e.quantity)
34
+ .map(e => `${e.name} **x${e.quantity}**`);
35
+
36
  const snap = JSON.stringify([seeds, gears, eggs]);
37
  if (snap === lastSnap) return;
38
  lastSnap = snap;
 
47
  eggs.length ? `**EGG STOCK**\n${eggs.join('\n')}` : ''
48
  ].join('\n');
49
 
50
+ const alertWords = ['Godly Sprinkler', 'Master Sprinkler', 'Beanstalk', 'Ember Lily', 'Sugar Apple', 'Legendary Egg', 'Mythical Egg', 'Bug Egg'];
51
+ const containsSpecial = alertWords.some(word => desc.includes(word));
52
 
53
  return {
54
+ content: containsSpecial ? '@everyone' : undefined,
55
  embeds: [{
56
  description: desc.trim(),
57
  color: 0x5865F2,
 
65
  if (m % 5 !== 0 || m === lastMinute) return;
66
 
67
  try {
68
+ const { data } = await axios.get('https://www.gamersberg.com/api/grow-a-garden/stock');
69
+ const d = data?.data?.[0];
70
+ if (!data.success || !d) return;
71
+
72
+ const payload = build(d);
 
 
 
 
73
  if (!payload) return;
74
 
75
  await axios.post(WEBHOOK, payload);