From 5fdbc767bc12cdaf7d969a598e6a2eb4b5e66b7c Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Tue, 12 Jul 2016 21:06:07 +0200 Subject: Good pieces --- meta/piece.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'meta/piece.go') diff --git a/meta/piece.go b/meta/piece.go index a3119e9..def03fb 100644 --- a/meta/piece.go +++ b/meta/piece.go @@ -2,6 +2,8 @@ package meta import "crypto/sha1" +type Pieces []Piece + type Piece struct { Offset int64 Length int @@ -13,3 +15,13 @@ func (p *Piece) Check(b []byte) bool { p.Ok = sha1.Sum(b) == p.Sum return p.Ok } + +func (p Pieces) Good() float64 { + var good int + for _, v := range p { + if v.Ok { + good++ + } + } + return float64(good) * 100.0 / float64(len(p)) +} -- cgit v1.2.3