mirror of
https://github.com/PR0M3TH3AN/bitvid.git
synced 2026-03-09 04:13:45 +00:00
40 lines
943 B
JavaScript
40 lines
943 B
JavaScript
import { WSS_TRACKERS as DEFAULT_WSS_TRACKERS } from "./constants.js";
|
|
|
|
export const TRACKER_TIMEOUT_MS = 3000;
|
|
export const TRACKER_PER_MAGNET = 3;
|
|
export const HEALTH_TTL_MS = 2 * 60 * 1000;
|
|
export const CONCURRENCY = 3;
|
|
export const TRACKER_ERROR_COOLDOWN_MS = 60 * 1000;
|
|
|
|
export function resolveTrackerList({ magnetTrackers } = {}) {
|
|
const combined = [];
|
|
const seen = new Set();
|
|
|
|
const pushUnique = (url) => {
|
|
if (typeof url !== "string") {
|
|
return;
|
|
}
|
|
const trimmed = url.trim();
|
|
if (!trimmed) {
|
|
return;
|
|
}
|
|
if (!/^wss:\/\//i.test(trimmed)) {
|
|
return;
|
|
}
|
|
const normalized = trimmed.toLowerCase();
|
|
if (seen.has(normalized)) {
|
|
return;
|
|
}
|
|
seen.add(normalized);
|
|
combined.push(trimmed);
|
|
};
|
|
|
|
if (Array.isArray(magnetTrackers)) {
|
|
magnetTrackers.forEach(pushUnique);
|
|
}
|
|
|
|
DEFAULT_WSS_TRACKERS.forEach(pushUnique);
|
|
|
|
return combined.slice(0, TRACKER_PER_MAGNET);
|
|
}
|