github.com/anacrolix/torrent@v1.61.0/internal/cmd/issue-464/main.go (about) 1 package main 2 3 import ( 4 "fmt" 5 "io" 6 "log" 7 8 "github.com/anacrolix/torrent" 9 ) 10 11 const testMagnet = "magnet:?xt=urn:btih:a88fda5954e89178c372716a6a78b8180ed4dad3&ws=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2F" 12 13 func main() { 14 err := mainErr() 15 if err != nil { 16 log.Fatalf("error in main: %v", err) 17 } 18 } 19 20 func mainErr() error { 21 cfg := torrent.NewDefaultClientConfig() 22 // We could disable non-webseed peer types here, to force any errors. 23 client, _ := torrent.NewClient(cfg) 24 25 // Add directly from metainfo, because we want to force webseeding to serve data, and webseeding 26 // won't get us the metainfo. 27 t, err := client.AddTorrentFromFile("testdata/The WIRED CD - Rip. Sample. Mash. Share.torrent") 28 if err != nil { 29 return err 30 } 31 <-t.GotInfo() 32 33 fmt.Println("GOT INFO") 34 35 f := t.Files()[0] 36 37 r := f.NewReader() 38 39 r.Seek(5, io.SeekStart) 40 buf := make([]byte, 5) 41 n, err := r.Read(buf) 42 43 fmt.Println("END", n, buf, err) 44 45 t.DownloadAll() 46 client.WaitAll() 47 return nil 48 }