package main import ( "fmt" "log" "os" "dim13.org/btget/meta" "dim13.org/btget/peer" "dim13.org/btget/tracker" ) func main() { if len(os.Args) != 2 { log.Fatal("usage: ", os.Args[0], " ") } tor, err := meta.New(os.Args[1]) if err != nil { log.Fatal(err) } buf := make([]byte, tor.Info.PieceLength) pieces := tor.Info.GetPieces() for i, p := range pieces { n, err := tor.Info.ReadAt(buf, p.Offset) if err != nil { log.Fatal(err) } fmt.Println(i, p.Offset, n, p.Check(buf[:n])) pieces[i] = p } fmt.Println("good pieces:", pieces.Good()) fmt.Println("bit field:", pieces.BitField()) id, _ := peer.NewID() req := tracker.Request{ InfoHash: tor.Info.Hash(), PeerID: []byte(id), Compact: true, Port: 6881, } resp, err := req.Get(tor.Announce) if err != nil { log.Fatal(err) } fmt.Println(resp.IntervalDuration()) fmt.Println(resp.PeerAddr()) }