build-cdn-conf.js 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. const { fetchWithRetry } = require('./lib/fetch-retry');
  2. const fs = require('fs');
  3. const path = require('path');
  4. (async () => {
  5. console.time('Total Time - build-cdn-conf');
  6. const domains = (await (await fetchWithRetry('https://publicsuffix.org/list/public_suffix_list.dat')).text()).split('\n');
  7. const S3OSSDomains = domains.filter(line => {
  8. if (line) {
  9. return (
  10. line.startsWith('s3-')
  11. || line.startsWith('s3.')
  12. )
  13. && (
  14. line.endsWith('.amazonaws.com')
  15. || line.endsWith('.scw.cloud')
  16. )
  17. && !line.includes('cn-')
  18. }
  19. return false;
  20. })
  21. const filePath = path.resolve(__dirname, '../Source/non_ip/cdn.conf');
  22. const resultPath = path.resolve(__dirname, '../List/non_ip/cdn.conf');
  23. const content = (await fs.promises.readFile(filePath, 'utf-8'))
  24. .replace(
  25. '# --- [AWS S3 Replace Me] ---',
  26. S3OSSDomains.map(domain => `DOMAIN-SUFFIX,${domain}`).join('\n')
  27. );
  28. await fs.promises.writeFile(resultPath, content, 'utf-8');
  29. console.timeEnd('Total Time - build-cdn-conf');
  30. })();