fe-middleware/src/services/GelbooruApiService.ts

22 lines
836 B
TypeScript

import GelbooruApiResponse from "src/types/GelbooruApiResponse";
import GelbooruServiceResponse from "src/types/GelbooruServiceResponse";
class GelbooruApiService {
async get(): Promise<GelbooruServiceResponse> {
const limit = 100;
const url: string = `https://gelbooru.com/index.php?page=dapi&s=post&q=index&limit=${limit}&json=1&tags=2girls+sleeping`
const response: GelbooruApiResponse = await fetch(url)
.then(res => {
if (!res.ok) {
throw new Error("Error fetching images");
} else {
return res.json();
}
}) as GelbooruApiResponse;
return { posts: response.post.map(post => ({ url: post.file_url, tags: post.tags.split(" ") })) };
}
}
export default new GelbooruApiService();