From 091d6e54787a9d52f345a5aabd3af251588d3b2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AB=8F=E8=A8=AA=E5=AD=90?= Date: Sat, 20 May 2023 20:12:32 +0900 Subject: [PATCH] =?UTF-8?q?Pixiv=E5=AF=BE=E5=BF=9C=E3=81=AE=E8=BF=BD?= =?UTF-8?q?=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.go | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/main.go b/main.go index 82ebcde..3e3ed38 100644 --- a/main.go +++ b/main.go @@ -5,13 +5,33 @@ import ( "net/http" "io" "log" + "net/url" ) var client = http.Client{} func imgproxy (w http.ResponseWriter, r *http.Request) { + // URLを確認 + uri, err := url.Parse("https:/" + r.URL.Path) + if err != nil { + fmt.Println(err) + return + } + + // HTTPリク + req, err := http.NewRequest("GET", "https:/" + r.URL.Path, nil) + if err != nil { + fmt.Println(err) + return + } + + // Pixivかどうかの確認 + if uri.Host == "i.pximg.net" || uri.Host == "s.pximg.net" { + req.Header.Set("Referer", "https://www.pixiv.net/") + } + // r.URL.Pathは「/」で始まるから、「https://」じゃなくて、「https:/」となります。 - img, err := client.Get("https:/" + r.URL.Path) + img, err := client.Do(req) if err != nil { fmt.Fprintf(w, "Error %d", err) return