mirror of
https://github.com/modelec/urlsh-qrcode.git
synced 2026-01-18 16:57:25 +01:00
random
This commit is contained in:
71
index.ts
71
index.ts
@@ -5,29 +5,64 @@ Bun.serve({
|
||||
port: Bun.env.PORT || 8080,
|
||||
async fetch(req) {
|
||||
const url = new URL(req.url);
|
||||
if (req.method === "POST" && url.pathname === "/admin") {
|
||||
if (req.body) {
|
||||
const { urlData, password } = await req.json() as { urlData: string, password: string };
|
||||
if (urlData && password === Bun.env.ADMIN_PASSWORD) {
|
||||
const u = await prisma.url.create({
|
||||
data: {
|
||||
url: urlData
|
||||
}
|
||||
})
|
||||
if (req.method === "POST") {
|
||||
if (url.pathname === "/admin") {
|
||||
if (req.body) {
|
||||
const { urlData, password } = await req.json() as { urlData: string, password: string };
|
||||
if (urlData && password === Bun.env.ADMIN_PASSWORD) {
|
||||
const u = await prisma.url.create({
|
||||
data: {
|
||||
url: urlData
|
||||
}
|
||||
})
|
||||
|
||||
return new Response(JSON.stringify({body: u}), {
|
||||
status: 200
|
||||
})
|
||||
return new Response(JSON.stringify({body: u}), {
|
||||
status: 200
|
||||
})
|
||||
}
|
||||
}
|
||||
} else if (url.pathname == "/admin/clear") {
|
||||
if (req.body) {
|
||||
const { password } = await req.json() as { password: string };
|
||||
if (password === Bun.env.ADMIN_PASSWORD) {
|
||||
await prisma.url.deleteMany();
|
||||
return new Response(JSON.stringify({body: "ok"}), {
|
||||
status: 200
|
||||
})
|
||||
}
|
||||
}
|
||||
} else if (url.pathname == "/admin/list") {
|
||||
if (req.body) {
|
||||
const {password} = await req.json() as { password: string };
|
||||
if (password === Bun.env.ADMIN_PASSWORD) {
|
||||
const urls = await prisma.url.findMany();
|
||||
return new Response(JSON.stringify({body: urls}), {
|
||||
status: 200
|
||||
})
|
||||
}
|
||||
}
|
||||
} else if (url.pathname == "/admin/remove") {
|
||||
if (req.body) {
|
||||
const { u, password } = await req.json() as { u: string, password: string };
|
||||
if (u && password === Bun.env.ADMIN_PASSWORD) {
|
||||
await prisma.url.deleteMany({
|
||||
where: {
|
||||
url: u
|
||||
}
|
||||
})
|
||||
return new Response(JSON.stringify({body: u}), {
|
||||
status: 200
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (req.method === "GET") {
|
||||
const urlRes = await prisma.url.findFirst({
|
||||
orderBy: {
|
||||
updatedAt: "desc"
|
||||
}
|
||||
});
|
||||
|
||||
// random
|
||||
const urls = await prisma.url.findMany();
|
||||
|
||||
const urlRes = urls[Math.floor(Math.random() * urls.length)];
|
||||
|
||||
if (urlRes) {
|
||||
return new Response(null, {
|
||||
status: 302,
|
||||
|
||||
51
noDb.ts
51
noDb.ts
@@ -1,18 +1,49 @@
|
||||
let urlToRedirect = "https://instagram.com/modelec_isen";
|
||||
let listOfUrl = ["https://instagram.com/modelec_isen"];
|
||||
|
||||
Bun.serve({
|
||||
port: Bun.env.PORT || 8080,
|
||||
async fetch(req) {
|
||||
const url = new URL(req.url);
|
||||
if (req.method === "POST" && url.pathname === "/admin") {
|
||||
if (req.body) {
|
||||
const { u, password } = await req.json() as { u: string, password: string };
|
||||
if (u && password === Bun.env.ADMIN_PASSWORD) {
|
||||
urlToRedirect = u;
|
||||
if (req.method === "POST") {
|
||||
if (url.pathname === "/admin/add") {
|
||||
if (req.body) {
|
||||
const { u, password } = await req.json() as { u: string, password: string };
|
||||
if (u && password === Bun.env.ADMIN_PASSWORD) {
|
||||
listOfUrl.push(u);
|
||||
|
||||
return new Response(JSON.stringify({body: u}), {
|
||||
status: 200
|
||||
})
|
||||
return new Response(JSON.stringify({body: u}), {
|
||||
status: 200
|
||||
})
|
||||
}
|
||||
}
|
||||
} else if (url.pathname == "/admin/clear") {
|
||||
if (req.body) {
|
||||
const { password } = await req.json() as { password: string };
|
||||
if (password === Bun.env.ADMIN_PASSWORD) {
|
||||
listOfUrl = [];
|
||||
return new Response(JSON.stringify({body: "ok"}), {
|
||||
status: 200
|
||||
})
|
||||
}
|
||||
}
|
||||
} else if (url.pathname == "/admin/list") {
|
||||
if (req.body) {
|
||||
const {password} = await req.json() as { password: string };
|
||||
if (password === Bun.env.ADMIN_PASSWORD) {
|
||||
return new Response(JSON.stringify({body: listOfUrl}), {
|
||||
status: 200
|
||||
})
|
||||
}
|
||||
}
|
||||
} else if (url.pathname == "/admin/remove") {
|
||||
if (req.body) {
|
||||
const { u, password } = await req.json() as { u: string, password: string };
|
||||
if (u && password === Bun.env.ADMIN_PASSWORD) {
|
||||
listOfUrl = listOfUrl.filter((url) => url !== u);
|
||||
return new Response(JSON.stringify({body: u}), {
|
||||
status: 200
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -20,7 +51,7 @@ Bun.serve({
|
||||
return new Response(null, {
|
||||
status: 302,
|
||||
headers: {
|
||||
Location: urlToRedirect
|
||||
Location: listOfUrl[Math.floor(Math.random() * listOfUrl.length)]
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user