]> Sergey Matveev's repositories - tofuproxy.git/blobdiff - rounds/habrImage.go
Another refactor
[tofuproxy.git] / rounds / habrImage.go
diff --git a/rounds/habrImage.go b/rounds/habrImage.go
new file mode 100644 (file)
index 0000000..86f21aa
--- /dev/null
@@ -0,0 +1,37 @@
+/*
+tofuproxy -- HTTP proxy with TLS certificates management
+Copyright (C) 2021 Sergey Matveev <stargrave@stargrave.org>
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, version 3 of the License.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+package rounds
+
+import (
+       "net/http"
+       "strings"
+)
+
+func RoundHabrImage(
+       host string,
+       resp *http.Response,
+       w http.ResponseWriter,
+       req *http.Request,
+) (bool, error) {
+       if host == "habrastorage.org" && strings.Contains(req.URL.Path, "r/w780q1/") {
+               req.URL.Path = strings.Replace(req.URL.Path, "r/w780q1/", "", 1)
+               http.Redirect(w, req, req.URL.String(), http.StatusFound)
+               return false, nil
+       }
+       return true, nil
+}