Skip to content

Commit 06fa08d

Browse files
committed
fix(tvmaze): search for normalized show title
1 parent 7a3aa64 commit 06fa08d

File tree

3 files changed

+24
-3
lines changed

3 files changed

+24
-3
lines changed

internal/utils/formatting.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,3 +77,13 @@ func compareEpisodes(episodeRls, torrentEpRls rls.Release) error {
7777

7878
return nil
7979
}
80+
81+
func normalizeTitle(title string) string {
82+
punctuationRegex := regexp.MustCompile(`[^\w\s]`)
83+
duplicateSpacesRegex := regexp.MustCompile(`\s{2,}`)
84+
85+
title = punctuationRegex.ReplaceAllString(title, "")
86+
title = duplicateSpacesRegex.ReplaceAllString(title, " ")
87+
88+
return title
89+
}

internal/utils/tvmaze.go

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,24 @@ package utils
66
import (
77
"fmt"
88

9+
"seasonpackarr/pkg/errors"
10+
911
"github.com/mrobinsn/go-tvmaze/tvmaze"
1012
)
1113

1214
func GetEpisodesPerSeason(title string, season int) (int, error) {
1315
totalEpisodes := 0
1416

15-
show, err := tvmaze.DefaultClient.GetShow(title)
17+
normalizedTitle := normalizeTitle(title)
18+
19+
show, err := tvmaze.DefaultClient.GetShow(normalizedTitle)
1620
if err != nil {
17-
return 0, err
21+
return 0, errors.Wrap(err, "could not find show on tvmaze")
1822
}
1923

2024
episodes, err := show.GetEpisodes()
2125
if err != nil {
22-
return 0, err
26+
return 0, errors.Wrap(err, "could not get episodes from tvmaze")
2327
}
2428

2529
for _, episode := range episodes {

internal/utils/tvmaze_test.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,13 @@ func Test_GetEpisodesPerSeason(t *testing.T) {
5252
want: 5,
5353
wantErr: false,
5454
},
55+
{
56+
name: "show_with_punctuation",
57+
title: "Orphan Black - Echoes",
58+
season: 1,
59+
want: 10,
60+
wantErr: false,
61+
},
5562
}
5663
for _, tt := range tests {
5764
t.Run(tt.name, func(t *testing.T) {

0 commit comments

Comments
 (0)