mirror of
https://github.com/kikootwo/ReadMeABook.git
synced 2026-07-09 22:40:12 +00:00
Merge branch 'main' of https://github.com/kikootwo/ReadMeABook
This commit is contained in:
@@ -389,11 +389,12 @@ export class RankingAlgorithm {
|
||||
|
||||
// Parse authors from RAW string first (preserving commas for splitting)
|
||||
// Then normalize individual authors for matching
|
||||
const requestAuthorRaw = audiobook.author.toLowerCase().replace(/\s+/g, ' ').trim();
|
||||
const parsedAuthors = requestAuthorRaw
|
||||
.split(/,|&| and | - /)
|
||||
const parsedAuthors = audiobook.author
|
||||
.replace(/\s+/g, ' ')
|
||||
.trim()
|
||||
.split(/,|&| and | - /i)
|
||||
.map(a => a.trim())
|
||||
.filter(a => a.length > 2 && !['translator', 'narrator'].includes(a));
|
||||
.filter(a => a.length > 2 && !['translator', 'narrator'].includes(a.toLowerCase()));
|
||||
|
||||
// Normalize parsed authors for matching (handles CamelCase in author names)
|
||||
const normalizedAuthors = parsedAuthors.map(a => this.normalizeForMatching(a, characterReplacements));
|
||||
|
||||
@@ -1348,6 +1348,36 @@ describe('ranking-algorithm', () => {
|
||||
// Gets partial score from fuzzy matching (title words + author words present)
|
||||
expect(breakdown.matchScore).toBeGreaterThan(30);
|
||||
});
|
||||
|
||||
it('matches CamelCase author prefix "McGowan" in request author field', () => {
|
||||
const torrent = {
|
||||
...baseTorrent,
|
||||
title: 'The Housekeeper by Suellen McGowan [M4B]',
|
||||
};
|
||||
|
||||
const breakdown = algorithm.getScoreBreakdown(torrent, {
|
||||
title: 'The Housekeeper',
|
||||
author: 'Suellen McGowan',
|
||||
}, true);
|
||||
|
||||
// "McGowan" must survive into normalizeForMatching as "Mc Gowan"
|
||||
// With requireAuthor: true, author presence check must pass
|
||||
expect(breakdown.matchScore).toBeGreaterThanOrEqual(50);
|
||||
});
|
||||
|
||||
it('matches CamelCase author prefix "McFadden" in request author field', () => {
|
||||
const torrent = {
|
||||
...baseTorrent,
|
||||
title: 'The Housemaid - Freida McFadden [M4B]',
|
||||
};
|
||||
|
||||
const breakdown = algorithm.getScoreBreakdown(torrent, {
|
||||
title: 'The Housemaid',
|
||||
author: 'Freida McFadden',
|
||||
}, true);
|
||||
|
||||
expect(breakdown.matchScore).toBeGreaterThanOrEqual(50);
|
||||
});
|
||||
});
|
||||
|
||||
describe('Legacy API Compatibility', () => {
|
||||
|
||||
Reference in New Issue
Block a user