+26
musicbrainz/main.go
+26
musicbrainz/main.go
···
7
"net/http"
8
"os"
9
"os/signal"
10
"time"
11
12
"github.com/labstack/echo/v4"
···
71
return c.JSON(http.StatusBadRequest, map[string]string{"error": "invalid request"})
72
}
73
74
resp, _ := s.mb.SearchMusicBrainz(c.Request().Context(), req)
75
76
return c.JSON(http.StatusOK, resp)
···
83
return c.JSON(http.StatusBadRequest, map[string]string{"error": "invalid request"})
84
}
85
86
resp, _ := musicbrainz.HydrateTrack(s.mb, req)
87
88
return c.JSON(http.StatusOK, resp)
89
}
···
7
"net/http"
8
"os"
9
"os/signal"
10
+
"strings"
11
"time"
12
13
"github.com/labstack/echo/v4"
···
72
return c.JSON(http.StatusBadRequest, map[string]string{"error": "invalid request"})
73
}
74
75
+
req.Track = cleanTitle(req.Track)
76
resp, _ := s.mb.SearchMusicBrainz(c.Request().Context(), req)
77
78
return c.JSON(http.StatusOK, resp)
···
85
return c.JSON(http.StatusBadRequest, map[string]string{"error": "invalid request"})
86
}
87
88
+
req.Name = cleanTitle(req.Name)
89
resp, _ := musicbrainz.HydrateTrack(s.mb, req)
90
91
return c.JSON(http.StatusOK, resp)
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
+
}