build-apple-cdn.ts 1.0 KB

12345678910111213141516171819202122232425
  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. .whitelistDomain('apps.apple.com')
  21. .write();
  22. });