瀏覽代碼

Fix: fetch Telegram Backup IP on demand

SukkaW 3 月之前
父節點
當前提交
96891aa078
共有 3 個文件被更改,包括 5 次插入4 次删除
  1. 1 1
      Build/build-sspanel-appprofile.ts
  2. 1 1
      Build/build-telegram-cidr.ts
  3. 3 2
      Build/lib/get-telegram-backup-ip.ts

+ 1 - 1
Build/build-sspanel-appprofile.ts

@@ -75,7 +75,7 @@ export const buildSSPanelUIMAppProfile = task(require.main === module, __filenam
     // domestic - ip cidr
     getChnCidrPromise(),
     // global - ip cidr
-    getTelegramCIDRPromise,
+    getTelegramCIDRPromise(),
     // lan - ip cidr
     readFileIntoProcessedArray(path.join(OUTPUT_SURGE_DIR, 'ip/lan.conf'))
   ] as const);

+ 1 - 1
Build/build-telegram-cidr.ts

@@ -5,7 +5,7 @@ import { RulesetOutput } from './lib/rules/ruleset';
 import { getTelegramCIDRPromise } from './lib/get-telegram-backup-ip';
 
 export const buildTelegramCIDR = task(require.main === module, __filename)(async (span) => {
-  const { timestamp, ipcidr, ipcidr6 } = await span.traceChildPromise('get telegram cidr', getTelegramCIDRPromise);
+  const { timestamp, ipcidr, ipcidr6 } = await span.traceChildAsync('get telegram cidr', getTelegramCIDRPromise);
 
   if (ipcidr.length + ipcidr6.length === 0) {
     throw new Error('Failed to fetch data!');

+ 3 - 2
Build/lib/get-telegram-backup-ip.ts

@@ -9,6 +9,7 @@ import { base64ToUint8Array, concatUint8Arrays } from 'foxts/uint8array-utils';
 
 import Worktank from 'worktank';
 import { wait } from 'foxts/wait';
+import { once } from 'foxts/once';
 
 const mtptoto_public_rsa = `-----BEGIN RSA PUBLIC KEY-----
 MIIBCgKCAQEAyr+18Rex2ohtVy8sroGP
@@ -257,7 +258,7 @@ const pool = new Worktank({
   }
 });
 
-export const getTelegramCIDRPromise = wait(0).then(() => pool.exec(
+export const getTelegramCIDRPromise = once(() => wait(0).then(() => pool.exec(
   'getTelegramBackupIPs',
   [__filename]
-)).finally(() => pool.terminate());
+)).finally(() => pool.terminate()), false);