]> Sergey Matveev's repositories - btrtrc.git/commitdiff
cmd/torrent-magnet: Converts a torrent from stdin to a magnet link
authorMatt Joiner <anacrolix@gmail.com>
Fri, 27 Mar 2015 06:16:50 +0000 (17:16 +1100)
committerMatt Joiner <anacrolix@gmail.com>
Fri, 27 Mar 2015 06:16:50 +0000 (17:16 +1100)
client.go
cmd/torrent-magnet/main.go [new file with mode: 0644]

index d525b56f92e915939a4d917842c61a8914baad42..430cb54218714c11a8c36b2f47f51453960b693d 100644 (file)
--- a/client.go
+++ b/client.go
@@ -2250,8 +2250,9 @@ func TorrentSpecFromMagnetURI(uri string) (spec *TorrentSpec, err error) {
 
 func TorrentSpecFromMetaInfo(mi *metainfo.MetaInfo) (spec *TorrentSpec) {
        spec = &TorrentSpec{
-               Trackers: mi.AnnounceList,
-               Info:     &mi.Info,
+               Trackers:    mi.AnnounceList,
+               Info:        &mi.Info,
+               DisplayName: mi.Info.Name,
        }
        CopyExact(&spec.InfoHash, &mi.Info.Hash)
        return
diff --git a/cmd/torrent-magnet/main.go b/cmd/torrent-magnet/main.go
new file mode 100644 (file)
index 0000000..23a0375
--- /dev/null
@@ -0,0 +1,32 @@
+package main
+
+import (
+       "fmt"
+       "os"
+
+       "github.com/anacrolix/libtorgo/metainfo"
+
+       "github.com/anacrolix/torrent"
+)
+
+func main() {
+       mi, err := metainfo.Load(os.Stdin)
+       if err != nil {
+               fmt.Fprintf(os.Stderr, "error reading metainfo from stdin: %s", err)
+               os.Exit(1)
+       }
+       ts := torrent.TorrentSpecFromMetaInfo(mi)
+       m := torrent.Magnet{
+               InfoHash: ts.InfoHash,
+               Trackers: func() (ret []string) {
+                       for _, tier := range ts.Trackers {
+                               for _, tr := range tier {
+                                       ret = append(ret, tr)
+                               }
+                       }
+                       return
+               }(),
+               DisplayName: ts.DisplayName,
+       }
+       fmt.Fprintf(os.Stdout, "%s\n", m.String())
+}