v2.0: sound library, image upload, DnD, ResourceBrowser, Barotrauma HUD, captain sanity
Deploy / build-and-deploy (push) Failing after 52s
Deploy / build-and-deploy (push) Failing after 52s
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
import { NextRequest, NextResponse } from "next/server";
|
||||
|
||||
const FREESOUND_API = "https://freesound.org/apiv2/search/text/";
|
||||
const API_KEY = process.env.FREESOUND_API_KEY || "";
|
||||
|
||||
export async function GET(req: NextRequest) {
|
||||
const query = req.nextUrl.searchParams.get("q") || "";
|
||||
const page = parseInt(req.nextUrl.searchParams.get("page") || "1");
|
||||
|
||||
if (!query) return NextResponse.json({ results: [] });
|
||||
if (!API_KEY) return NextResponse.json({ error: "Freesound API key not configured" }, { status: 500 });
|
||||
|
||||
try {
|
||||
const url = `${FREESOUND_API}?query=${encodeURIComponent(query)}&page=${page}&token=${API_KEY}&page_size=12&fields=id,name,duration,previews`;
|
||||
const res = await fetch(url);
|
||||
const data = await res.json();
|
||||
|
||||
const results = (data.results || []).map((r: any) => ({
|
||||
id: r.id,
|
||||
name: r.name,
|
||||
duration: r.duration,
|
||||
previewUrl: r.previews?.["preview-lq-mp3"] || r.previews?.["preview-hq-mp3"] || null,
|
||||
}));
|
||||
|
||||
return NextResponse.json({ results, count: data.count || 0 });
|
||||
} catch (e) {
|
||||
return NextResponse.json({ error: "Freesound search failed" }, { status: 500 });
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user