UNPKG

steam-family-bot-core

Version:

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

65 lines 3.04 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.updateDB = exports.getChangedLibs = void 0; const utils_1 = require("../../schedules/family-lib-syncer/utils"); const getChangedLibs = async (api, steam, item, logger) => { const { memberDict, wishes, prevWishes } = await (0, utils_1.prepareFamilyInfo)(api, steam, item.subscription.subWishes); const { prevLibs, libs } = await (0, utils_1.prepareLibData)(api, steam, item.steamAndFamilyRel.familyId); logger.debug(`success fetch lib data, prevLibs: ${prevLibs.length}, curLibs: ${libs.length}`); const { newWishes, modifiedWishes, deletedWishes, wishesDict } = (0, utils_1.diffWishes)(prevWishes, wishes); const { modifiedLibs, libDict, newLibs, deletedLibs } = (0, utils_1.diffLibs)(prevLibs, libs); return { memberDict, newWishes, modifiedWishes, deletedWishes, wishesDict, newLibs, modifiedLibs, deletedLibs, libDict, }; }; exports.getChangedLibs = getChangedLibs; const updateDB = async (item, logger, steam, newWishes, modifiedWishes, deletedWishes, newLibs, modifiedLibs, deletedLibs) => { const libsUpsert = newLibs .concat(modifiedLibs) .map((it) => ({ familyId: item.subscription.steamFamilyId, name: it.name, appId: it.appid, steamIds: it.ownerSteamids.sort().join(','), type: 'lib', rtTimeAcquired: it.rtTimeAcquired ?? 0, lastModifiedAt: Math.floor(Date.now() / 1000), })); const libsDelete = deletedLibs.map((it) => ({ familyId: item.subscription.steamFamilyId, appId: it.appId, type: 'lib', })); const wishesUpsert = item.subscription.subWishes ? newWishes.concat(modifiedWishes).map((newItem) => ({ familyId: item.subscription.steamFamilyId, name: newItem.itemInfo?.name, appId: parseInt(newItem.appId), steamIds: newItem.wishers.sort().join(','), type: 'wish', })) : []; const wishesDelete = item.subscription.subWishes ? deletedWishes.map((it) => ({ familyId: item.subscription.steamFamilyId, appId: it.appId, type: 'wish', })) : []; logger.debug(`「${item.subscription.steamFamilyId}」 wishes need delete: ${wishesDelete.length}, wishes need upsert: ${wishesUpsert.length}`); logger.debug(`「${item.subscription.steamFamilyId}」 libs need delete: ${libsDelete.length}, libs need upsert: ${libsUpsert.length}`); // update db await steam.db.FamilyLib.batchUpsertFamilyLib(wishesUpsert.concat(libsUpsert)); await steam.db.FamilyLib.batchRemoveByAppIdAndFamilyId(item.subscription.steamFamilyId, wishesDelete.map((it) => it.appId), 'wish'); await steam.db.FamilyLib.batchRemoveByAppIdAndFamilyId(item.subscription.steamFamilyId, libsDelete.map((it) => it.appId), 'lib'); }; exports.updateDB = updateDB; //# sourceMappingURL=getLibChange.js.map