From a9e9bf47c0a69549725bd37c420684f1693a2a66 Mon Sep 17 00:00:00 2001
From: Travis Ralston <travpc@gmail.com>
Date: Sun, 12 Nov 2017 22:41:00 -0700
Subject: [PATCH] Listen to the spec endpoints, not fake ones

---
 README.md                                         |  2 +-
 .../turt2live/matrix-media-repo/media_repo.go     | 15 +++++++++++----
 2 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/README.md b/README.md
index f0bf4dd9..be35cd2f 100644
--- a/README.md
+++ b/README.md
@@ -39,7 +39,7 @@ location /_matrix {
 }
 
 # Redirect all media endpoints to the media-repo
-location /_matrix/client/r0/media {
+location /_matrix/media {
     proxy_read_timeout 60s;
     proxy_set_header Host $host; # Make sure this matches your homeserver in media-repo.yaml
     proxy_set_header X-Real-IP $remote_addr;
diff --git a/src/github.com/turt2live/matrix-media-repo/media_repo.go b/src/github.com/turt2live/matrix-media-repo/media_repo.go
index c8f905a7..d5d369cc 100644
--- a/src/github.com/turt2live/matrix-media-repo/media_repo.go
+++ b/src/github.com/turt2live/matrix-media-repo/media_repo.go
@@ -47,10 +47,17 @@ func main() {
 	downloadHandler := Handler{r0.DownloadMedia, hOpts}
 	thumbnailHandler := Handler{r0.ThumbnailMedia, hOpts}
 
-	rtr.Handle("/_matrix/client/r0/media/upload", uploadHandler).Methods("POST")
-	rtr.Handle("/_matrix/client/r0/media/download/{server:[a-zA-Z0-9.:-_]+}/{mediaId:[a-zA-Z0-9]+}", downloadHandler).Methods("GET")
-	rtr.Handle("/_matrix/client/r0/media/download/{server:[a-zA-Z0-9.:-_]+}/{mediaId:[a-zA-Z0-9]+}/{filename:[a-zA-Z0-9._-]+}", downloadHandler).Methods("GET")
-	rtr.Handle("/_matrix/client/r0/media/thumbnail/{server:[a-zA-Z0-9.:-_]+}/{mediaId:[a-zA-Z0-9]+}", thumbnailHandler).Methods("GET")
+	// r0 endpoints
+	rtr.Handle("/_matrix/media/r0/upload", uploadHandler).Methods("POST")
+	rtr.Handle("/_matrix/media/r0/download/{server:[a-zA-Z0-9.:-_]+}/{mediaId:[a-zA-Z0-9]+}", downloadHandler).Methods("GET")
+	rtr.Handle("/_matrix/media/r0/download/{server:[a-zA-Z0-9.:-_]+}/{mediaId:[a-zA-Z0-9]+}/{filename:[a-zA-Z0-9._-]+}", downloadHandler).Methods("GET")
+	rtr.Handle("/_matrix/media/r0/thumbnail/{server:[a-zA-Z0-9.:-_]+}/{mediaId:[a-zA-Z0-9]+}", thumbnailHandler).Methods("GET")
+
+	// v1 endpoints (legacy)
+	rtr.Handle("/_matrix/media/v1/upload", uploadHandler).Methods("POST")
+	rtr.Handle("/_matrix/media/v1/download/{server:[a-zA-Z0-9.:-_]+}/{mediaId:[a-zA-Z0-9]+}", downloadHandler).Methods("GET")
+	rtr.Handle("/_matrix/media/v1/download/{server:[a-zA-Z0-9.:-_]+}/{mediaId:[a-zA-Z0-9]+}/{filename:[a-zA-Z0-9._-]+}", downloadHandler).Methods("GET")
+	rtr.Handle("/_matrix/media/v1/thumbnail/{server:[a-zA-Z0-9.:-_]+}/{mediaId:[a-zA-Z0-9]+}", thumbnailHandler).Methods("GET")
 
 	http.Handle("/", rtr)
 	http.ListenAndServe(":8000", nil)
-- 
GitLab