UNPKG

steam-family-bot-core

Version:

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

70 lines 3.27 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.prepareLibData = exports.prepareFamilyInfo = exports.diffLibs = exports.diffWishes = void 0; const lodash_1 = __importDefault(require("lodash")); const diffWishes = (prevWishes, wishes) => { // filter libs not in prevLibs const newWishes = wishes.filter((item) => !prevWishes.some((preItem) => preItem.appId.toString() == item.appId)); // filter libs in prevLib but ownerId not match const modifiedWishes = wishes.filter((item) => prevWishes.some((preItem) => preItem.appId.toString() == item.appId && preItem.steamIds != item.wishers.sort().join(','))); const wishesDict = lodash_1.default.keyBy(prevWishes, 'appId'); const deletedWishes = prevWishes.filter((item) => !wishes.some((newItem) => newItem.appId == item.appId.toString())); return { newWishes, deletedWishes, modifiedWishes, wishesDict, }; }; exports.diffWishes = diffWishes; const diffLibs = (prevLibs, libs) => { // filter libs not in prevLibs const newLibs = libs.filter((item) => !prevLibs.some((preItem) => preItem.appId == item.appid)); // filter libs in prevLib but ownerId not match const modifiedLibs = libs.filter((item) => prevLibs.some((preItem) => preItem.appId == item.appid && preItem.steamIds != item.ownerSteamids.sort().join(','))); const libDict = lodash_1.default.keyBy(prevLibs, 'appId'); // filter libs in prevLib but not ownerId diff const deletedLibs = prevLibs.filter((item) => !libs.some((newItem) => newItem.appid == item.appId)); return { newLibs, modifiedLibs, libDict, deletedLibs, }; }; exports.diffLibs = diffLibs; const prepareFamilyInfo = async (api, steam, withWishes) => { const family = await api.Steam.getSteamFamilyGroup(); const memberIds = family.data.familyGroup.members.map((member) => member.steamid?.toString()); const [wishes, members] = await Promise.all([ withWishes ? (await api.Steam.getSteamWishesByPlayerIds(memberIds)).data : [], (await api.Steam.getFamilyMembers(memberIds)).data, ]); const m = members.accounts.map((acc) => acc.publicData); const memberDict = lodash_1.default.keyBy(m, 'steamid'); const prevWishes = withWishes ? await steam.db.FamilyLib.getFamilyWishes(family.data.familyGroupid.toString()) : []; return { family, memberDict, wishes, prevWishes, }; }; exports.prepareFamilyInfo = prepareFamilyInfo; const prepareLibData = async (api, steam, familyId) => { const prevLibs = steam.db.FamilyLib.getSteamFamilyLibByFamilyId(familyId, 'lib'); const libs = api.Steam.getSteamFamilyGroupLibs(BigInt(familyId)).then((res) => res?.data.apps.filter((app) => app.excludeReason == undefined || app.excludeReason == 0)); const [awaitedPrevLibs, awaitedLibs] = await Promise.all([prevLibs, libs]); return { prevLibs: awaitedPrevLibs, libs: awaitedLibs }; }; exports.prepareLibData = prepareLibData; //# sourceMappingURL=utils.js.map