mirror of
https://github.com/KRTirtho/spotube.git
synced 2025-09-13 07:55:18 +00:00
chore: revise filter for ISRC search (#2614)
This commit is contained in:
parent
8a7f5c4008
commit
e986baa0aa
@ -251,19 +251,18 @@ class YoutubeSourcedTrack extends SourcedTrack {
|
|||||||
.map((YoutubeVideoInfo videoInfo) {
|
.map((YoutubeVideoInfo videoInfo) {
|
||||||
final ytWords = videoInfo.title
|
final ytWords = videoInfo.title
|
||||||
.toLowerCase()
|
.toLowerCase()
|
||||||
.replaceAll(RegExp(r'[^a-zA-Z0-9\s]+'), '')
|
.replaceAll(RegExp(r'[^\p{L}\p{N}\p{Z}]+', unicode: true), '')
|
||||||
.split(RegExp(r'\s+'))
|
.split(RegExp(r'\p{Z}+', unicode: true))
|
||||||
.where((item) => item.isNotEmpty);
|
.where((item) => item.isNotEmpty);
|
||||||
final spWords = track.name!
|
final spWords = track.name!
|
||||||
.toLowerCase()
|
.toLowerCase()
|
||||||
.replaceAll(RegExp(r'\((.*)\)'), '')
|
.replaceAll(RegExp(r'[^\p{L}\p{N}\p{Z}]+', unicode: true), '')
|
||||||
.replaceAll(RegExp(r'[^a-zA-Z0-9\s]+'), '')
|
.split(RegExp(r'\p{Z}+', unicode: true))
|
||||||
.split(RegExp(r'\s+'))
|
|
||||||
.where((item) => item.isNotEmpty);
|
.where((item) => item.isNotEmpty);
|
||||||
// Word match to filter out unrelated results
|
// Single word and duration match with 3 second tolerance
|
||||||
final matchCount =
|
if (ytWords.any((word) => spWords.contains(word)) &&
|
||||||
ytWords.where((word) => spWords.contains(word)).length;
|
(videoInfo.duration - track.duration!)
|
||||||
if (matchCount > spWords.length ~/ 2) {
|
.abs().inMilliseconds <= 3000) {
|
||||||
return videoInfo;
|
return videoInfo;
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
|
Loading…
Reference in New Issue
Block a user