decord/source/modules/harvester/HarvesterUtils.tsx

88 lines
2.9 KiB
TypeScript
Raw Normal View History

2026-08-05 07:35:12 +00:00
// Module ID: 13983
// Function ID: 13984
2026-07-20 16:05:17 +00:00
// Name: harvestDisabled
2026-08-05 07:35:12 +00:00
// Dependencies: [32, 19, 1874, 12848, 13984, 589, 2]
2026-07-20 16:05:17 +00:00
// Exports: harvestDisabled, useRequestHarvestStatus
2026-08-05 07:35:12 +00:00
// Module 13983 (harvestDisabled)
2026-07-23 10:11:24 +00:00
import _slicedToArray from "_slicedToArray";
2026-07-29 08:29:29 +00:00
import noop from "noop";
import mergeGuildAvatar from "mergeGuildAvatar";
import harvestType from "harvestType";
2026-07-23 10:11:24 +00:00
import { REQUEST_DATA_LIMIT_MS } from "REQUEST_DATA_LIMIT_DAYS";
const require = arg1;
2026-07-29 08:29:29 +00:00
const result = require("mergeGuildAvatar").fileFinishedImporting("modules/harvester/HarvesterUtils.tsx");
2026-07-20 16:05:17 +00:00
export const harvestDisabled = function harvestDisabled(created_at, stateFromStores) {
2026-07-29 08:29:29 +00:00
const verified = stateFromStores.verified;
let tmp = !verified;
if (verified) {
let isStaffResult = stateFromStores.isStaff();
if (!isStaffResult) {
2026-07-20 16:05:17 +00:00
let tmp5 = null != created_at;
if (tmp5) {
const _Date = Date;
const _Date2 = Date;
const timestamp = Date.now();
const date = new Date(created_at.created_at);
tmp5 = REQUEST_DATA_LIMIT_MS > timestamp - date.getTime();
}
2026-07-29 08:29:29 +00:00
isStaffResult = tmp5;
2026-07-20 16:05:17 +00:00
}
2026-07-29 08:29:29 +00:00
tmp = isStaffResult;
2026-07-20 16:05:17 +00:00
}
return tmp;
};
export const useRequestHarvestStatus = function useRequestHarvestStatus() {
2026-07-29 08:29:29 +00:00
let require;
let tmp3;
let obj = require(589) /* initialize */;
const items = [mergeGuildAvatar];
const stateFromStores = obj.useStateFromStores(items, () => currentUser.getCurrentUser());
const items1 = [harvestType];
const stateFromStores1 = require(589) /* initialize */.useStateFromStores(items1, () => harvestType.harvestType);
const obj3 = require(589) /* initialize */;
[tmp3, require] = callback(React.useState(() => Date.now()), 2);
let sum = tmp3;
2026-07-20 16:05:17 +00:00
if (null != stateFromStores1) {
const _Date = Date;
const date = new Date(stateFromStores1.created_at);
sum = date.getTime() + REQUEST_DATA_LIMIT_MS;
}
const dependencyMap = sum;
2026-07-29 08:29:29 +00:00
callback = obj4.useRef(null);
2026-07-20 16:05:17 +00:00
const items2 = [sum];
2026-07-29 08:29:29 +00:00
const effect = obj4.useEffect(() => {
2026-07-23 10:11:24 +00:00
const diff = closure_1 - Date.now();
2026-07-20 16:05:17 +00:00
if (diff > 0) {
const _setTimeout = setTimeout;
const _clearTimeout = clearTimeout;
2026-07-29 08:29:29 +00:00
const timerId = setTimeout(() => callback(Date.now()), diff);
2026-07-20 16:05:17 +00:00
clearTimeout(ref.current);
ref.current = timerId;
}
2026-07-29 08:29:29 +00:00
return () => clearTimeout(ref.current);
2026-07-20 16:05:17 +00:00
}, items2);
2026-07-29 08:29:29 +00:00
let verified;
if (stateFromStores != null) {
verified = stateFromStores.verified;
}
if (verified) {
if (stateFromStores.isStaff()) {
obj = { allowed: false, reason: "staff" };
} else if (null == stateFromStores1) {
obj = { allowed: true };
} else if (sum > tmp3) {
obj = { allowed: false, reason: "rate_limited", nextAllowed: null };
const _Date2 = Date;
const date1 = new Date(sum);
obj[2] = date1;
} else {
obj = { allowed: true };
2026-07-20 16:05:17 +00:00
}
2026-07-29 08:29:29 +00:00
} else {
return { allowed: false, reason: "not_verified" };
2026-07-20 16:05:17 +00:00
}
};