Skip to content

Commit

Permalink
omdb: strip non numeric from ImdbVotes
Browse files Browse the repository at this point in the history
Closes #24
  • Loading branch information
l3uddz committed Feb 23, 2021
1 parent 7472fcb commit f0bf972
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 3 deletions.
2 changes: 1 addition & 1 deletion media/omdb/media.go
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ func (c *Client) GetItem(imdbId string) (*Item, error) {
Metascore: util.Atoi(b.Metascore, 0),
RottenTomatoes: rt,
ImdbRating: util.Atof64(b.ImdbRating, 0.0),
ImdbVotes: util.Atoi(b.ImdbVotes, 0),
ImdbVotes: util.Atoi(util.StripNonNumeric(b.ImdbVotes), 0),
Language: b.Language,
Country: b.Country,
}, nil
Expand Down
15 changes: 13 additions & 2 deletions util/string.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,28 @@ import "regexp"

var (
reStripNonAlphaNumeric *regexp.Regexp
reStripNonNumeric *regexp.Regexp
)

func init() {
reg, err := regexp.Compile("[^a-zA-Z0-9]+")
reg1, err := regexp.Compile("[^a-zA-Z0-9]+")
if err != nil {
panic(err)
}
reStripNonAlphaNumeric = reg
reStripNonAlphaNumeric = reg1

reg2, err := regexp.Compile("[^0-9]+")
if err != nil {
panic(err)
}
reStripNonNumeric = reg2
}

func StripNonAlphaNumeric(value string) string {
// credits: https://golangcode.com/how-to-remove-all-non-alphanumerical-characters-from-a-string/
return reStripNonAlphaNumeric.ReplaceAllString(value, "")
}

func StripNonNumeric(value string) string {
return reStripNonNumeric.ReplaceAllString(value, "")
}
33 changes: 33 additions & 0 deletions util/string_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,3 +27,36 @@ func TestStripNonAlphaNumeric(t *testing.T) {
})
}
}

func TestStripNonNumeric(t *testing.T) {
type args struct {
value string
}
tests := []struct {
name string
args args
want string
}{
{
name: "remove non numeric",
args: args{
value: "10, 560",
},
want: "10560",
},
{
name: "remove nothing",
args: args{
value: "100",
},
want: "100",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if got := StripNonNumeric(tt.args.value); got != tt.want {
t.Errorf("StripNonNumeric() = %v, want %v", got, tt.want)
}
})
}
}

0 comments on commit f0bf972

Please sign in to comment.