fmt.Fprintf(w, "Enabled trackers:\n")
func() {
tw := tabwriter.NewWriter(w, 0, 0, 2, ' ', 0)
- fmt.Fprintf(tw, " URL\tNext announce\tLast announce\n")
+ fmt.Fprintf(tw, " URL\tExtra\n")
for _, ta := range slices.Sort(slices.FromMapElems(t.trackerAnnouncers), func(l, r torrentTrackerAnnouncer) bool {
lu := l.URL()
ru := r.URL()
- var luns, runs url.URL = lu, ru
+ var luns, runs url.URL = *lu, *ru
luns.Scheme = ""
runs.Scheme = ""
var ml missinggo.MultiLess
ml.StrictNext(lu.String() == ru.String(), lu.String() < ru.String())
return ml.Less()
}).([]torrentTrackerAnnouncer) {
- fmt.Fprintf(tw, " %s\n", ta.statusLine())
+ fmt.Fprintf(tw, " %q\t%v\n", ta.URL(), ta.statusLine())
}
tw.Flush()
}()
type torrentTrackerAnnouncer interface {
statusLine() string
- URL() url.URL
+ URL() *url.URL
}
-func (me trackerScraper) URL() url.URL {
- return me.u
+func (me trackerScraper) URL() *url.URL {
+ return &me.u
}
func (ts *trackerScraper) statusLine() string {
var w bytes.Buffer
- fmt.Fprintf(&w, "%q\t%s\t%s",
- ts.u.String(),
+ fmt.Fprintf(&w, "next ann: %v, last ann: %v",
func() string {
na := time.Until(ts.lastAnnounce.Completed.Add(ts.lastAnnounce.Interval))
if na > 0 {
}
func (me websocketTrackerStatus) statusLine() string {
- return fmt.Sprintf("%q: %+v", me.tc.Url, me.tc.Stats())
+ return fmt.Sprintf("%+v", me.tc.Stats())
}
-func (me websocketTrackerStatus) URL() url.URL {
- return me.url
+func (me websocketTrackerStatus) URL() *url.URL {
+ return &me.url
}
type refCountedWebtorrentTrackerClient struct {