UNPKG

steam-family-bot-core

Version:

一个用于新版 Steam 家庭的库存监控 Bot 插件

48 lines 1.87 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.libInfoSyncer = void 0; const lodash_1 = __importDefault(require("lodash")); const libInfoSyncer = async (c) => { const { steam, botService, config, logger } = c; logger.info('trigger lib info syncer'); const libItem = await steam.db.FamilyLib.getUnSyncedLib(); const libsId = lodash_1.default.uniq(libItem.map((it) => it.appId)); const libInfos = lodash_1.default.chunk(libsId, 30).flatMap(async (chunk) => { try { const steamItems = await steam.api.Steam.getSteamItemsBaseInfo(chunk); return steamItems.data ?? []; } catch (e) { return []; } }); const awaitedLibInfos = (await Promise.all(libInfos)).flatMap((it) => it); const libInfoDict = lodash_1.default.keyBy(awaitedLibInfos, 'appId'); const notSynced = libItem .filter((it) => !libInfoDict[it.appId]) .map((it) => it.appId) .join(','); if (notSynced) { logger.info(`not synced steam apps ${notSynced}`); } const res = libItem .filter((it) => libInfoDict[it.appId]) .map((it) => { const infos = libInfoDict[it.appId]; return { appid: it.appId, name: it.name, aliases: infos.aliases, top20Tags: infos.top20Tags.join(','), lastRefreshedAt: Math.floor(Date.now() / 1000), }; }); const data = lodash_1.default.uniqBy(res, 'appid'); await steam.db.FamilyLib.batchUpsertLibInfo(data); logger.info(`lib sync finished, synced ${res.length} items`); }; exports.libInfoSyncer = libInfoSyncer; //# sourceMappingURL=libInfoSyncer.js.map