The search query
AniList access token for fetching manga details
Maximum number of results to return (default: 1)
Promise resolving to enhanced AniList manga with Comick source info
export async function searchComickAndGetAniListManga(
query: string,
accessToken: string,
limit: number = 1,
): Promise<EnhancedAniListManga[]> {
try {
console.log(`🔍 Starting Comick search for "${query}" with limit ${limit}`);
// Search on Comick
const comickResults = await searchComickManga(query, limit);
if (!comickResults || comickResults.length === 0) {
console.log(`📦 No Comick results found for "${query}"`);
return [];
}
console.log(
`📦 Found ${comickResults.length} Comick results, extracting AniList IDs...`,
);
// Extract AniList IDs from Comick results
const anilistIds: number[] = [];
const comickSourceMap = new Map<number, ComickManga>();
for (const comickManga of comickResults) {
const anilistId = await extractAniListIdFromComick(comickManga);
if (anilistId) {
anilistIds.push(anilistId);
comickSourceMap.set(anilistId, comickManga);
}
}
if (anilistIds.length === 0) {
console.log(`🔗 No AniList links found in Comick results for "${query}"`);
return [];
}
console.log(
`🎯 Found ${anilistIds.length} AniList IDs from Comick: [${anilistIds.join(", ")}]`,
);
// Fetch AniList manga details
const anilistManga = await getMangaByIds(anilistIds, accessToken);
if (!anilistManga || anilistManga.length === 0) {
console.log(
`❌ Failed to fetch AniList manga for IDs: [${anilistIds.join(", ")}]`,
);
return [];
}
// Enhance AniList manga with Comick source info
const enhancedManga: EnhancedAniListManga[] = anilistManga.map((manga) => {
const comickSource = comickSourceMap.get(manga.id);
return {
...manga,
comickSource: comickSource
? {
title: comickSource.title,
slug: comickSource.slug,
comickId: comickSource.id,
foundViaComick: true,
}
: undefined,
};
});
console.log(
`✅ Successfully enhanced ${enhancedManga.length} AniList manga with Comick source info`,
);
return enhancedManga;
} catch (error) {
console.error(
`❌ Comick search and AniList fetch failed for "${query}":`,
error,
);
return [];
}
}
Search for manga on Comick and get their AniList counterparts.