build-apple-cdn.ts 1.0 KB

123456789101112131415161718192021222324
  1. import { parseFelixDnsmasqFromResp } from './lib/parse-dnsmasq';
  2. import { task } from './trace';
  3. import { SHARED_DESCRIPTION } from './constants/description';
  4. import { DomainsetOutput } from './lib/rules/domainset';
  5. import { $$fetch } from './lib/fetch-retry';
  6. const getAppleCdnDomainsPromise = $$fetch('https://raw.githubusercontent.com/felixonmars/dnsmasq-china-list/master/apple.china.conf').then(parseFelixDnsmasqFromResp);
  7. export const buildAppleCdn = task(require.main === module, __filename)(async (span) => {
  8. const res: string[] = await span.traceChildPromise('get apple cdn domains', getAppleCdnDomainsPromise);
  9. return new DomainsetOutput(span, 'apple_cdn')
  10. .withTitle('Sukka\'s Ruleset - Apple CDN')
  11. .appendDescription(SHARED_DESCRIPTION)
  12. .appendDescription(
  13. '',
  14. 'This file contains Apple\'s domains using their China mainland CDN servers.',
  15. '',
  16. 'Data from:',
  17. ' - https://github.com/felixonmars/dnsmasq-china-list'
  18. )
  19. .bulkAddDomainSuffix(res)
  20. .write();
  21. });