mirror of
https://github.com/SukkaW/Surge.git
synced 2025-12-21 13:50:29 +08:00
69 lines
3.2 KiB
JavaScript
69 lines
3.2 KiB
JavaScript
'use strict';const fetchTextByLine=require('./fetch-text-by-line.YY5b5610.cjs'),index=require('./index.B8Uk9n3v.cjs'),base=require('./base.C13YY5P3.cjs'),memoPromise=require('./memo-promise.BbOsVeGo.cjs'),ruleset=require('./ruleset.iYH0XOC1.cjs'),fetchRetry=require('./fetch-retry.D06uBUaW.cjs'),misc=require('./misc.BpcQjda1.cjs');var buildTelegramCidr = {exports: {}};var hasRequiredBuildTelegramCidr;
|
|
|
|
function requireBuildTelegramCidr () {
|
|
if (hasRequiredBuildTelegramCidr) return buildTelegramCidr.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.a();
|
|
const _trace = /*@__PURE__*/ index.r();
|
|
const _description = /*@__PURE__*/ base.r();
|
|
const _memopromise = /*@__PURE__*/ memoPromise.r();
|
|
const _ruleset = /*@__PURE__*/ ruleset.r();
|
|
const _fetchretry = /*@__PURE__*/ fetchRetry.r();
|
|
const _misc = /*@__PURE__*/ misc.r();
|
|
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, buildTelegramCidr.exports));
|
|
return buildTelegramCidr.exports;
|
|
}exports.r=requireBuildTelegramCidr; |