49 lines
972 B
Go
49 lines
972 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"io"
|
|
"log"
|
|
|
|
"github.com/anacrolix/torrent"
|
|
)
|
|
|
|
const testMagnet = "magnet:?xt=urn:btih:a88fda5954e89178c372716a6a78b8180ed4dad3&ws=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2F"
|
|
|
|
func main() {
|
|
err := mainErr()
|
|
if err != nil {
|
|
log.Fatalf("error in main: %v", err)
|
|
}
|
|
}
|
|
|
|
func mainErr() error {
|
|
cfg := torrent.NewDefaultClientConfig()
|
|
// We could disable non-webseed peer types here, to force any errors.
|
|
client, _ := torrent.NewClient(cfg)
|
|
|
|
// Add directly from metainfo, because we want to force webseeding to serve data, and webseeding
|
|
// won't get us the metainfo.
|
|
t, err := client.AddTorrentFromFile("testdata/The WIRED CD - Rip. Sample. Mash. Share.torrent")
|
|
if err != nil {
|
|
return err
|
|
}
|
|
<-t.GotInfo()
|
|
|
|
fmt.Println("GOT INFO")
|
|
|
|
f := t.Files()[0]
|
|
|
|
r := f.NewReader()
|
|
|
|
r.Seek(5, io.SeekStart)
|
|
buf := make([]byte, 5)
|
|
n, err := r.Read(buf)
|
|
|
|
fmt.Println("END", n, buf, err)
|
|
|
|
t.DownloadAll()
|
|
client.WaitAll()
|
|
return nil
|
|
}
|