Compare commits
3 Commits
66f23e6494
...
main
Author | SHA1 | Date | |
---|---|---|---|
4742f78545 | |||
3f08296e7c | |||
6813edbb0a |
6
index.js
6
index.js
@ -6,7 +6,7 @@ app.use(express.json());
|
|||||||
const port = process.env.PORT || 3000;
|
const port = process.env.PORT || 3000;
|
||||||
const limiter = rateLimit({
|
const limiter = rateLimit({
|
||||||
windowMs: 60 * 1000, // 1 minute
|
windowMs: 60 * 1000, // 1 minute
|
||||||
limit: 50, // Limit each IP to 50 requests per `window` (here, per 1 minute).
|
limit: 60, // Limit each IP to 50 requests per `window` (here, per 1 minute).
|
||||||
standardHeaders: 'draft-8', // draft-6: `RateLimit-*` headers; draft-7 & draft-8: combined `RateLimit` header
|
standardHeaders: 'draft-8', // draft-6: `RateLimit-*` headers; draft-7 & draft-8: combined `RateLimit` header
|
||||||
legacyHeaders: false, // Disable the `X-RateLimit-*` headers.
|
legacyHeaders: false, // Disable the `X-RateLimit-*` headers.
|
||||||
ipv6Subnet: 56, // Set to 60 or 64 to be less aggressive, or 52 or 48 to be more aggressive
|
ipv6Subnet: 56, // Set to 60 or 64 to be less aggressive, or 52 or 48 to be more aggressive
|
||||||
@ -14,7 +14,7 @@ const limiter = rateLimit({
|
|||||||
app.use(limiter);
|
app.use(limiter);
|
||||||
|
|
||||||
app.use("/", express.static("./public", { extensions: ["html"] }));
|
app.use("/", express.static("./public", { extensions: ["html"] }));
|
||||||
|
mkdir("./data", ()=>{});
|
||||||
app.use("/new", async (req, res) => {
|
app.use("/new", async (req, res) => {
|
||||||
let uuid = crypto.randomUUID();
|
let uuid = crypto.randomUUID();
|
||||||
mkdir("./data/" + uuid, ()=>{});
|
mkdir("./data/" + uuid, ()=>{});
|
||||||
@ -35,7 +35,7 @@ app.use("/solved", async (req, res) => {
|
|||||||
res.send(readdirSync("./data").length);
|
res.send(readdirSync("./data").length);
|
||||||
});
|
});
|
||||||
app.post("/solve", async (req, res) => {
|
app.post("/solve", async (req, res) => {
|
||||||
let file = "./data/" + req.body.uuid + "/image.png";
|
let file = Bun.file("./data/" + req.body.uuid + "/image.png");
|
||||||
if(await file.exists() && (req.body.answer.length == 4 || req.body.answer.length == 5)) {
|
if(await file.exists() && (req.body.answer.length == 4 || req.body.answer.length == 5)) {
|
||||||
await Bun.write("./data/" + req.body.uuid + "/answer.txt", req.body.answer);
|
await Bun.write("./data/" + req.body.uuid + "/answer.txt", req.body.answer);
|
||||||
}
|
}
|
||||||
|
@ -49,6 +49,7 @@
|
|||||||
captchaUUID = await (await fetch("/new")).text();
|
captchaUUID = await (await fetch("/new")).text();
|
||||||
document.getElementById("captcha").src = "/image/" + captchaUUID;
|
document.getElementById("captcha").src = "/image/" + captchaUUID;
|
||||||
document.getElementById("solved").value = "";
|
document.getElementById("solved").value = "";
|
||||||
|
document.getElementById("solvedNum").innerText = `solved: ${await (await fetch("/solved")).text()}`
|
||||||
}
|
}
|
||||||
async function submit() {
|
async function submit() {
|
||||||
await fetch('/solve', {
|
await fetch('/solve', {
|
||||||
@ -69,5 +70,6 @@
|
|||||||
<input type="text" id="solved" placeholder="solve the captcha above..">
|
<input type="text" id="solved" placeholder="solve the captcha above..">
|
||||||
<button onclick="submit()">submit</button>
|
<button onclick="submit()">submit</button>
|
||||||
</div>
|
</div>
|
||||||
|
<p id="solvedNum">solved: -</p>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
Reference in New Issue
Block a user