(list, type)
| 100 | } |
| 101 | |
| 102 | function formatRules(list, type) { |
| 103 | return (list || '').replace(/\r|\ |(\/\/|#|;).*/g, '').split('\n').map((v) => { |
| 104 | if (v.startsWith('DOMAIN,')) { return type ? v.split(",")[1] : v } |
| 105 | if (v.startsWith('DOMAIN-SUFFIX,')) { return type ? `.${v.split(",")[1]}` : v } |
| 106 | if (v.startsWith('.')) { return type ? v : `DOMAIN-SUFFIX,${v.slice(1)}` } |
| 107 | if (v.includes('.')) { return type ? v : `DOMAIN,${v}` } |
| 108 | }).filter((v) => v); |
| 109 | } |
| 110 | |
| 111 | async function eTLD(content = {}) { |
| 112 | if (!content.update_time || (Date.now() - content.update_time > 86400000 * 30)) { |
no outgoing calls
no test coverage detected