diff --git a/cmd/torrent/main.go b/cmd/torrent/main.go index 858c8054..0f075096 100644 --- a/cmd/torrent/main.go +++ b/cmd/torrent/main.go @@ -81,6 +81,23 @@ func addTorrents(client *torrent.Client) { log.Fatalf("error adding magnet: %s", err) } return t + } else if strings.HasPrefix(arg, "http://") || strings.HasPrefix(arg, "https://") { + response, err := http.Get(arg) + if err != nil { + log.Fatalf("Error downloading torrent file: %s", err) + } + + metaInfo, err := metainfo.Load(response.Body) + defer response.Body.Close() + if err != nil { + fmt.Fprintf(os.Stderr, "error loading torrent file %q: %s\n", arg, err) + os.Exit(1) + } + t, err := client.AddTorrent(metaInfo) + if err != nil { + log.Fatal(err) + } + return t } else { metaInfo, err := metainfo.LoadFromFile(arg) if err != nil {