diff options
Diffstat (limited to 'src/tasks/updatePriceItemCache.ts')
-rw-r--r-- | src/tasks/updatePriceItemCache.ts | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/tasks/updatePriceItemCache.ts b/src/tasks/updatePriceItemCache.ts new file mode 100644 index 0000000..096354b --- /dev/null +++ b/src/tasks/updatePriceItemCache.ts @@ -0,0 +1,31 @@ +import { BushTask } from '#lib'; +import got from 'got'; +import PriceCommand, { AuctionAverages, Bazaar, LowestBIN } from '../commands/utilities/price.js'; + +export default class UpdatePriceItemCache extends BushTask { + public constructor() { + super('updatePriceItemCache', { + delay: 600_000, // 10 minutes + runOnStart: true + }); + } + + public override async exec() { + //prettier-ignore + const [bazaar, currentLowestBIN, averageLowestBIN, auctionAverages] = (await Promise.all([ + got.get('https://api.hypixel.net/skyblock/bazaar').json().catch(() => {}), + got.get('https://moulberry.codes/lowestbin.json').json().catch(() => {}), + got.get('https://moulberry.codes/auction_averages_lbin/3day.json').json().catch(() => {}), + got.get('https://moulberry.codes/auction_averages/3day.json').json().catch(() => {}) + ])) as [Bazaar, LowestBIN, LowestBIN, AuctionAverages]; + + const itemNames = new Set([ + ...Object.keys(averageLowestBIN ?? {}), + ...Object.keys(currentLowestBIN ?? {}), + ...Object.keys(auctionAverages ?? {}), + ...Object.keys(bazaar?.products ?? {}) + ]); + + PriceCommand.cachedItemList = [...itemNames]; + } +} |