decord/source/utils/ApplicationAssetUtils.tsx
2026-07-27 11:26:19 +00:00

470 lines
14 KiB
TypeScript

// Module ID: 7856
// Function ID: 62684
// Name: _createForOfIteratorHelperLoose
// Dependencies: [57, 5, 7857, 653, 44, 3, 507, 686, 1426, 2]
// Exports: getAssetIds, getAssetImage
// Module 7856 (_createForOfIteratorHelperLoose)
import _slicedToArray from "_slicedToArray";
import timestamp from "timestamp";
import _isNativeReflectConstruct from "_isNativeReflectConstruct";
import ME from "ME";
let PlatformTypes;
let closure_6;
const require = arg1;
function _createForOfIteratorHelperLoose(iterable) {
let closure_0 = iterable;
iterable = "undefined" !== typeof Symbol;
if (iterable) {
const _Symbol = Symbol;
iterable = iterable[Symbol.iterator];
}
if (!iterable) {
iterable = iterable[Symbol.iterator];
}
if (iterable) {
const iter = iterable.call(iterable);
const next = iter.next;
return next.bind(iter);
} else {
const _Array = Array;
let tmp = iterable;
if (!Array.isArray(iterable)) {
let tmp2;
if (iterable) {
if ("string" === typeof iterable) {
tmp2 = _arrayLikeToArray(iterable, undefined);
} else {
const toString = {}.toString;
const substr = toString.call(iterable).slice(8, -1);
let name = substr;
if (tmp3) {
name = iterable.constructor.name;
}
if ("Map" !== name) {
if ("Set" !== name) {
if ("Arguments" === name) {
let arr = _arrayLikeToArray(iterable, undefined);
} else {
let obj = /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/;
}
}
tmp2 = arr;
}
const _Array2 = Array;
arr = Array.from(iterable);
const callResult = toString.call(iterable);
tmp3 = "Object" === substr && iterable.constructor;
}
}
tmp = tmp2;
if (!tmp2) {
const _TypeError = TypeError;
const typeError = new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
throw typeError;
}
}
if (tmp) {
closure_0 = tmp;
}
let c1 = 0;
return () => {
if (closure_1 >= length.length) {
let obj = { done: true };
} else {
obj = { done: false };
closure_1 = tmp3 + 1;
obj.value = length[+closure_1];
}
return obj;
};
}
}
function _arrayLikeToArray(arg0, arg1) {
let length;
if (tmp) {
length = arg0.length;
}
const ArrayResult = Array(length);
for (let num = 0; num < length; num = num + 1) {
ArrayResult[num] = arg0[num];
}
return ArrayResult;
}
function updateAssets(arg0) {
return _updateAssets(...arguments);
}
async function _updateAssets(arg0, arg1) {
const HTTP = outer2_0(outer2_2[6]).HTTP;
let obj = { url: outer2_6.APPLICATION_ASSETS(arg0), oldFormErrors: true, rejectWithError: false };
obj = { type: "APPLICATION_ASSETS_UPDATE", applicationId: arg0, assets: yield HTTP.get(obj).body };
outer2_1(outer2_2[7]).dispatch(obj);
return outer2_5.getApplicationAssets(arg0);
}
function getApplicationAssetsMap(arg0) {
const applicationAssets = store.getApplicationAssets(arg0);
if (null != applicationAssets) {
const _Date = Date;
if (Date.now() - applicationAssets.lastUpdated <= 3600000) {
let resolved = Promise.resolve(applicationAssets);
}
return resolved;
}
resolved = updateAssets(arg0);
}
function getAssetFromImageURL(SPOTIFY, url) {
const str = dependencyMap[SPOTIFY].serialize(url);
let combined = null;
if (str) {
const _HermesInternal = HermesInternal;
combined = "" + SPOTIFY + ":" + str.toString();
}
return combined;
}
function getAssets(closure_1) {
return _getAssets(...arguments);
}
async function _getAssets(arg0, arg1) {
const tmp = yield outer2_16(arg0);
let assets;
if (null != tmp) {
assets = tmp.assets;
}
return assets;
}
async function _resolveExternalAssets(arg0, arg1, arg2) {
let done;
const found = arg1.filter((arg0) => {
let tmp = null != arg0;
if (tmp) {
tmp = null == outer3_11.get(arg0);
}
return tmp;
});
if (0 !== found.length) {
const HTTP = outer2_0(outer2_2[6]).HTTP;
let obj = { url: outer2_6.APPLICATION_EXTERNAL_ASSETS(arg0) };
obj = { urls: found };
obj.body = obj;
obj.oldFormErrors = true;
obj.rejectWithError = false;
let tmp = outer2_12(yield HTTP.post(obj).body);
let iter = tmp();
if (!iter.done) {
do {
let value = iter.value;
let tmp2 = outer2_11;
let result = outer2_11.set(value.url, value.external_asset_path);
let iter2 = tmp();
iter = iter2;
done = iter2.done;
} while (!done);
}
const tmp4 = outer2_12;
}
}
function updateUrlAssetIds(arr, items) {
let num = 0;
if (arr.filter((str) => {
let startsWithResult;
if (null != str) {
startsWithResult = str.startsWith("http:");
}
if (!startsWithResult) {
let startsWithResult1;
if (null != str) {
startsWithResult1 = str.startsWith("https:");
}
startsWithResult = startsWithResult1;
}
return startsWithResult;
}).length > 0) {
let num2 = 0;
let num3 = 0;
num = 0;
if (0 < arr.length) {
do {
let tmp2 = arr[num3];
let sum = num2;
if (null != tmp2) {
let tmp4 = map;
let value = map.get(tmp2);
sum = num2;
let tmp6 = value;
if (null != value) {
let tmp7 = getAssetFromImageURL;
items[num3] = getAssetFromImageURL("mp", value);
sum = num2 + 1;
let tmp8 = value;
}
}
num3 = num3 + 1;
num2 = sum;
num = sum;
} while (num3 < arr.length);
}
}
return num === arr.length;
}
function updateNonUrlAssetIds(closure_10, items, assets) {
let flag = false;
let num = 0;
let flag2 = false;
if (0 < closure_10.length) {
do {
let tmp2 = closure_10[num];
let tmp3 = flag;
let tmp4 = tmp;
if (null != tmp2) {
tmp3 = flag;
tmp4 = tmp;
if (null == items[num]) {
let _Object = Object;
let tmp5 = hasOwnProperty.call(assets, tmp2) && assets[tmp2];
let flag3 = flag;
if (tmp5) {
items[num] = tmp5.id;
tmp3 = flag3;
tmp4 = tmp5;
} else if (null == arg3) {
items[num] = null;
tmp3 = flag;
tmp4 = tmp5;
} else {
flag3 = true;
}
}
}
num = num + 1;
flag = tmp3;
tmp = tmp4;
flag2 = tmp3;
} while (num < closure_10.length);
}
return flag2;
}
function fetchAssetIds(id, closure_10) {
return _fetchAssetIds(...arguments);
}
async function _fetchAssetIds(arg0, arg1, arg2) {
let iter = (function*(applicationId, arr) {
let num = arg2;
let closure_0 = applicationId;
let closure_1 = arr;
if (num === undefined) {
num = 1;
}
yield undefined;
let obj = outer2_1(outer2_2[7]);
obj = { type: "APPLICATION_ASSETS_FETCH", applicationId };
obj.dispatch(obj);
const items = [];
const found = arr.filter((str) => {
let startsWithResult;
if (null != str) {
startsWithResult = str.startsWith("http:");
}
if (!startsWithResult) {
let startsWithResult1;
if (null != str) {
startsWithResult1 = str.startsWith("https:");
}
startsWithResult = startsWithResult1;
}
return startsWithResult;
});
if (found.length > 0) {
yield (function resolveExternalAssets(applicationId, found) {
return outer3_20(...arguments);
})(applicationId, found);
}
if (outer2_21(arr, items)) {
obj = { type: "APPLICATION_ASSETS_FETCH_SUCCESS", applicationId };
outer2_1(outer2_2[7]).dispatch(obj);
return items;
} else {
const tmp5 = yield outer2_18(applicationId);
let obj2 = outer2_1(outer2_2[7]);
const obj1 = { type: "APPLICATION_ASSETS_UPDATE", applicationId, assets: tmp5 };
obj2.dispatch(obj1);
if (outer2_22(arr, items, tmp5, num)) {
let nextPromise = outer2_14(applicationId).then(() => outer3_23(closure_0, closure_1, num - 1));
const promise = outer2_14(applicationId);
} else {
obj2 = { type: "APPLICATION_ASSETS_FETCH_SUCCESS", applicationId };
outer2_1(outer2_2[7]).dispatch(obj2);
nextPromise = items;
const obj5 = outer2_1(outer2_2[7]);
}
return nextPromise;
}
})();
iter.next();
return iter;
}
({ Endpoints: closure_6, PlatformTypes } = ME);
const re8 = /https:\/\/static-cdn\.jtvnw\.net\/previews-ttv\/live_user_(.+)-\{width\}x\{height\}.jpg/;
const re9 = /https:\/\/i\.ytimg\.com\/vi\/([a-zA-Z0-9_-]+)\/hqdefault_live\.jpg/;
let obj = {
deserialize(arg0) {
return "" + "https://i.scdn.co/image/" + encodeURIComponent(arg0);
},
serialize(arg0) {
return arg0.split("https://i.scdn.co/image/")[1];
}
};
obj = {
deserialize(arg0, arg1) {
return "https://static-cdn.jtvnw.net/previews-ttv/live_user_" + encodeURIComponent(arg0) + "-" + arg1[0] + "x" + arg1[1] + ".jpg";
},
serialize(str) {
const match = str.match(closure_8);
let tmp2 = null;
if (null != match) {
tmp2 = match[1];
}
return tmp2;
}
};
obj = {
deserialize(arg0) {
return "https://i.ytimg.com/vi/" + encodeURIComponent(arg0) + "/hqdefault_live.jpg";
},
serialize(str) {
const match = str.match(closure_9);
let tmp2 = null;
if (null != match) {
tmp2 = match[1];
}
return tmp2;
}
};
let closure_10 = {
[PlatformTypes.SPOTIFY]: obj,
[PlatformTypes.TWITCH]: obj,
[PlatformTypes.YOUTUBE]: obj,
["mp"]: {
deserialize(str) {
importDefault(44)(null != window.GLOBAL_ENV.MEDIA_PROXY_ENDPOINT, "MEDIA_PROXY_ENDPOINT not configured");
const uRL = new URL(str, location.protocol + window.GLOBAL_ENV.MEDIA_PROXY_ENDPOINT);
const formatted = str.toLowerCase();
const endsWithResult = formatted.endsWith(".gif");
const formatted1 = str.toLowerCase();
const formatted2 = str.toLowerCase();
const endsWithResult2 = formatted2.endsWith(".avif");
let tmp6 = endsWithResult;
if (!endsWithResult) {
tmp6 = endsWithResult2;
}
if (tmp6) {
const searchParams = str.searchParams;
const result = searchParams.set("format", "webp");
}
let tmp9 = endsWithResult;
if (!endsWithResult) {
tmp9 = endsWithResult1;
}
let tmp10 = tmp9;
if (!tmp9) {
tmp10 = endsWithResult2;
}
if (tmp10) {
const searchParams2 = str.searchParams;
const result1 = searchParams2.set("animated", "true");
}
return uRL.toString();
},
serialize(arg0) {
return arg0;
}
}
};
const map = new Map();
let result = require("_isNativeReflectConstruct").fileFinishedImporting("utils/ApplicationAssetUtils.tsx");
export { getAssetFromImageURL };
export const getAssetImage = function getAssetImage(application_id, media_assets_large_image, items, applicationId) {
let str = applicationId;
let tmp;
if (applicationId === undefined) {
str = "png";
}
if (null != media_assets_large_image) {
if (media_assets_large_image.includes(":")) {
const tmp23 = callback(media_assets_large_image.split(":"), 2);
const first = tmp23[0];
if (first === PlatformTypes.TWITCH) {
if (null != items) {
if ("number" !== typeof items) {
const deserializeResult = dependencyMap[PlatformTypes.TWITCH].deserialize(tmp25, items);
const obj4 = dependencyMap[PlatformTypes.TWITCH];
}
}
let tmp36 = importDefault(3);
const prototype = tmp36.prototype;
tmp36 = new tmp36("ApplicationAssetUtils");
tmp = tmp36;
tmp36.warn("getAssetImage: size must === [number, number] for Twitch");
} else {
const _Object = Object;
let deserializeResult1;
if (hasOwnProperty.call(dependencyMap, first)) {
deserializeResult1 = dependencyMap[first].deserialize(tmp25);
const obj3 = dependencyMap[first];
}
return deserializeResult1;
}
}
}
if (null != application_id) {
if (null != media_assets_large_image) {
const _Array = Array;
let applyResult = items;
if (Array.isArray(items)) {
const _Math = Math;
items = [];
HermesBuiltin.arraySpread(items, 0);
const _Math2 = Math;
applyResult = HermesBuiltin.apply(items, Math);
}
let str5 = "";
if ("number" === typeof applyResult) {
const _HermesInternal = HermesInternal;
str5 = "?size=" + require(1426) /* isAttachmentLadderEnabled */.getBestMediaProxySize(applyResult);
const obj = require(1426) /* isAttachmentLadderEnabled */;
}
const _window = window;
if (null != window.GLOBAL_ENV.CDN_HOST) {
const _location = location;
const _window2 = window;
const _HermesInternal3 = HermesInternal;
let combined = "" + location.protocol + "//" + window.GLOBAL_ENV.CDN_HOST + "/app-assets/" + application_id + "/" + media_assets_large_image + "." + str + str5;
} else {
const _HermesInternal2 = HermesInternal;
combined = "" + require(507) /* _isNativeReflectConstruct */.getAPIBaseURL() + "/applications/" + application_id + "/app-assets/" + media_assets_large_image + "." + str + str5;
const obj2 = require(507) /* _isNativeReflectConstruct */;
}
return combined;
}
}
return tmp;
};
export { getAssets };
export { fetchAssetIds };
export const getAssetIds = function getAssetIds(id, closure_10) {
const items = [];
if (updateUrlAssetIds(closure_10, items)) {
return items;
} else {
const applicationAssets = store.getApplicationAssets(id);
let assets;
if (null != applicationAssets) {
assets = applicationAssets.assets;
}
if (null != assets) {
updateNonUrlAssetIds(closure_10, items, assets);
}
return items;
}
};