• Process Comick results, score by confidence, and sort by title type priority.

    Parameters

    • comickResults: EnhancedAniListManga[]

      Enhanced manga results from Comick API.

    • title: string

      Original search title.

    • comickSourceMap: ComickSourceMap

      Map populated with Comick source information.

    Returns AniListManga[]

    Sorted array of AniListManga results.

    export function processComickResults(
    comickResults: EnhancedAniListManga[],
    title: string,
    comickSourceMap: ComickSourceMap,
    ): AniListManga[] {
    const processedResults = comickResults.map((enhancedManga) => {
    if (enhancedManga.sourceInfo) {
    comickSourceMap.set(enhancedManga.id, {
    title: enhancedManga.sourceInfo.title,
    slug: enhancedManga.sourceInfo.slug,
    comickId: enhancedManga.sourceInfo.sourceId,
    isFoundViaComick: enhancedManga.sourceInfo.isFoundViaAlternativeSearch,
    });
    }

    const manga = convertEnhancedMangaToAniList(enhancedManga);
    const confidence = calculateConfidence(title, manga);
    const titleTypePriority = calculateTitleTypePriority(manga, title);

    console.debug(
    `[MangaSearchService] ⚖️ Comick result confidence for "${manga.title?.english || manga.title?.romaji}": ${confidence}% (found via Comick: ${enhancedManga.sourceInfo?.title || "unknown"})`,
    );

    return { manga, confidence, titleTypePriority };
    });

    // Sort by confidence and priority
    processedResults.sort((a, b) => {
    if (a.confidence !== b.confidence) {
    return b.confidence - a.confidence;
    }
    return b.titleTypePriority - a.titleTypePriority;
    });

    return processedResults.map((match) => match.manga);
    }