fix: movie year match

This commit is contained in:
Simon Ding
2024-08-10 17:06:33 +08:00
parent fd2f4b140f
commit 9ff12cd86b
2 changed files with 19 additions and 9 deletions

View File

@@ -8,8 +8,7 @@ import (
)
type MovieMetadata struct {
NameEn string
NameCN string
Name string
Year int
Resolution string
}
@@ -29,11 +28,22 @@ func ParseMovie(name string) *MovieMetadata {
panic(fmt.Sprintf("convert %s error: %v", y, err))
}
meta.Year = n
}
if yearIndex != -1 {
meta.NameEn = name[:yearIndex]
} else {
meta.NameEn = name
yearRe := regexp.MustCompile(`\d{4}`)
yearMatches := yearRe.FindAllString(name, -1)
if len(yearMatches) > 0 {
n, err := strconv.Atoi(yearMatches[0])
if err != nil {
panic(fmt.Sprintf("convert %s error: %v", yearMatches[0], err))
}
meta.Year = n
}
}
if yearIndex != -1 {
meta.Name = name[:yearIndex]
} else {
meta.Name = name
}
resRe := regexp.MustCompile(`\d{3,4}p`)
resMatches := resRe.FindAllString(name, -1)

View File

@@ -50,7 +50,7 @@ func SearchTvSeries(db1 *db.Client, seriesId, seasonNum int, episodes []int, che
if checkResolution && meta.Resolution != series.Resolution.String() {
continue
}
if !utils.IsNameAcceptable(meta.NameEn, series.NameEn) && !utils.IsNameAcceptable(meta.NameCn, series.NameCn) &&
if !utils.IsNameAcceptable(meta.NameEn, series.NameEn) && !utils.IsNameAcceptable(meta.NameCn, series.NameCn) &&
!utils.IsNameAcceptable(meta.NameCn, series.OriginalName) {
continue
}
@@ -104,8 +104,8 @@ func SearchMovie(db1 *db.Client, movieId int, checkResolution bool, checkFileSiz
var filtered []torznab.Result
for _, r := range res {
meta := metadata.ParseMovie(r.Name)
if !utils.IsNameAcceptable(meta.NameEn, movieDetail.NameEn) && !utils.IsNameAcceptable(meta.NameEn, movieDetail.NameCn) &&
!utils.IsNameAcceptable(meta.NameEn, movieDetail.OriginalName) {
if !utils.IsNameAcceptable(meta.Name, movieDetail.NameEn) && !utils.IsNameAcceptable(meta.Name, movieDetail.NameCn) &&
!utils.IsNameAcceptable(meta.Name, movieDetail.OriginalName) {
continue
}
if checkResolution && meta.Resolution != movieDetail.Resolution.String() {