fix: improve discover and manual scrape flows

This commit is contained in:
ShukeBta
2026-06-24 13:58:04 +08:00
parent 34396a3a8b
commit 34c9cb4244
8 changed files with 255 additions and 79 deletions
+15 -5
View File
@@ -169,10 +169,11 @@ func compactSeriesKey(raw string) string {
}
var (
seriesYearRE = regexp.MustCompile(`\s*\((?:19|20)\d{2}\)\s*`)
seriesIDRE = regexp.MustCompile(`(?i)\s*\[(?:tmdb|tmdbid)[=-]\d+\]\s*`)
seriesBraceRE = regexp.MustCompile(`(?i)\s*\{(?:tmdb|tmdbid|douban|bangumi|bgm|thetvdb|tvdb)[\s:=#-]*[a-z0-9_-]+\}\s*`)
seriesSpacerRE = regexp.MustCompile(`[\s._-]+`)
seriesYearRE = regexp.MustCompile(`\s*\((?:19|20)\d{2}\)\s*`)
seriesIDRE = regexp.MustCompile(`(?i)\s*\[(?:tmdb|tmdbid)[=-]\d+\]\s*`)
seriesBraceRE = regexp.MustCompile(`(?i)\s*\{(?:tmdb|tmdbid|douban|bangumi|bgm|thetvdb|tvdb)[\s:=#-]*[a-z0-9_-]+\}\s*`)
seriesSpacerRE = regexp.MustCompile(`[\s._-]+`)
seriesSpecialSuffixRE = regexp.MustCompile(`(?i)(?:\s+(?:specials?|sp|ova|oad|extra|extras)|\s*(?:特别篇|特別篇|番外|特典|外传|外傳))$`)
)
func normalizeSeriesTitle(value string) string {
@@ -184,6 +185,15 @@ func normalizeSeriesTitle(value string) string {
return strings.TrimSpace(value)
}
func normalizeSeriesPathTitle(value string) string {
title := normalizeSeriesTitle(value)
stripped := strings.TrimSpace(seriesSpecialSuffixRE.ReplaceAllString(title, ""))
if stripped != "" {
return stripped
}
return title
}
func seriesTitleFromMediaPath(path string) string {
if strings.TrimSpace(path) == "" {
return ""
@@ -199,7 +209,7 @@ func seriesTitleFromMediaPath(path string) string {
if dirIndex < 0 {
return ""
}
return normalizeSeriesTitle(parts[dirIndex])
return normalizeSeriesPathTitle(parts[dirIndex])
}
func seriesDisplayTitle(media model.Media) string {