Write piece status as counts of contiguous identical states
This commit is contained in:
parent
9be0f6463f
commit
bacb1af357
31
torrent.go
31
torrent.go
|
@ -336,14 +336,33 @@ func (t *torrent) WriteStatus(w io.Writer) {
|
||||||
return "?"
|
return "?"
|
||||||
}
|
}
|
||||||
}())
|
}())
|
||||||
fmt.Fprint(w, "Pieces:")
|
if t.haveInfo() {
|
||||||
for index := range t.Pieces {
|
fmt.Fprint(w, "Pieces: ")
|
||||||
if index%100 == 0 {
|
var (
|
||||||
fmt.Fprintln(w)
|
char byte
|
||||||
|
count int
|
||||||
|
)
|
||||||
|
writeSequence := func() {
|
||||||
|
fmt.Fprintf(w, "%d%c ", count, char)
|
||||||
}
|
}
|
||||||
fmt.Fprintf(w, "%c", t.pieceStatusChar(index))
|
if len(t.Pieces) != 0 {
|
||||||
|
char = t.pieceStatusChar(0)
|
||||||
|
}
|
||||||
|
for index := range t.Pieces {
|
||||||
|
char1 := t.pieceStatusChar(index)
|
||||||
|
if char1 == char {
|
||||||
|
count++
|
||||||
|
} else {
|
||||||
|
writeSequence()
|
||||||
|
char = char1
|
||||||
|
count = 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if count != 0 {
|
||||||
|
writeSequence()
|
||||||
|
}
|
||||||
|
fmt.Fprintln(w)
|
||||||
}
|
}
|
||||||
fmt.Fprintln(w)
|
|
||||||
fmt.Fprintf(w, "Trackers: ")
|
fmt.Fprintf(w, "Trackers: ")
|
||||||
for _, tier := range t.Trackers {
|
for _, tier := range t.Trackers {
|
||||||
for _, tr := range tier {
|
for _, tr := range tier {
|
||||||
|
|
Loading…
Reference in New Issue