]> Cypherpunks.ru repositories - gocheese.git/commitdiff
Some PyPIs do not include schema and domain name
authorSergey Matveev <stargrave@stargrave.org>
Fri, 6 Dec 2019 14:44:37 +0000 (17:44 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Fri, 6 Dec 2019 14:44:37 +0000 (17:44 +0300)
gocheese.go

index 655908d47f789735bc84033a9ef6b006991d0185..fcc353ebeb94e0ed3bd9b89a9d8bb03161743645 100644 (file)
@@ -162,6 +162,10 @@ func refreshDir(
                        return false
                }
                pkgURL.Fragment = ""
                        return false
                }
                pkgURL.Fragment = ""
+               uri = pkgURL.String()
+               if pkgURL.Host == "" {
+                       uri = *pypiURL + strings.TrimPrefix(uri, "/")
+               }
                path = filepath.Join(dirPath, filename)
                if filename == filenameGet {
                        if killed {
                path = filepath.Join(dirPath, filename)
                if filename == filenameGet {
                        if killed {
@@ -170,7 +174,7 @@ func refreshDir(
                                return false
                        }
                        log.Println(r.RemoteAddr, "pypi download", filename)
                                return false
                        }
                        log.Println(r.RemoteAddr, "pypi download", filename)
-                       resp, err = http.Get(pkgURL.String())
+                       resp, err = http.Get(uri)
                        if err != nil {
                                http.Error(w, err.Error(), http.StatusBadGateway)
                                return false
                        if err != nil {
                                http.Error(w, err.Error(), http.StatusBadGateway)
                                return false
@@ -216,7 +220,7 @@ func refreshDir(
                        if _, err = os.Stat(path); err != nil {
                                goto GPGSigSkip
                        }
                        if _, err = os.Stat(path); err != nil {
                                goto GPGSigSkip
                        }
-                       resp, err := http.Get(pkgURL.String() + GPGSigExt)
+                       resp, err := http.Get(uri + GPGSigExt)
                        if err != nil {
                                goto GPGSigSkip
                        }
                        if err != nil {
                                goto GPGSigSkip
                        }