Download src/app/api/gradio/route.js from NeoPy/hugging-c-ai: direct link, hf CLI and curl.
- Browser
- Download file 1.91 kB
-
https://huggingface.co/NeoPy/hugging-c-ai/resolve/main/src/app/api/gradio/route.js
- Command line
-
hf download hf://NeoPy/hugging-c-ai/src/app/api/gradio/route.js
-
curl -L -o route.js https://huggingface.co/NeoPy/hugging-c-ai/resolve/main/src/app/api/gradio/route.js
1.91 kB
| import { NextResponse } from "next/server"; | |
| import { getServerSession } from "next-auth/next"; | |
| import { authOptions } from "@/lib/auth"; | |
| import { client } from "@gradio/client"; | |
| export async function GET() { | |
| try { | |
| const session = await getServerSession(authOptions); | |
| if (!session?.user?.id) return NextResponse.json({ error: "Unauthorized" }, { status: 401 }); | |
| const token = session.user.hfAccessToken; | |
| const username = session.user.hfUsername; | |
| if (!token || !username) { | |
| return NextResponse.json({ spaces: [], note: "Sign in with HuggingFace to see your Spaces." }); | |
| } | |
| const res = await fetch( | |
| `https://huggingface.co/api/spaces?author=${encodeURIComponent(username)}`, | |
| { headers: { Authorization: `Bearer ${token}` } }, | |
| ); | |
| let spaces = []; | |
| if (res.ok) spaces = await res.json(); | |
| return NextResponse.json({ | |
| spaces: spaces.map((s) => ({ | |
| id: s.id, name: s.name, | |
| url: `https://${s.id.replace("/", "-")}.hf.space`, | |
| runtime: s.runtime, | |
| })), | |
| }); | |
| } catch (error) { | |
| console.error("[GRADIO_SPACES_GET_ERROR]", error); | |
| return NextResponse.json({ error: error.message }, { status: 500 }); | |
| } | |
| } | |
| export async function POST(req) { | |
| try { | |
| const session = await getServerSession(authOptions); | |
| if (!session?.user?.id) return NextResponse.json({ error: "Unauthorized" }, { status: 401 }); | |
| const { url } = await req.json(); | |
| if (!url) return NextResponse.json({ error: "url is required" }, { status: 400 }); | |
| const app = await client(url, { | |
| hfToken: session.user.hfAccessToken?.startsWith("hf_") ? session.user.hfAccessToken : undefined, | |
| }); | |
| const info = app.api_info; | |
| return NextResponse.json({ url, api_info: info }); | |
| } catch (error) { | |
| console.error("[GRADIO_PROBE_ERROR]", error); | |
| return NextResponse.json({ error: error.message }, { status: 500 }); | |
| } | |
| } | |