build-cdn-conf.js 901 B

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