1 // Converts magnet URIs and info hashes into torrent metainfo files.
10 _ "github.com/anacrolix/envpprof"
11 "github.com/anacrolix/tagflag"
13 "github.com/anacrolix/torrent"
14 "github.com/anacrolix/torrent/bencode"
23 cl, err := torrent.NewClient(nil)
25 log.Fatalf("error creating client: %s", err)
27 http.HandleFunc("/torrent", func(w http.ResponseWriter, r *http.Request) {
30 http.HandleFunc("/dht", func(w http.ResponseWriter, r *http.Request) {
31 for _, ds := range cl.DhtServers() {
35 wg := sync.WaitGroup{}
36 for _, arg := range args.Magnet {
37 t, err := cl.AddMagnet(arg)
39 log.Fatalf("error adding magnet to client: %s", err)
47 f, err := os.Create(t.Info().Name + ".torrent")
49 log.Fatalf("error creating torrent metainfo file: %s", err)
52 err = bencode.NewEncoder(f).Encode(mi)
54 log.Fatalf("error writing torrent metainfo file: %s", err)