From c23483fdc0e3443f5939e3110caf206755aa7384 Mon Sep 17 00:00:00 2001 From: yourok <8yourok8@mail.ru> Date: Fri, 20 Sep 2019 13:02:42 +0300 Subject: [PATCH] fix error with windows file path --- src/server/web/helpers/Magnet.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/server/web/helpers/Magnet.go b/src/server/web/helpers/Magnet.go index 52c37dc..383729a 100644 --- a/src/server/web/helpers/Magnet.go +++ b/src/server/web/helpers/Magnet.go @@ -2,8 +2,10 @@ package helpers import ( "errors" + "fmt" "net/http" "net/url" + "runtime" "strings" "time" @@ -24,8 +26,10 @@ func GetMagnet(link string) (*metainfo.Magnet, error) { mag, err = getMagFromHttp(url.String()) case "": mag, err = getMag("magnet:?xt=urn:btih:" + url.Path) - default: + case "file": mag, err = getMagFromFile(url.Path) + default: + err = fmt.Errorf("unknown scheme:", url, url.Scheme) } if err != nil { return nil, err @@ -71,7 +75,9 @@ func getMagFromHttp(url string) (*metainfo.Magnet, error) { } func getMagFromFile(path string) (*metainfo.Magnet, error) { - + if runtime.GOOS == "windows" && strings.HasPrefix(path, "/") { + path = strings.TrimPrefix(path, "/") + } minfo, err := metainfo.LoadFromFile(path) if err != nil { return nil, err