国内外BT tracker列表集合

27 天前(已编辑)
15

国内外BT tracker列表集合

用 cloudflare works搓了一个从url拉取 tracker


源码:

export default {
  async fetch(request, env) {
    const CACHE_KEY = "bt-trackers";
    const CACHE_TTL = 600; // 缓存

    const url = new URL(request.url);
    const wantAria2 = url.searchParams.has("aria2");

    const cached = await env.TRACKERS.get(CACHE_KEY);
    if (cached) {
      return respond(cached, wantAria2);
    }

    // 来源列表
    const sources = [
      "https://trackers.run/s/wp_ws_up_hp_hs_v4_v6.txt",
      "https://raw.githubusercontent.com/ngosang/trackerslist/master/trackers_all.txt",
      "https://gist.github.com/elysias123/b4596c804419a1b56a8d91dbf88cb775", // 我自己收集的
      "https://down.adysec.com/trackers_all.txt",
      "https://trackerslist.com/all.txt"
    ];

    const results = await Promise.all(
      sources.map(url =>
        fetch(url).then(r => r.text()).catch(() => "")
      )
    );

    let lines = [];

    for (let txt of results) {
      if (!txt) continue;

      try {
        const js = JSON.parse(txt);
        if (Array.isArray(js)) {
          lines.push(...js);
          continue;
        }
      } catch (_) {}

      lines.push(...txt.split(/[\n\r]+/));
    }

    lines = lines
      .map(l => l.trim())
      .filter(l => l.length > 0);

    const formatted = lines
      .filter(l =>
        l.startsWith("udp://") ||
        l.startsWith("http://") ||
        l.startsWith("https://") ||
        l.startsWith("wss://")
      )
      .filter(Boolean);

    const finalList = [...new Set(formatted)].sort();
    const output = finalList.join("\n");

    env.TRACKERS.put(CACHE_KEY, output, { expirationTtl: CACHE_TTL });

    return respond(output, wantAria2);
  }
};


function respond(listTxt, wantAria2) {
  if (!wantAria2) {
    return new Response(listTxt, {
      headers: { "content-type": "text/plain; charset=utf-8" }
    });
  }

  const aria2Value = "bt-tracker=" + listTxt.replace(/\n+/g, ",");
  return new Response(aria2Value, {
    headers: { "content-type": "text/plain; charset=utf-8" }
  });
}

使用社交账号登录

  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...