Spaces:
Runtime error
Runtime error
rate limiting
Browse files- app/api/collections/route.ts +3 -2
- app/api/route.ts +19 -2
- prisma/schema.prisma +1 -0
app/api/collections/route.ts
CHANGED
@@ -7,11 +7,12 @@ const prisma = new PrismaClient()
|
|
7 |
export async function GET(request: Request) {
|
8 |
const { headers } = request
|
9 |
const { searchParams } = new URL(request.url)
|
|
|
10 |
const userId = searchParams.get('userId') ?? undefined
|
11 |
const page = searchParams.get('page') ? parseInt(searchParams.get('page') as string) : 0
|
12 |
-
|
13 |
let is_admin = false
|
14 |
-
if (headers.get('Authorization')
|
15 |
is_admin = await isAdmin(headers) as boolean
|
16 |
}
|
17 |
|
|
|
7 |
export async function GET(request: Request) {
|
8 |
const { headers } = request
|
9 |
const { searchParams } = new URL(request.url)
|
10 |
+
|
11 |
const userId = searchParams.get('userId') ?? undefined
|
12 |
const page = searchParams.get('page') ? parseInt(searchParams.get('page') as string) : 0
|
13 |
+
|
14 |
let is_admin = false
|
15 |
+
if (headers.get('Authorization')) {
|
16 |
is_admin = await isAdmin(headers) as boolean
|
17 |
}
|
18 |
|
app/api/route.ts
CHANGED
@@ -1,14 +1,14 @@
|
|
|
|
1 |
import { PrismaClient } from '@prisma/client'
|
2 |
|
3 |
import list_styles from "@/assets/list_styles.json"
|
4 |
import { UploaderDataset } from '../../utils/uploader'
|
5 |
import { isTextNSFW } from '@/utils/checker/prompt'
|
6 |
-
import { isImageNSFW } from '@/utils/checker/image'
|
7 |
|
8 |
const prisma = new PrismaClient()
|
9 |
|
10 |
export async function POST(
|
11 |
-
request:
|
12 |
) {
|
13 |
const global_headers = {
|
14 |
Authorization: `Bearer ${process.env.HF_TOKEN}`,
|
@@ -17,8 +17,25 @@ export async function POST(
|
|
17 |
}
|
18 |
|
19 |
const { inputs, style, userId } = await request.json()
|
|
|
|
|
20 |
const findStyle = list_styles.find((item) => item.name === style)
|
21 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
22 |
const textIsNSFW = await isTextNSFW(inputs, global_headers)
|
23 |
if (textIsNSFW) return Response.json({ status: 401, ok: false, message: "Prompt doesn’t work, try another prompt" });
|
24 |
|
|
|
1 |
+
import { NextRequest } from 'next/server'
|
2 |
import { PrismaClient } from '@prisma/client'
|
3 |
|
4 |
import list_styles from "@/assets/list_styles.json"
|
5 |
import { UploaderDataset } from '../../utils/uploader'
|
6 |
import { isTextNSFW } from '@/utils/checker/prompt'
|
|
|
7 |
|
8 |
const prisma = new PrismaClient()
|
9 |
|
10 |
export async function POST(
|
11 |
+
request: NextRequest,
|
12 |
) {
|
13 |
const global_headers = {
|
14 |
Authorization: `Bearer ${process.env.HF_TOKEN}`,
|
|
|
17 |
}
|
18 |
|
19 |
const { inputs, style, userId } = await request.json()
|
20 |
+
const { headers } = request
|
21 |
+
|
22 |
const findStyle = list_styles.find((item) => item.name === style)
|
23 |
|
24 |
+
const ip_address = headers.get("x-forwarded-for") ?? request.ip
|
25 |
+
|
26 |
+
if (!headers.get('Authorization')) {
|
27 |
+
const count = await prisma.collection.count({
|
28 |
+
where: {
|
29 |
+
ip_address,
|
30 |
+
createdAt: {
|
31 |
+
gte: new Date(Date.now() - 24 * 60 * 60 * 1000)
|
32 |
+
}
|
33 |
+
}
|
34 |
+
})
|
35 |
+
|
36 |
+
if (count > 5) return Response.json({ status: 429, ok: false, message: "You have reached the limit of 5 images per day." });
|
37 |
+
}
|
38 |
+
|
39 |
const textIsNSFW = await isTextNSFW(inputs, global_headers)
|
40 |
if (textIsNSFW) return Response.json({ status: 401, ok: false, message: "Prompt doesn’t work, try another prompt" });
|
41 |
|
prisma/schema.prisma
CHANGED
@@ -11,6 +11,7 @@ model Collection {
|
|
11 |
id Int @id @default(autoincrement())
|
12 |
prompt String
|
13 |
file_name String
|
|
|
14 |
is_visible Boolean @default(false)
|
15 |
createdAt DateTime @default(now())
|
16 |
userId String? @default("")
|
|
|
11 |
id Int @id @default(autoincrement())
|
12 |
prompt String
|
13 |
file_name String
|
14 |
+
ip_address String @default("")
|
15 |
is_visible Boolean @default(false)
|
16 |
createdAt DateTime @default(now())
|
17 |
userId String? @default("")
|