mirror of
https://github.com/ld3z/new-manga.git
synced 2026-11-09 20:13:44 -07:00
add genre tags
This commit is contained in:
parent
6079bd3b97
commit
a8b95aa752
4 changed files with 145 additions and 35 deletions
|
|
@ -1,4 +1,4 @@
|
|||
import type { Comic } from './types';
|
||||
import type { Comic, Genre } from './types';
|
||||
|
||||
const languageMap = {
|
||||
"en": "English",
|
||||
|
|
@ -16,6 +16,28 @@ const languages = new Set(Object.keys(languageMap));
|
|||
const contentTypes = new Set(["sfw", "nsfw"]);
|
||||
const urlBase = "https://api.comick.fun/chapter";
|
||||
|
||||
let genreCache: Genre[] = [];
|
||||
|
||||
export async function fetchGenres(): Promise<Genre[]> {
|
||||
if (genreCache.length > 0) return genreCache;
|
||||
|
||||
try {
|
||||
const response = await fetch('https://api.comick.fun/genre');
|
||||
if (!response.ok) throw new Error(`Failed to fetch genres: ${response.status}`);
|
||||
genreCache = await response.json();
|
||||
return genreCache;
|
||||
} catch (error) {
|
||||
console.error('Error fetching genres:', error);
|
||||
return [];
|
||||
}
|
||||
}
|
||||
|
||||
export function getGenreNames(genreIds: number[], genres: Genre[]): string[] {
|
||||
return genreIds
|
||||
.map(id => genres.find(g => g.id === id)?.name ?? '')
|
||||
.filter(name => name !== '');
|
||||
}
|
||||
|
||||
export async function fetchComics(language: string = 'en', contentType: string = 'sfw'): Promise<Comic[]> {
|
||||
try {
|
||||
const apiUrl = `${urlBase}?lang=${language}&page=1&order=new&accept_erotic_content=${contentType === 'nsfw'}`;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue