steam-family-bot-core
Version:
一个用于新版 Steam 家庭的库存监控 Bot 插件
65 lines • 3.04 kB
JavaScript
;
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