is-a.bot

Grab your own sweet-looking .i...
Log | Files | Refs | Activity | README | LICENSE

root / dnsconfig.js

dnsconfig.js (4712B)


      1 var domainName = "is-a.bot";
      2 var registrar = NewRegistrar("none");
      3 var dnsProvider = DnsProvider(NewDnsProvider("cloudflare"));
      4 
      5 function getDomainsList(filesPath) {
      6     var result = [];
      7     var files = glob.apply(null, [filesPath, true, ".json"]);
      8 
      9     for (var i = 0; i < files.length; i++) {
     10         var name = files[i]
     11             .split("/")
     12             .pop()
     13             .replace(/\.json$/, "");
     14 
     15         result.push({ name: name, data: require(files[i]) });
     16     }
     17 
     18     return result;
     19 }
     20 
     21 var domains = getDomainsList("./domains");
     22 var records = [];
     23 
     24 for (var subdomain in domains) {
     25     var subdomainName = domains[subdomain].name;
     26     var data = domains[subdomain].data;
     27     var proxyState = data.proxied ? CF_PROXY_ON : CF_PROXY_OFF;
     28 
     29     // Handle A records
     30     if (data.records.A) {
     31         for (var a in data.records.A) {
     32             records.push(A(subdomainName, IP(data.records.A[a]), proxyState));
     33         }
     34     }
     35 
     36     // Handle AAAA records
     37     if (data.records.AAAA) {
     38         for (var aaaa in data.records.AAAA) {
     39             records.push(AAAA(subdomainName, data.records.AAAA[aaaa], proxyState));
     40         }
     41     }
     42 
     43     // Handle CAA records
     44     if (data.records.CAA) {
     45         for (var caa in data.records.CAA) {
     46             var caaRecord = data.records.CAA[caa];
     47             records.push(CAA(subdomainName, caaRecord.tag, caaRecord.value));
     48         }
     49     }
     50 
     51     // Handle CNAME records
     52     if (data.records.CNAME) {
     53         records.push(ALIAS(subdomainName, data.records.CNAME + ".", proxyState));
     54     }
     55 
     56     // Handle DS records
     57     if (data.records.DS) {
     58         for (var ds in data.records.DS) {
     59             var dsRecord = data.records.DS[ds];
     60             records.push(
     61                 DS(subdomainName, dsRecord.key_tag, dsRecord.algorithm, dsRecord.digest_type, dsRecord.digest)
     62             );
     63         }
     64     }
     65 
     66     // Handle MX records
     67     if (data.records.MX) {
     68         for (var mx in data.records.MX) {
     69             var mxRecord = data.records.MX[mx];
     70 
     71             if (typeof mxRecord === "string") {
     72                 records.push(
     73                     MX(subdomainName, 10 + parseInt(mx), data.records.MX[mx] + ".")
     74                 );
     75             } else {
     76                 records.push(
     77                     MX(
     78                         subdomainName,
     79                         parseInt(mxRecord.priority),
     80                         mxRecord.target + "."
     81                     )
     82                 );
     83             }
     84         }
     85     }
     86 
     87     // Handle NS records
     88     if (data.records.NS) {
     89         for (var ns in data.records.NS) {
     90             records.push(NS(subdomainName, data.records.NS[ns] + "."));
     91         }
     92     }
     93 
     94     // Handle SRV records
     95     if (data.records.SRV) {
     96         for (var srv in data.records.SRV) {
     97             var srvRecord = data.records.SRV[srv];
     98             records.push(
     99                 SRV(subdomainName, srvRecord.priority, srvRecord.weight, srvRecord.port, srvRecord.target + ".")
    100             );
    101         }
    102     }
    103 
    104     // Handle TLSA records
    105     if (data.records.TLSA) {
    106         for (var tlsa in data.records.TLSA) {
    107             var tlsaRecord = data.records.TLSA[tlsa];
    108 
    109             records.push(
    110                 TLSA(
    111                     subdomainName,
    112                     tlsaRecord.usage,
    113                     tlsaRecord.selector,
    114                     tlsaRecord.matching_type,
    115                     tlsaRecord.certificate
    116                 )
    117             );
    118         }
    119     }
    120 
    121     // Handle TXT records
    122     if (data.records.TXT) {
    123         if (Array.isArray(data.records.TXT)) {
    124             for (var txt in data.records.TXT) {
    125                 records.push(TXT(subdomainName, data.records.TXT[txt].length <= 255 ? "\"" + data.records.TXT[txt] + "\"" : data.records.TXT[txt]));
    126             }
    127         } else {
    128             records.push(TXT(subdomainName, data.records.TXT.length <= 255 ? "\"" + data.records.TXT + "\"" : data.records.TXT));
    129         }
    130     }
    131 
    132     // Handle URL records
    133     if (data.records.URL) {
    134         records.push(A(subdomainName, IP("192.0.2.1"), CF_PROXY_ON));
    135     }
    136 }
    137 
    138 // Zone last updated TXT record
    139 records.push(TXT("_zone-updated", "\"" + Date.now().toString() + "\""));
    140 
    141 var ignored = [
    142     IGNORE("\\*", "A"),
    143     IGNORE("*._domainkey", "TXT"),
    144     IGNORE("@", "*"),
    145     IGNORE("_acme-challenge", "TXT"),
    146     IGNORE("_dmarc", "TXT"),
    147     IGNORE("_gh-free-domains-o", "TXT"),
    148     IGNORE("_gh-free-domains-o.**", "TXT"),
    149     IGNORE("_github-pages-challenge-free-domains", "TXT"),
    150     IGNORE("_github-pages-challenge-free-domains.**", "TXT"),
    151     IGNORE("_psl", "TXT")
    152 ];
    153 
    154 var internal = require("./util/internal.json");
    155 
    156 internal.forEach(function(subdomain) {
    157     ignored.push(IGNORE(subdomain, "*"));
    158 });
    159 
    160 D(domainName, registrar, dnsProvider, records, ignored);
© notamitgamer • Site Built: 2026-09-05 01:53:16 UTC • git-mirror commit: c170d72 [view raw info]
Originally created with stagit • modified by notamitgamer
Forked from github.com/notamitgamer/git-mirror