package main import ( "fmt" "io/ioutil" "log" "os" "dim13.org/btget/bencode" "dim13.org/btget/meta" ) func Open(fname string) (meta.Torrent, error) { var tor meta.Torrent body, err := ioutil.ReadFile(fname) if err != nil { return meta.Torrent{}, err } err = bencode.Unmarshal(body, &tor) if err != nil { return meta.Torrent{}, err } return tor, nil } func main() { if len(os.Args) != 2 { log.Fatal("usage: ", os.Args[0], " ") } tor, err := Open(os.Args[1]) if err != nil { log.Fatal(err) } buf := make([]byte, tor.Info.PieceLength) for i, p := range tor.Info.GetPieces() { n, err := tor.Info.ReadAt(buf, p.Offset) if err != nil { log.Fatal(err) } fmt.Println(i, p.Offset, n, p.Check(buf[:n])) } }