]> Sergey Matveev's repositories - btrtrc.git/commitdiff
Retrive file via HTTP URL in `metainfo.go` (#778)
authorpk <prettykool@protonmail.com>
Mon, 26 Sep 2022 00:01:51 +0000 (19:01 -0500)
committerGitHub <noreply@github.com>
Mon, 26 Sep 2022 00:01:51 +0000 (10:01 +1000)
cmd/torrent/metainfo.go

index c3e37e5b99e834791427a2785819660f628e573c..f2a09ced295a3cd4df257b0c198d99e80c1b10d9 100644 (file)
@@ -5,6 +5,8 @@ import (
        "encoding/json"
        "fmt"
        "os"
+       "strings"
+       "net/http"
 
        "github.com/anacrolix/bargle"
        "github.com/anacrolix/torrent/metainfo"
@@ -27,7 +29,18 @@ func metainfoCmd() (cmd bargle.Command) {
                        Value: &bargle.String{Target: &metainfoPath},
                        AfterParseFunc: func(ctx bargle.Context) error {
                                ctx.AfterParse(func() (err error) {
-                                       mi, err = metainfo.LoadFromFile(metainfoPath)
+                                       if strings.HasPrefix(metainfoPath, "http://") || strings.HasPrefix(metainfoPath, "https://") {
+                                               response, err := http.Get(metainfoPath)
+                                               if err != nil {
+                                                       return nil
+                                               }
+                                               mi, err = metainfo.Load(response.Body)
+                                               if err != nil {
+                                                       return nil
+                                               }
+                                       } else {
+                                               mi, err = metainfo.LoadFromFile(metainfoPath)
+                                       }
                                        return
                                })
                                return nil