decord/beta/source/modules/icymi/ICYMIUtils.tsx
2026-10-12 16:32:48 +00:00

432 lines
16 KiB
TypeScript

// Module ID: 8471
// Function ID: 8472
// Name: ICYMIUtils
// Dependencies: [5, 6054, 2069, 2065, 2087, 8468, 1085, 8467, 8472, 8477, 5434, 8478, 8268, 8479, 1126, 2]
// Exports: compareGravityUnreadIds, contentTypeToText, createGravityMessageFromServer, customScoreToNumber, customStatusToContentInventoryEntry, determineContentType, hydrateItems, isChannelCustomScoreEligible, isGuildItem, isItemNSFW, itemToType, numberToCustomScore
// Module 8471 (ICYMIUtils)
import intl11 from "intl" /* 1126 */;
import ChannelRecord from "ChannelRecord" /* 2069 */;
import MessageRecordUtils from "MessageRecordUtils" /* 5434 */;
import ContentInventoryEntryType from "ContentInventoryEntryType" /* 8268 */;
import ICYMITypes from "ICYMITypes" /* 8467 */;
import ICYMIActionCreatorsDefault from "ICYMIActionCreators" /* 8472 */;
import generateHydrationId from "generateHydrationId" /* 8477 */;
import ContentInventoryAuthorType from "ContentInventoryAuthorType" /* 8478 */;
import ForumPostMediaUtils from "ForumPostMediaUtils" /* 8479 */;
import _asyncToGenerator from "_asyncToGenerator" /* 5 */;
import GuildScheduledEventStore from "GuildScheduledEventStore" /* 6054 */;
import ChannelStore from "ChannelStore" /* 2065 */;
import GuildStore from "GuildStore" /* 2087 */;
import ICYMIUnreadStateStore from "ICYMIUnreadStateStore" /* 8468 */;
import Constants from "Constants" /* 1085 */;
import size from "module_2" /* 2 */;
let c4, c5;
let c10;
let c9;
let obj = function _hydrateItems() {
obj = _asyncToGenerator(async (arg0, value, arg2, arg3) => {
let items;
let closure_0 = arg0;
let closure_1 = value;
let closure_2 = arg2;
let closure_3 = arg3;
if (c4 === 2) {
c4 = 3;
throw new TypeError("Generator functions may not be called on executing generators");
} else if (tmp3 === 3) {
if (arg0 === 1) {
throw value;
} else if (arg0 === 2) {
let obj3 = { value, done: true };
return obj3;
} else {
return { value: "IconComponent", done: null };
}
} else {
try {
c4 = 2;
if (0 === c5) {
if (arg0 === 1) {
c4 = 3;
throw value;
} else if (arg0 === 2) {
c4 = 3;
const obj4 = { value, done: true };
return obj4;
} else {
closure_0 = closure_3;
const substr = closure_0.slice(closure_1, closure_2);
if (0 !== substr.length) {
const loadHydratedAttempt = ICYMIActionCreatorsDefault.loadHydratedAttempt;
let obj2 = generateHydrationId;
const hydratedAttempt = loadHydratedAttempt(obj2.generateHydrationId(tmp24, tmp25));
const found = substr.filter((item) => null == closure_0[item.id]);
const found1 = found.filter((type) => type.type === closure_1_0(closure_1_2[7]).ICYMIItemTypes.MESSAGE);
const mapped = found1.map((channel_id) => ({ channel_id: channel_id.data.channel_id, message_id: channel_id.data.message_id }));
const mapped1 = found.map((type) => {
if (type.type === closure_1_0(closure_1_2[7]).ICYMIItemTypes.MESSAGE) {
const message_context = type.data.message_context;
let reply_message_id;
if (message_context != null) {
reply_message_id = message_context.reply_message_id;
}
const items = [];
if (null != reply_message_id) {
obj = { channel_id: type.data.channel_id, message_id: type.data.message_context.reply_message_id };
items.push(obj);
}
const message_context2 = type.data.message_context;
let before_message_id;
if (message_context2 != null) {
before_message_id = message_context2.before_message_id;
}
if (null != before_message_id) {
const obj2 = { channel_id: type.data.channel_id, message_id: type.data.message_context.before_message_id };
items.push(obj2);
}
const message_context3 = type.data.message_context;
let after_message_id;
if (message_context3 != null) {
after_message_id = message_context3.after_message_id;
}
if (null != after_message_id) {
const obj3 = { channel_id: type.data.channel_id, message_id: type.data.message_context.after_message_id };
items.push(obj3);
}
return items;
} else {
return [];
}
});
const _Boolean = Boolean;
const flatResult = mapped1.flat();
const found2 = flatResult.filter(Boolean);
const found3 = found.filter((type) => type.type === closure_1_0(closure_1_2[7]).ICYMIItemTypes.ACTIVITY);
const mapped2 = found3.map((data) => ({ user_id: data.data.user_id, content_id: data.data.content_id }));
const obj5 = { messageItems: items, activityItems: mapped2 };
items = [];
const fetchHydrated = ICYMIActionCreatorsDefault.fetchHydrated;
HermesBuiltin.arraySpread(items, found2, HermesBuiltin.arraySpread(items, mapped, 0));
c5 = 1;
c4 = 1;
const obj6 = { value: fetchHydrated(closure_1, closure_2, obj5), done: false };
return obj6;
}
}
} else if (arg0 === 1) {
c4 = 3;
throw value;
} else if (arg0 === 2) {
c4 = 3;
obj = { value, done: true };
return obj;
}
c4 = 3;
return { value: "IconComponent", done: null };
} catch (tmp19) {
c4 = 3;
throw tmp19;
}
}
});
return obj(...arguments);
};
const ThreadChannelRecord = ChannelRecord.ThreadChannelRecord;
({ ChannelTypes: c9, GuildNSFWContentLevel: c10 } = Constants);
obj = { UNKNOWN: 0, [0]: "UNKNOWN", DEFAULT: 1, [1]: "DEFAULT", MORE: 2, [2]: "MORE", LESS: 3, [3]: "LESS", MUTED: 4, [4]: "MUTED" };
let result = size.fileFinishedImporting("modules/icymi/ICYMIUtils.tsx");
export const ICYMICustomScore = obj;
export const isGuildItem = function isGuildItem(type) {
let tmp3 = type.type === ICYMITypes.ICYMIItemTypes.MESSAGE;
if (!tmp3) {
tmp3 = type.type === ICYMITypes.ICYMIItemTypes.GUILD_EVENT;
}
return tmp3;
};
export const isChannelCustomScoreEligible = function isChannelCustomScoreEligible(stateFromStores) {
let tmp2 = stateFromStores.type === constants.GUILD_FORUM;
if (!tmp2) {
tmp2 = stateFromStores.type === constants.GUILD_ANNOUNCEMENT || stateFromStores.type === constants.GUILD_TEXT;
}
return tmp2;
};
export const numberToCustomScore = function numberToCustomScore(stateFromStores1) {
let DEFAULT;
if (stateFromStores1 < -1.5) {
DEFAULT = obj.MUTED;
} else if (stateFromStores1 < 0) {
DEFAULT = obj.LESS;
} else if (stateFromStores1 > 0) {
DEFAULT = obj.MORE;
} else {
DEFAULT = obj.DEFAULT;
}
return DEFAULT;
};
export const customScoreToNumber = function customScoreToNumber(DEFAULT) {
if (obj.MORE === DEFAULT) {
return 1;
} else if (obj.LESS === DEFAULT) {
return -1;
} else if (obj.MUTED === DEFAULT) {
return -2;
} else {
return 0;
}
};
export const hydrateItems = function hydrateItems() {
return obj(...arguments);
};
export const createGravityMessageFromServer = function createGravityMessageFromServer(message, arg1) {
let fromServerResult;
let obj2;
obj = { message: obj2.createMessageRecord(message.message), threadChannel: fromServerResult };
const merged = Object.assign(arg1);
fromServerResult = undefined;
obj2 = MessageRecordUtils;
if (null != message.thread_channel) {
fromServerResult = ThreadChannelRecord.fromServer(message.thread_channel, message.guild_id);
}
return obj;
};
export const customStatusToContentInventoryEntry = function customStatusToContentInventoryEntry(notificationItem) {
let obj2;
let str;
obj = { id: notificationItem.id, type: ICYMITypes.ICYMIItemTypes.CUSTOM_STATUS, activity: obj2, score: null, score_components: null };
obj2 = { id: notificationItem.id, author_id: notificationItem.data.user_id, author_type: ContentInventoryAuthorType.ContentInventoryAuthorType.USER, traits: [], participants: [], content_type: ContentInventoryEntryType.ContentInventoryEntryType.CUSTOM_STATUS, extra: { type: "custom_status_extra", status: str, emoji_id: notificationItem.data.emoji_id, emoji_name: notificationItem.data.emoji_name, emoji_animated: notificationItem.data.emoji_animated, attachments: notificationItem.data.attachments } };
str = notificationItem.data.text;
if (str == null) {
str = "";
}
({ score: obj.score, score_components: obj.score_components } = notificationItem);
return obj;
};
export const compareGravityUnreadIds = function compareGravityUnreadIds(id, id2, arg2) {
let num;
let readTimestamp = ICYMIUnreadStateStore.getReadTimestamp(id);
obj = ICYMIUnreadStateStore;
if (null == readTimestamp) {
let tmp2;
if (arg2 != null) {
tmp2 = arg2[id];
}
readTimestamp = tmp2;
}
let readTimestamp1 = obj.getReadTimestamp(id2);
if (null == readTimestamp1) {
let tmp4;
if (arg2 != null) {
tmp4 = arg2[id2];
}
readTimestamp1 = tmp4;
}
if (null != readTimestamp) {
let num2 = -1;
if (null != readTimestamp) {
let num3 = 1;
if (null != readTimestamp1) {
num3 = readTimestamp1 - readTimestamp;
}
num2 = num3;
}
num = num2;
} else {
num = 0;
}
return num;
};
export const isItemNSFW = function isItemNSFW(data) {
let guild_id;
let id;
const kind = data.data.kind;
if ("message" === kind) {
id = data.data.message.channel_id;
} else if ("forumThread" === kind) {
id = data.data.threadChannel.id;
} else if ("guildEvent" === kind) {
const guildScheduledEvent = GuildScheduledEventStore.getGuildScheduledEvent(data.data.eventId);
if (guildScheduledEvent != null) {
guild_id = guildScheduledEvent.guild_id;
}
} else {
return false;
}
const channel = ChannelStore.getChannel(id);
let nsfw;
if (channel != null) {
nsfw = channel.nsfw;
}
if (nsfw) {
return true;
} else {
let guild_id1;
if (channel != null) {
guild_id1 = channel.guild_id;
}
if (guild_id1 == null) {
guild_id1 = guild_id;
}
let guild = null;
if (null != guild_id1) {
guild = GuildStore.getGuild(guild_id1);
}
let nsfwLevel;
if (guild != null) {
nsfwLevel = guild.nsfwLevel;
}
let tmp11 = nsfwLevel === constants2.EXPLICIT;
if (!tmp11) {
let nsfwLevel1;
if (guild != null) {
nsfwLevel1 = guild.nsfwLevel;
}
tmp11 = nsfwLevel1 === tmp10.AGE_RESTRICTED;
}
return tmp11;
}
};
export const itemToType = function itemToType(data) {
const kind = data.data.kind;
if ("end" === kind) {
return "end";
} else if ("loading" === kind) {
return "loading";
} else if ("bottomLoading" === kind) {
return "bottomLoading";
} else {
let str11 = "message";
if ("message" === kind) {
let str10 = "announcement";
if (data.channelType !== constants.GUILD_ANNOUNCEMENT) {
const messageContext = data.data.messageContext;
let prop;
if (messageContext != null) {
prop = messageContext.external_content_application_id;
}
if (null != prop) {
str11 = "game_message";
}
str10 = str11;
}
return str10;
} else if ("guildEvent" === kind) {
return "guild_event";
} else if ("contentInventory" === kind) {
let str8 = "hotwheels_gaming_activity";
if (data.data.content.content_type === ContentInventoryEntryType.ContentInventoryEntryType.CUSTOM_STATUS) {
str8 = "hotwheels_custom_status";
}
return str8;
} else if ("recommendedGuilds" === kind) {
return "recommended_guilds";
} else if ("forumThread" === kind) {
return "forum_thread";
} else if ("icymiHeader" === kind) {
return "icymi_header";
} else {
return "unknown";
}
}
};
export const determineContentType = function determineContentType(channel, message) {
if (channel.type === constants.GUILD_ANNOUNCEMENT) {
return ICYMITypes.ContentType.ANNOUNCEMENT;
} else if (channel.type === tmp.GUILD_FORUM) {
return ICYMITypes.ContentType.FORUM_POST;
} else {
let INTERESTING;
if (null != message.reactions) {
const reactions = message.reactions;
const mapped = reactions.map((count_details) => {
let num = 0;
if (null != count_details.count_details) {
let num2 = count_details.count_details.burst;
if (num2 == null) {
num2 = 0;
}
let num3 = count_details.count_details.normal;
if (num3 == null) {
num3 = 0;
}
num = num2 + num3;
}
return num;
});
let num = 0;
if (0 !== mapped.length) {
let num2 = 10;
if (mapped.reduce((acc, item) => acc + item) > 10) {
return ICYMITypes.ContentType.POPULAR_MESSAGE;
}
}
}
let num3 = 0;
if (message.attachments.length > 0) {
let IMAGE;
obj = ForumPostMediaUtils;
if (obj.isValidImageAttachment(message.attachments[0])) {
IMAGE = tmp6(8467).ContentType.IMAGE;
} else {
const tmp6Result = ForumPostMediaUtils;
const result = tmp6Result.isValidVideoAttachment(message.attachments[0]);
const ContentType = tmp6(8467).ContentType;
IMAGE = result ? ContentType.VIDEO : ContentType.FILE;
}
INTERESTING = IMAGE;
} else if (message.embeds.length > 0) {
INTERESTING = ICYMITypes.ContentType.LINK;
} else {
INTERESTING = ICYMITypes.ContentType.INTERESTING;
}
return INTERESTING;
}
};
export const contentTypeToText = function contentTypeToText(ANNOUNCEMENT, mentioned) {
let flag = mentioned;
if (mentioned === undefined) {
flag = false;
}
if (ICYMITypes.ContentType.POPULAR_MESSAGE === ANNOUNCEMENT) {
const intl10 = tmp(1126).intl;
return intl10.string(intl11.t["H/2+cl"]);
} else if (ICYMITypes.ContentType.IMAGE === ANNOUNCEMENT) {
const intl9 = tmp(1126).intl;
return intl9.string(intl11.t.gmOWAo);
} else if (ICYMITypes.ContentType.VIDEO === ANNOUNCEMENT) {
const intl8 = tmp(1126).intl;
return intl8.string(intl11.t.swhcPM);
} else if (ICYMITypes.ContentType.LINK === ANNOUNCEMENT) {
const intl7 = tmp(1126).intl;
return intl7.string(intl11.t.oj5yvD);
} else if (ICYMITypes.ContentType.THREAD === ANNOUNCEMENT) {
const intl6 = tmp(1126).intl;
return intl6.string(intl11.t.DwLrLK);
} else if (ICYMITypes.ContentType.FORUM_POST === ANNOUNCEMENT) {
const intl5 = tmp(1126).intl;
return intl5.string(intl11.t["Q9/6BS"]);
} else if (ICYMITypes.ContentType.CHANGED_STATUS === ANNOUNCEMENT) {
const intl4 = tmp(1126).intl;
return intl4.string(intl11.t.TGrUmi);
} else if (ICYMITypes.ContentType.INTERESTING === ANNOUNCEMENT) {
const intl3 = tmp(1126).intl;
return intl3.string(intl11.t["TahE/i"]);
} else if (ICYMITypes.ContentType.ANNOUNCEMENT === ANNOUNCEMENT) {
let stringResult;
const intl2 = tmp(1126).intl;
const string = intl2.string;
const t = tmp(1126).t;
if (flag) {
stringResult = string(t.E0MW8I);
} else {
stringResult = string(t["2ih63V"]);
}
return stringResult;
} else if (ICYMITypes.ContentType.FILE === ANNOUNCEMENT) {
const intl = tmp(1126).intl;
return intl.string(intl11.t.pYrnTY);
}
};