mirror of
https://github.com/tiennm99/is-amazing.git
synced 2026-10-11 08:59:58 +00:00
125 lines
3.7 KiB
JavaScript
125 lines
3.7 KiB
JavaScript
|
|
const express = require('express')
|
|
const app = express()
|
|
const PORT = 3000
|
|
const axios = require("axios")
|
|
const fs = require("fs")
|
|
const jsonFormat = require("json-format");
|
|
app.listen(PORT, () => console.log(`Coffee ready at ${PORT}, Caffeine ftw`))
|
|
require('dotenv').config();
|
|
|
|
|
|
|
|
|
|
app.get("/check/:subdomain", async (req, res) => {
|
|
|
|
|
|
const response = await axios.get(`https://api.cloudflare.com/client/v4/zones/d76cdc117a7173dd501a5f212176c203/dns_records?type=CNAME&name=${req.params.subdomain}.is-really.cool`, {
|
|
headers: {
|
|
'X-Auth-Email': 'leejoab75@gmail.com',
|
|
'X-Auth-Key': process.env.API_KEY,
|
|
'Content-Type': 'application/json'
|
|
}
|
|
});
|
|
|
|
|
|
|
|
|
|
if (response.data.result.length === 0) {
|
|
res.send("available")
|
|
|
|
} else {
|
|
res.send("unavailable")
|
|
|
|
}
|
|
})
|
|
|
|
|
|
app.get("/addnew", async (req, res) => {
|
|
|
|
|
|
|
|
fs.promises.readdir("./domains").then(filenames => {
|
|
|
|
const prefinal = JSON.stringify(filenames)
|
|
const final = prefinal.replaceAll(".json", "");
|
|
const finalreal = JSON.parse(final)
|
|
|
|
})
|
|
|
|
|
|
fs.promises.readdir("./domains")
|
|
.then(async filenames => {
|
|
|
|
|
|
|
|
const prefinal = JSON.stringify(filenames)
|
|
const final = prefinal.replaceAll(".json", "");
|
|
const finalreal = JSON.parse(final)
|
|
|
|
|
|
fs.writeFile('./domains.json',jsonFormat(finalreal),function(err){
|
|
if(err) console.log("error:" + err);
|
|
|
|
})
|
|
|
|
for (let filename of filenames) {
|
|
|
|
const finalname = filename.replaceAll(".json","");
|
|
|
|
const response = await axios.get(`https://api.is-really.cool/check/${finalname}`).then((response) => {
|
|
|
|
if (response.data == "unavailable"){
|
|
console.log(`${finalname}.is-really.cool is already present.`)
|
|
} else if (response.data == "available"){
|
|
const prefinal = JSON.stringify(filename)
|
|
const final = prefinal.replaceAll(".json", "");
|
|
const realfinal = final.replaceAll('"', '')
|
|
|
|
const filedata = fs.promises.readFile(`./domains/${filename}`)
|
|
.then(async function(result) {
|
|
const newres = JSON.parse(result)
|
|
|
|
const realresult = newres.url
|
|
const response = await axios.post(
|
|
'https://api.cloudflare.com/client/v4/zones/d76cdc117a7173dd501a5f212176c203/dns_records',
|
|
{
|
|
'type': 'CNAME',
|
|
'name': realfinal,
|
|
'content': realresult,
|
|
'ttl': 1,
|
|
'priority': 10,
|
|
'proxied': true
|
|
},
|
|
{
|
|
headers: {
|
|
'X-Auth-Email': 'leejoab75@gmail.com',
|
|
'X-Auth-Key': process.env.API_KEY,
|
|
'Content-Type': 'application/json'
|
|
}
|
|
}
|
|
);
|
|
|
|
|
|
if(response.data.success == true){
|
|
console.log(`${finalname}.is-really.cool has been successfully added!`)
|
|
|
|
}
|
|
})
|
|
}
|
|
})
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
})
|
|
res.sendStatus(200);
|
|
})
|
|
|
|
|
|
|
|
// export 'app'
|
|
module.exports = app
|