]> Sergey Matveev's repositories - btrtrc.git/commitdiff
Add a scrape command so I can work out if trackers are seeing my test clients
authorMatt Joiner <anacrolix@gmail.com>
Wed, 19 Mar 2014 17:30:32 +0000 (04:30 +1100)
committerMatt Joiner <anacrolix@gmail.com>
Wed, 19 Mar 2014 17:30:32 +0000 (04:30 +1100)
I don't even know if scrape is the right word.

cmd/scrape/main.go [new file with mode: 0644]

diff --git a/cmd/scrape/main.go b/cmd/scrape/main.go
new file mode 100644 (file)
index 0000000..d0ee043
--- /dev/null
@@ -0,0 +1,39 @@
+package main
+
+import (
+       "bitbucket.org/anacrolix/go.torrent"
+       "bitbucket.org/anacrolix/go.torrent/tracker"
+       _ "bitbucket.org/anacrolix/go.torrent/tracker/udp"
+       "flag"
+       metainfo "github.com/nsf/libtorgo/torrent"
+       "log"
+       "os"
+)
+
+func main() {
+       flag.Parse()
+       mi, err := metainfo.Load(os.Stdin)
+       if err != nil {
+               log.Fatal(err)
+       }
+       for _, tier := range mi.AnnounceList {
+               for _, url := range tier {
+                       tr, err := tracker.New(url)
+                       if err != nil {
+                               log.Fatal(err)
+                       }
+                       err = tr.Connect()
+                       if err != nil {
+                               log.Fatal(err)
+                       }
+                       resp, err := tr.Announce(&tracker.AnnounceRequest{
+                               NumWant:  -1,
+                               InfoHash: torrent.BytesInfoHash(mi.InfoHash),
+                       })
+                       if err != nil {
+                               log.Fatal(err)
+                       }
+                       log.Print(resp)
+               }
+       }
+}