The Comick manga to check
Promise resolving to AniList ID if found
export async function extractAniListIdFromComick(
comickManga: ComickManga,
): Promise<number | null> {
try {
// Get detailed info which includes external links
const detail = await getComickMangaDetail(comickManga.slug);
if (!detail?.comic) {
console.log(
`🔗 No comic data found for Comick manga: ${comickManga.title}`,
);
return null;
}
// Check if links exist and handle the actual structure (object with site keys)
const links = detail.comic.links;
if (!links) {
console.log(
`🔗 No external links found for Comick manga: ${comickManga.title}`,
);
return null;
}
if (typeof links !== "object") {
console.log(
`🔗 Links is not an object for Comick manga: ${comickManga.title}`,
{ linksType: typeof links, links },
);
return null;
}
// Look for AniList ID - 'al' is the key for AniList in Comick API
const anilistId = links.al;
if (!anilistId) {
console.log(
`🔗 No AniList ID found for Comick manga: ${comickManga.title}`,
{ availableLinks: Object.keys(links) },
);
return null;
}
// Convert to number
const parsedAnilistId = parseInt(anilistId, 10);
if (isNaN(parsedAnilistId)) {
console.log(
`🔗 Invalid AniList ID format for Comick manga: ${comickManga.title}`,
{ anilistId },
);
return null;
}
console.log(
`🎯 Found AniList ID ${parsedAnilistId} for Comick manga: ${comickManga.title}`,
);
return parsedAnilistId;
} catch (error) {
console.error(
`❌ Failed to extract AniList ID for Comick manga ${comickManga.title}:`,
error,
);
return null;
}
}
Extract AniList ID from a Comick manga's external links.