decord/source/modules/forums/ForumPostDataLoader.tsx

274 lines
7.5 KiB
TypeScript
Raw Normal View History

2026-07-25 08:10:48 +00:00
// Module ID: 6012
// Function ID: 53617
2026-07-20 16:05:17 +00:00
// Name: _shouldRequestFirstMessage
2026-07-25 08:10:48 +00:00
// Dependencies: [5, 6, 7, 1348, 6013, 6001, 6017, 653, 22, 21, 566, 507, 686, 2]
2026-07-20 16:05:17 +00:00
// Exports: preloadForumThreads, useFirstForumPostMessage, useMostRecentForumMessage
2026-07-25 08:10:48 +00:00
// Module 6012 (_shouldRequestFirstMessage)
2026-07-23 10:11:24 +00:00
import _isNativeReflectConstruct from "_isNativeReflectConstruct";
import closure_4 from "_isNativeReflectConstruct";
import ME from "ME";
import closure_6 from "_isNativeReflectConstruct";
import { computeThreadIdsSnapshot } from "_isNativeReflectConstruct";
import closure_8 from "_isNativeReflectConstruct";
import closure_9 from "_isNativeReflectConstruct";
import { Endpoints } from "ME";
const require = arg1;
2026-07-20 16:05:17 +00:00
function _shouldRequestFirstMessage(loaded, firstMessage) {
let tmp = !loaded;
if (tmp) {
tmp = null == firstMessage;
}
return tmp;
}
function loadMultipleForumPostData(stateFromStores, arr) {
2026-07-23 10:11:24 +00:00
let closure_0 = stateFromStores;
let c1 = false;
2026-07-20 16:05:17 +00:00
const item = arr.forEach((arg0) => {
2026-07-23 10:11:24 +00:00
const message = outer1_8.getMessage(arg0);
if (outer1_14(message.loaded, message.firstMessage)) {
outer1_12.request(stateFromStores.id, arg0);
let c1 = true;
2026-07-20 16:05:17 +00:00
}
});
2026-07-23 10:11:24 +00:00
let tmp2 = c1;
if (c1) {
2026-07-20 16:05:17 +00:00
tmp2 = null == timeout;
}
if (tmp2) {
const _setTimeout = setTimeout;
2026-07-23 10:11:24 +00:00
timeout = setTimeout(loadForumPostData, 0);
2026-07-20 16:05:17 +00:00
}
}
function loadForumPostData() {
return _loadForumPostData(...arguments);
}
async function _loadForumPostData() {
2026-07-23 10:11:24 +00:00
if (outer2_12.hasNext()) {
yield outer2_18(outer2_12.next());
2026-07-20 16:05:17 +00:00
do {
2026-07-23 10:11:24 +00:00
let tmp4 = outer2_12;
} while (outer2_12.hasNext());
2026-07-20 16:05:17 +00:00
}
2026-07-23 10:11:24 +00:00
const outer2_13 = null;
2026-07-20 16:05:17 +00:00
}
function loadForumPostDataForChannelId() {
return _loadForumPostDataForChannelId(...arguments);
}
2026-07-23 10:11:24 +00:00
async function _loadForumPostDataForChannelId(arg0, arg1) {
const nextBatch = outer2_12.getNextBatch(arg0, 10);
2026-07-20 16:05:17 +00:00
if (0 === nextBatch.length) {
2026-07-23 10:11:24 +00:00
outer2_12.finishRequesting(tmp, nextBatch);
2026-07-20 16:05:17 +00:00
} else {
2026-07-23 10:11:24 +00:00
const channel = outer2_6.getChannel(tmp);
2026-07-20 16:05:17 +00:00
let guild_id;
if (null != channel) {
guild_id = channel.guild_id;
}
if (null == guild_id) {
2026-07-23 10:11:24 +00:00
outer2_12.finishRequesting(tmp, nextBatch);
2026-07-20 16:05:17 +00:00
} else {
2026-07-23 10:11:24 +00:00
const HTTP = outer2_0(outer2_2[11]).HTTP;
let obj = { url: outer2_10.FORUM_POSTS(tmp) };
2026-07-20 16:05:17 +00:00
obj = { thread_ids: nextBatch };
obj.body = obj;
obj.rejectWithError = true;
2026-07-23 10:11:24 +00:00
obj = outer2_1(outer2_2[12]);
2026-07-20 16:05:17 +00:00
const obj1 = { type: "LOAD_FORUM_POSTS", guildId: guild_id, threads: yield HTTP.post(obj).body.threads };
obj.dispatch(obj1);
2026-07-23 10:11:24 +00:00
outer2_12.finishRequesting(tmp, nextBatch);
2026-07-20 16:05:17 +00:00
}
}
}
2026-07-23 10:11:24 +00:00
let closure_11 = (() => {
2026-07-20 16:05:17 +00:00
class DefaultDict {
constructor(arg0) {
2026-07-23 10:11:24 +00:00
tmp = outer1_4(this, DefaultDict);
2026-07-20 16:05:17 +00:00
this._set = {};
this._defaultValueFunc = arg0;
return;
}
}
let obj = {
key: "get",
value(arg0) {
const self = this;
const _set = this._set;
if (!_set.hasOwnProperty(arg0)) {
self._set[arg0] = self._defaultValueFunc();
}
return self._set[arg0];
}
};
const items = [obj, , , ];
obj = {
key: "delete",
value(arg0) {
2026-07-23 10:11:24 +00:00
delete tmp2[tmp];
2026-07-20 16:05:17 +00:00
}
};
items[1] = obj;
obj = {
key: "hasNext",
value() {
2026-07-23 10:11:24 +00:00
return !outer1_1(outer1_2[8]).isEmpty(this._set);
2026-07-20 16:05:17 +00:00
}
};
items[2] = obj;
items[3] = {
key: "next",
value() {
2026-07-23 10:11:24 +00:00
return outer1_1(outer1_2[9]).keys(this._set)[0];
2026-07-20 16:05:17 +00:00
}
};
return callback2(DefaultDict, items);
2026-07-23 10:11:24 +00:00
})();
let tmp2 = (() => {
2026-07-20 16:05:17 +00:00
class RequestQueue {
constructor() {
2026-07-23 10:11:24 +00:00
tmp = outer1_4(this, RequestQueue);
tmp2 = new outer1_11(() => new Set());
2026-07-20 16:05:17 +00:00
this.requested = tmp2;
return;
}
}
let obj = {
key: "request",
value(arg0, arg1) {
const requested = this.requested;
const value = requested.get(arg0);
value.add(arg1);
}
};
const items = [obj, , , , , , , ];
obj = {
key: "hasRequested",
value(arg0, arg1) {
const requested = this.requested;
const value = requested.get(arg0);
return value.has(arg1);
}
};
items[1] = obj;
obj = {
key: "finishRequesting",
value(arg0, arr) {
const requested = this.requested;
let closure_0 = requested.get(arg0);
const item = arr.forEach((arg0) => set.delete(arg0));
2026-07-23 10:11:24 +00:00
outer1_12.compact(arg0);
2026-07-20 16:05:17 +00:00
}
};
items[2] = obj;
items[3] = {
key: "getRequested",
value(arg0) {
const requested = this.requested;
return requested.get(arg0);
}
};
items[4] = {
key: "getNextBatch",
value(arg0, arg1) {
const requested = this.requested;
return Array.from(requested.get(arg0)).slice(0, arg1);
}
};
items[5] = {
key: "hasNext",
value() {
const requested = this.requested;
return requested.hasNext();
}
};
items[6] = {
key: "next",
value() {
return this.requested.next();
}
};
items[7] = {
key: "compact",
value(arg0) {
const requested = this.requested;
if (0 === requested.get(arg0).size) {
const requested2 = this.requested;
requested2.delete(arg0);
}
}
};
return callback2(RequestQueue, items);
2026-07-23 10:11:24 +00:00
})();
2026-07-20 16:05:17 +00:00
tmp2 = new tmp2();
2026-07-23 10:11:24 +00:00
let closure_12 = tmp2;
let c13 = null;
const result = require("_defineProperties").fileFinishedImporting("modules/forums/ForumPostDataLoader.tsx");
2026-07-20 16:05:17 +00:00
export const BATCH_SIZE = 10;
export const useFirstForumPostMessage = function useFirstForumPostMessage(stateFromStores, arg1) {
let firstMessage;
let loaded;
let obj = arg1;
2026-07-23 10:11:24 +00:00
const _require = stateFromStores;
2026-07-20 16:05:17 +00:00
if (arg1 === undefined) {
obj = {};
}
let flag = obj.enabled;
if (flag === undefined) {
flag = true;
}
let flag2 = obj.allowArchived;
if (flag2 === undefined) {
flag2 = false;
}
const items = [closure_8];
2026-07-23 10:11:24 +00:00
const stateFromStoresObject = _require(566).useStateFromStoresObject(items, () => outer1_8.getMessage(stateFromStores.id));
2026-07-20 16:05:17 +00:00
({ loaded, firstMessage } = stateFromStoresObject);
2026-07-23 10:11:24 +00:00
const obj2 = _require(566);
2026-07-20 16:05:17 +00:00
const items1 = [closure_6];
2026-07-23 10:11:24 +00:00
stateFromStores = _require(566).useStateFromStores(items1, () => outer1_6.getChannel(stateFromStores.parent_id));
2026-07-20 16:05:17 +00:00
let tmp3 = flag;
if (flag) {
tmp3 = null != stateFromStores;
}
if (tmp3) {
tmp3 = _shouldRequestFirstMessage(loaded, firstMessage);
}
if (tmp3) {
if (flag2) {
const items2 = [stateFromStores.id];
loadMultipleForumPostData(stateFromStores, items2);
} else {
2026-07-23 10:11:24 +00:00
(function preloadForumPostDataFrom(stateFromStores, id) {
let closure_0 = stateFromStores;
let closure_1 = id;
if (!outer1_12.hasRequested(stateFromStores.id, id)) {
const arr = outer1_7(stateFromStores.id);
const findIndexResult = arr.findIndex((arg0) => arg0 === closure_1);
2026-07-20 16:05:17 +00:00
const substr = arr.slice(findIndexResult, findIndexResult + 5);
2026-07-23 10:11:24 +00:00
outer1_15(stateFromStores, substr.filter((arg0) => !outer2_12.hasRequested(stateFromStores.id, arg0)));
2026-07-20 16:05:17 +00:00
}
2026-07-23 10:11:24 +00:00
})(stateFromStores, stateFromStores.id);
2026-07-20 16:05:17 +00:00
}
}
obj = { loaded };
let tmp9 = null;
if (flag) {
tmp9 = firstMessage;
}
obj.firstMessage = tmp9;
return obj;
};
export const useMostRecentForumMessage = function useMostRecentForumMessage(arg0, arg1) {
2026-07-23 10:11:24 +00:00
const _require = arg1;
let obj = _require(566);
2026-07-20 16:05:17 +00:00
const items = [closure_9];
2026-07-23 10:11:24 +00:00
const stateFromStoresObject = obj.useStateFromStoresObject(items, () => outer1_9.getMessageState(id.id));
2026-07-20 16:05:17 +00:00
obj = { loaded: stateFromStoresObject.loaded, mostRecentMessage: stateFromStoresObject.message };
return obj;
};
export const preloadForumThreads = function preloadForumThreads(channel) {
loadMultipleForumPostData(channel, computeThreadIdsSnapshot(channel.id).slice(0, 10));
};