decord/alpha/source/modules/stickers/StickersPackStore.tsx
2026-10-10 08:08:14 +00:00

186 lines
6.7 KiB
TypeScript

// Module ID: 6032
// Function ID: 6033
// Name: StickersPackStore
// Dependencies: [32, 2081, 2088, 1102, 5750, 2]
// Module 6032 (StickersPackStore)
import DurationsDefault from "Durations" /* 1102 */;
import js_shim_PlainRecord from "js_shim/PlainRecord" /* 2081 */;
import LibdiscoreStore2 from "LibdiscoreStore" /* 2088 */;
import StickersTypes from "StickersTypes" /* 5750 */;
import _slicedToArray from "_slicedToArray" /* 32 */;
import size from "module_2" /* 2 */;
let map;
function parsePackStickers(stickers) {
const obj = {};
const iter = stickers[Symbol.iterator]();
const nextResult = iter.next();
while (iter !== undefined) {
obj[nextResult.id] = parseServerPackSticker(nextResult);
continue;
}
return obj;
}
function parseServerPackSticker(id) {
const obj = { id: id.id, tags: id.tags, type: id.type, name: id.name, description: id.description, format_type: id.format_type, pack_id: id.pack_id };
obj[TypeTag] = "PackSticker";
return obj;
}
function deriveStickerMetadata(name, name2) {
let trimmed;
const items = [];
const obj = { type: StickersTypes.StickerMetadataTypes.STICKER_NAME, value: trimmed.toLocaleLowerCase() };
const str = name.name;
trimmed = str.trim();
items.push(obj);
if (null != name2) {
const push = items.push;
const obj2 = { type: StickersTypes.StickerMetadataTypes.PACK_NAME, value: name2.name };
push(obj2);
}
return items;
}
function ingestStickerPack(item10017, packStickersDatabase, packsDatabase, premiumPacksDatabase, arg4) {
const result = packsDatabase.set(item10017.id, item10017);
const result1 = premiumPacksDatabase.set(item10017.id, item10017);
packStickersDatabase.setPartition(item10017.id, parsePackStickers(item10017.stickers));
}
const TypeTag = js_shim_PlainRecord.TypeTag;
const LibdiscoreStore = LibdiscoreStore2.LibdiscoreStore;
let c4 = false;
let closure_5 = null;
const HOUR = DurationsDefault.Millis.HOUR;
class StickersPackStore extends LibdiscoreStore {
constructor() {
const applyArgumentsResult = HermesBuiltin.applyArguments(this, new.target);
require = applyArgumentsResult;
applyArgumentsResult.packsDatabase = applyArgumentsResult.addKVDatabase("stickerPacks");
applyArgumentsResult.packStickersDatabase = applyArgumentsResult.addKKVDatabase("packStickers");
const packStickersDatabase = applyArgumentsResult.packStickersDatabase;
applyArgumentsResult.packStickerByIdIndex = packStickersDatabase.addSecondaryKVIndex("id");
applyArgumentsResult.premiumPacksDatabase = applyArgumentsResult.addKVDatabase("premiumPacks");
const packStickersDatabase2 = applyArgumentsResult.packStickersDatabase;
applyArgumentsResult.getAllPackStickers = packStickersDatabase2.memoized((obj) => {
map = new Map();
for (const key10009 in obj) {
let _Object = Object;
let result = map.set(key10009, Object.values(obj[key10009].root));
continue;
}
return map;
});
const packStickersDatabase3 = applyArgumentsResult.packStickersDatabase;
applyArgumentsResult.getStickerMetadataMap = packStickersDatabase3.memoized((obj) => {
let tmp4;
let tmp5;
map = new Map();
for (const key10012 in obj) {
let _Object = Object;
let entries = Object.entries(obj[key10012].root);
for (const item10014 of entries) {
let tmp3 = _slicedToArray(item10014, 2);
let packsDatabase = require.packsDatabase;
[tmp4, tmp5] = tmp3;
let result = map.set(tmp4, deriveStickerMetadata(tmp5, packsDatabase.get(key10012)));
continue;
}
}
return map;
});
const premiumPacksDatabase = applyArgumentsResult.premiumPacksDatabase;
applyArgumentsResult.getPremiumPacks = premiumPacksDatabase.memoized((arg0) => Object.values(arg0));
return applyArgumentsResult;
}
stateWrapper() {
const self = this;
return {
packsDatabase: this.packsDatabase,
packStickersDatabase: this.packStickersDatabase,
premiumPacksDatabase: this.premiumPacksDatabase,
markDirty() {
return self.markDirty();
},
clearAllDBs() {
return self.clearAllDatabases();
}
};
}
getStickerById(arg0) {
const packStickerByIdIndex = this.packStickerByIdIndex;
return packStickerByIdIndex.get(arg0);
}
isPremiumPack(arg0) {
const premiumPacksDatabase = this.premiumPacksDatabase;
return null != premiumPacksDatabase.get(arg0);
}
getStickerPack(arg0) {
const packsDatabase = this.packsDatabase;
return packsDatabase.get(arg0);
}
}
const prototype = StickersPackStore.prototype;
Object.defineProperty(prototype, "isFetchingStickerPacks", {
get: function isFetchingStickerPacks() {
return c4;
},
set: undefined
});
Object.defineProperty(prototype, "hasLoadedStickerPacks", {
get: function hasLoadedStickerPacks() {
let tmp = null != closure_5;
if (tmp) {
const _performance = performance;
const sum = closure_5 + HOUR;
tmp = sum > performance.now();
}
return tmp;
},
set: undefined
});
StickersPackStore.displayName = "StickersPackStore";
let obj = {
LOGOUT(arg0, clearAllDBs) {
clearAllDBs.clearAllDBs();
},
STICKER_PACK_FETCH_SUCCESS(pack, arg1) {
let packStickersDatabase;
let packsDatabase;
let premiumPacksDatabase;
pack = pack.pack;
({ packStickersDatabase, packsDatabase, premiumPacksDatabase } = arg1);
const result = packsDatabase.set(pack.id, pack);
packStickersDatabase.setPartition(pack.id, parsePackStickers(pack.stickers));
},
STICKER_PACKS_FETCH_START(arg0, markDirty) {
c4 = true;
markDirty.markDirty();
},
STICKER_PACKS_FETCH_SUCCESS(packs, markDirty) {
let packStickersDatabase;
let packsDatabase;
let premiumPacksDatabase;
packs = packs.packs;
({ packStickersDatabase, packsDatabase, premiumPacksDatabase } = markDirty);
c4 = false;
markDirty.markDirty();
closure_5 = performance.now();
for (const item10017 of packs) {
let flag = true;
let tmp7 = ingestStickerPack(item10017, packStickersDatabase, packsDatabase, premiumPacksDatabase, true);
continue;
}
},
PACK_STICKER_FETCH_SUCCESS(sticker, packStickersDatabase) {
sticker = sticker.sticker;
packStickersDatabase = packStickersDatabase.packStickersDatabase;
const obj = { id: sticker.id, tags: sticker.tags, type: sticker.type, name: sticker.name, description: sticker.description, format_type: sticker.format_type, pack_id: sticker.pack_id };
obj[TypeTag] = "PackSticker";
packStickersDatabase.setRecord(sticker.pack_id, sticker.id, obj);
}
};
const stickersPackStore = new StickersPackStore(obj);
let result = size.fileFinishedImporting("modules/stickers/StickersPackStore.tsx");
export default stickersPackStore;