Spaces:
Running
Running
const express = require("express"); | |
const cors = require("cors"); | |
const path = require("path"); | |
const fs = require("fs"); | |
require("dotenv").config(); | |
const bodyParser = require("body-parser"); | |
const apis = require("./fnc/apis"); | |
const downloadf = require("./fnc/download"); | |
const app = express(); | |
const port = process.env.PORT || 7860; | |
app.use(express.json({ | |
limit: "500mb" | |
})); | |
app.use(express.urlencoded({ | |
limit: "500mb", | |
extended: true | |
})); | |
app.use(cors()); | |
app.use(bodyParser.json()); | |
app.use(bodyParser.urlencoded({ | |
extended: true | |
})); | |
app.use("/cdn", express.static(path.join(__dirname, "cdn"))); | |
app.use("/tmp", express.static(path.join(__dirname, "tmp"))); | |
app.use(async (req, res, next) => { | |
const _req = Date.now() | |
const ip = req?.ip?.replace("::ffff:", "") || req?.ip; | |
req._ip = ip; | |
res.on("finish", () => { | |
const _end = Date.now(); | |
const total = _end - _req; | |
const _date = formatDate(new Date(_req)); | |
const date = `${_date.YYYY}-${_date.MM}-${_date.DD}`; | |
const time = `${_date.hh}:${_date.mm}:${_date.ss}`; | |
console.log( | |
"\x1b[36;1m[\x1b[32;1m" + req.method + "\x1b[36;1m]\x1b[0;0m\n", | |
"Path:", req.originalUrl + "\n", | |
"Host:", req.get("host") + "\n", | |
"Status: \x1b[33m" + res.statusCode + "\x1b[0;0m\n", | |
"Time:", total + "ms\n", | |
"Length:", res.getHeaders()["content-length"] + "\n", | |
"User-Agent:", req.get("user-agent") + "\n", | |
"IP:", ip + "\n", | |
"Date:", date + "\n", | |
"Time:", time | |
); | |
}); | |
next(); | |
}); | |
app.get("/", (req, res) => { | |
res.send({ status: 401, message: "You don't have access to this!"}) | |
}); | |
app.post("/api", apis); | |
app.get("/download", downloadf); | |
const apiStatusFile = path.join(__dirname, "/tmp","api.json"); | |
// Endpoint untuk membaca api.json | |
app.get("/api-checker", (req, res) => { | |
res.send(` | |
<html> | |
<head> | |
<meta http-equiv="refresh" content="3;url=https://fullpwerr-hutatools.hf.space/tmp/api.json" /> | |
</head> | |
<body> | |
</body> | |
</html> | |
`) | |
}) | |
let server | |
app.listen(port, () => { | |
console.log("listening on localhost:", port); | |
}) | |
function formatDate(date) { | |
const YYYY = String(date.getFullYear()); | |
const MM = String(date.getMonth() + 1).padStart(2, "0"); | |
const DD = String(date.getDate()).padStart(2, "0"); | |
const hh = String(date.getHours()).padStart(2, "0"); | |
const mm = String(date.getMinutes()).padStart(2, "0"); | |
const ss = String(date.getSeconds()).padStart(2, "0"); | |
return { | |
YYYY, | |
MM, | |
DD, | |
hh, | |
mm, | |
ss | |
} | |
} |