]> Sergey Matveev's repositories - btrtrc.git/blob - cmd/scrape/main.go
e2f4cf7cc9dcdb26a6b2d9eb7f089acff258b760
[btrtrc.git] / cmd / scrape / main.go
1 package main
2
3 import (
4         "flag"
5         "log"
6         "os"
7
8         "bitbucket.org/anacrolix/go.torrent/tracker"
9         _ "bitbucket.org/anacrolix/go.torrent/tracker/udp"
10         "bitbucket.org/anacrolix/go.torrent/util"
11         metainfo "github.com/anacrolix/libtorgo/metainfo"
12 )
13
14 func main() {
15         flag.Parse()
16         mi, err := metainfo.Load(os.Stdin)
17         if err != nil {
18                 log.Fatal(err)
19         }
20         for _, tier := range mi.AnnounceList {
21                 for _, url := range tier {
22                         tr, err := tracker.New(url)
23                         if err != nil {
24                                 log.Fatal(err)
25                         }
26                         err = tr.Connect()
27                         if err != nil {
28                                 log.Fatal(err)
29                         }
30                         ar := tracker.AnnounceRequest{
31                                 NumWant: -1,
32                         }
33                         util.CopyExact(ar.InfoHash, mi.Info.Hash)
34                         resp, err := tr.Announce(&ar)
35                         if err != nil {
36                                 log.Fatal(err)
37                         }
38                         log.Print(resp)
39                 }
40         }
41 }