+26
musicbrainz/main.go
+26
musicbrainz/main.go
···
7
7
"net/http"
8
8
"os"
9
9
"os/signal"
10
+
"strings"
10
11
"time"
11
12
12
13
"github.com/labstack/echo/v4"
···
71
72
return c.JSON(http.StatusBadRequest, map[string]string{"error": "invalid request"})
72
73
}
73
74
75
+
req.Track = cleanTitle(req.Track)
74
76
resp, _ := s.mb.SearchMusicBrainz(c.Request().Context(), req)
75
77
76
78
return c.JSON(http.StatusOK, resp)
···
83
85
return c.JSON(http.StatusBadRequest, map[string]string{"error": "invalid request"})
84
86
}
85
87
88
+
req.Name = cleanTitle(req.Name)
86
89
resp, _ := musicbrainz.HydrateTrack(s.mb, req)
87
90
88
91
return c.JSON(http.StatusOK, resp)
89
92
}
93
+
94
+
func cleanTitle(title string) string {
95
+
removePatterns := []string{
96
+
" - Album Version (Edited)",
97
+
" - Album Version (Explicit)",
98
+
" - Album Version",
99
+
" (Album Version (Edited))",
100
+
" (Album Version (Explicit))",
101
+
" (Album Version)",
102
+
" - Edited",
103
+
" - Explicit",
104
+
" - Radio Edit",
105
+
" (Edited)",
106
+
" (Explicit)",
107
+
" (Radio Edit)",
108
+
}
109
+
110
+
for _, pattern := range removePatterns {
111
+
title = strings.ReplaceAll(title, pattern, "")
112
+
}
113
+
114
+
return strings.TrimSpace(title)
115
+
}