diff --git a/services/web-proxy/main.go b/services/web-proxy/main.go index e305a2ec..6d7c72ad 100644 --- a/services/web-proxy/main.go +++ b/services/web-proxy/main.go @@ -74,6 +74,23 @@ func (p ProxyHandler) ServeHTTP(rw http.ResponseWriter, r *http.Request) { return } + if r.URL.Path == "/" { + http.Redirect(rw, r, "https://pluralkit.me", http.StatusFound) + return + } + + if strings.HasPrefix(r.URL.Path, "/v1") { + rw.Header().Set("content-type", "application/json") + rw.WriteHeader(410) + rw.Write([]byte(`{"message":"Unsupported API version","code":0}`)) + } + + if is_trying_to_use_v1_path_on_v2(r.URL.Path) { + rw.WriteHeader(400) + rw.Write([]byte(`{"message":"Invalid path for API version","code":0}`)) + return + } + if is_api_ratelimited(rw, r) { return } diff --git a/services/web-proxy/util.go b/services/web-proxy/util.go index be001f2e..552cef49 100644 --- a/services/web-proxy/util.go +++ b/services/web-proxy/util.go @@ -63,3 +63,12 @@ func requireEnv(key string) string { return val } } + +func is_trying_to_use_v1_path_on_v2(path string) bool { + return strings.HasPrefix(path, "/v2/s/") || + strings.HasPrefix(path, "/v2/m/") || + strings.HasPrefix(path, "/v2/a/") || + strings.HasPrefix(path, "/v2/msg/") || + path == "/v2/s" || + path == "/v2/m" +}