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,
|
port: Bun.env.PORT || 8080,
|
||||||
async fetch(req) {
|
async fetch(req) {
|
||||||
const url = new URL(req.url);
|
const url = new URL(req.url);
|
||||||
if (req.method === "POST" && url.pathname === "/admin") {
|
if (req.method === "POST") {
|
||||||
if (req.body) {
|
if (url.pathname === "/admin") {
|
||||||
const { urlData, password } = await req.json() as { urlData: string, password: string };
|
if (req.body) {
|
||||||
if (urlData && password === Bun.env.ADMIN_PASSWORD) {
|
const { urlData, password } = await req.json() as { urlData: string, password: string };
|
||||||
const u = await prisma.url.create({
|
if (urlData && password === Bun.env.ADMIN_PASSWORD) {
|
||||||
data: {
|
const u = await prisma.url.create({
|
||||||
url: urlData
|
data: {
|
||||||
}
|
url: urlData
|
||||||
})
|
}
|
||||||
|
})
|
||||||
|
|
||||||
return new Response(JSON.stringify({body: u}), {
|
return new Response(JSON.stringify({body: u}), {
|
||||||
status: 200
|
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") {
|
else if (req.method === "GET") {
|
||||||
const urlRes = await prisma.url.findFirst({
|
// random
|
||||||
orderBy: {
|
const urls = await prisma.url.findMany();
|
||||||
updatedAt: "desc"
|
|
||||||
}
|
const urlRes = urls[Math.floor(Math.random() * urls.length)];
|
||||||
});
|
|
||||||
|
|
||||||
if (urlRes) {
|
if (urlRes) {
|
||||||
return new Response(null, {
|
return new Response(null, {
|
||||||
status: 302,
|
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({
|
Bun.serve({
|
||||||
port: Bun.env.PORT || 8080,
|
port: Bun.env.PORT || 8080,
|
||||||
async fetch(req) {
|
async fetch(req) {
|
||||||
const url = new URL(req.url);
|
const url = new URL(req.url);
|
||||||
if (req.method === "POST" && url.pathname === "/admin") {
|
if (req.method === "POST") {
|
||||||
if (req.body) {
|
if (url.pathname === "/admin/add") {
|
||||||
const { u, password } = await req.json() as { u: string, password: string };
|
if (req.body) {
|
||||||
if (u && password === Bun.env.ADMIN_PASSWORD) {
|
const { u, password } = await req.json() as { u: string, password: string };
|
||||||
urlToRedirect = u;
|
if (u && password === Bun.env.ADMIN_PASSWORD) {
|
||||||
|
listOfUrl.push(u);
|
||||||
|
|
||||||
return new Response(JSON.stringify({body: u}), {
|
return new Response(JSON.stringify({body: u}), {
|
||||||
status: 200
|
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, {
|
return new Response(null, {
|
||||||
status: 302,
|
status: 302,
|
||||||
headers: {
|
headers: {
|
||||||
Location: urlToRedirect
|
Location: listOfUrl[Math.floor(Math.random() * listOfUrl.length)]
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user