chore: adjust score for both official flag & track name in title

This commit is contained in:
Kingkor Roy Tirtho 2023-08-18 14:43:46 +06:00
parent 3642666e23
commit a05ddaeda1

View File

@ -10,7 +10,7 @@ import 'package:spotube/utils/service_utils.dart';
import 'package:collection/collection.dart'; import 'package:collection/collection.dart';
final officialMusicRegex = RegExp( final officialMusicRegex = RegExp(
r"official\s(video|audio|music\svideo)", r"official\s(video|audio|music\svideo|lyric\svideo|visualizer)",
caseSensitive: false, caseSensitive: false,
); );
@ -101,17 +101,25 @@ class SpotubeTrack extends Track {
} }
} }
if (sibling.title final titleContainsTrackName = sibling.title
.toLowerCase() .toLowerCase()
.contains(track.name!.toLowerCase())) { .contains(track.name!.toLowerCase());
final hasOfficialFlag =
officialMusicRegex.hasMatch(sibling.title.toLowerCase());
if (titleContainsTrackName) {
score += 3; score += 3;
} }
if (officialMusicRegex if (hasOfficialFlag) {
.hasMatch(sibling.title.toLowerCase())) {
score += 1; score += 1;
} }
if (hasOfficialFlag && titleContainsTrackName) {
score += 2;
}
return (sibling: sibling, score: score); return (sibling: sibling, score: score);
}) })
.sorted((a, b) => b.score.compareTo(a.score)) .sorted((a, b) => b.score.compareTo(a.score))