mirror of
https://github.com/SukkaW/Surge.git
synced 2025-12-21 05:40:29 +08:00
69 lines
3.4 KiB
JavaScript
69 lines
3.4 KiB
JavaScript
'use strict';Object.defineProperty(exports,Symbol.toStringTag,{value:'Module'});const buildTelegramCidr=require('../_virtual/build-telegram-cidr.cjs'),fetchTextByLine=require('./lib/fetch-text-by-line.cjs'),index=require('./trace/index.cjs'),description=require('./constants/description.cjs'),memoPromise=require('./lib/memo-promise.cjs'),ruleset=require('./lib/rules/ruleset.cjs'),fetchRetry=require('./lib/fetch-retry.cjs'),misc=require('./lib/misc.cjs');var hasRequiredBuildTelegramCidr;
|
|
|
|
function requireBuildTelegramCidr () {
|
|
if (hasRequiredBuildTelegramCidr) return buildTelegramCidr.__module.exports;
|
|
hasRequiredBuildTelegramCidr = 1;
|
|
(function (module, exports) {
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
function _export(target, all) {
|
|
for(var name in all)Object.defineProperty(target, name, {
|
|
enumerable: true,
|
|
get: all[name]
|
|
});
|
|
}
|
|
_export(exports, {
|
|
buildTelegramCIDR: function() {
|
|
return buildTelegramCIDR;
|
|
},
|
|
getTelegramCIDRPromise: function() {
|
|
return getTelegramCIDRPromise;
|
|
}
|
|
});
|
|
const _fetchtextbyline = /*@__PURE__*/ fetchTextByLine.__require();
|
|
const _trace = /*@__PURE__*/ index.__require();
|
|
const _description = /*@__PURE__*/ description.__require();
|
|
const _memopromise = /*@__PURE__*/ memoPromise.__require();
|
|
const _ruleset = /*@__PURE__*/ ruleset.__require();
|
|
const _fetchretry = /*@__PURE__*/ fetchRetry.__require();
|
|
const _misc = /*@__PURE__*/ misc.__require();
|
|
const getTelegramCIDRPromise = (0, _memopromise.createMemoizedPromise)(async ()=>{
|
|
const resp = await (0, _fetchretry.$$fetch)('https://core.telegram.org/resources/cidr.txt');
|
|
const lastModified = resp.headers.get('last-modified');
|
|
const date = lastModified ? new Date(lastModified) : new Date();
|
|
const ipcidr = [
|
|
// Telegram secret backup CIDR, announced by AS62041
|
|
// see also https://github.com/Telegram-FOSS-Team/Telegram-FOSS/blob/10da5406ed92d30c6add3b25d40b2b3b6995d873/TMessagesProj/src/main/java/org/telegram/tgnet/ConnectionsManager.java#L1157
|
|
'95.161.64.0/20'
|
|
];
|
|
const ipcidr6 = [];
|
|
for await (const cidr of (0, _fetchtextbyline.createReadlineInterfaceFromResponse)(resp, true)){
|
|
const v = (0, _misc.fastIpVersion)(cidr);
|
|
if (v === 4) {
|
|
ipcidr.push(cidr);
|
|
} else if (v === 6) {
|
|
ipcidr6.push(cidr);
|
|
}
|
|
}
|
|
return {
|
|
date,
|
|
ipcidr,
|
|
ipcidr6
|
|
};
|
|
});
|
|
const buildTelegramCIDR = (0, _trace.task)(require.main === module, __filename)(async (span)=>{
|
|
const { date, ipcidr, ipcidr6 } = await span.traceChildAsync('get telegram cidr', getTelegramCIDRPromise);
|
|
if (ipcidr.length + ipcidr6.length === 0) {
|
|
throw new Error('Failed to fetch data!');
|
|
}
|
|
const description = [
|
|
..._description.SHARED_DESCRIPTION,
|
|
'Data from:',
|
|
' - https://core.telegram.org/resources/cidr.txt'
|
|
];
|
|
return new _ruleset.RulesetOutput(span, 'telegram', 'ip').withTitle('Sukka\'s Ruleset - Telegram IP CIDR').withDescription(description).withDate(date).bulkAddCIDR4NoResolve(ipcidr).bulkAddCIDR6NoResolve(ipcidr6).write();
|
|
});
|
|
} (buildTelegramCidr.__module, buildTelegramCidr.__module.exports));
|
|
return buildTelegramCidr.__module.exports;
|
|
}exports.__require=requireBuildTelegramCidr; |