9 "github.com/anacrolix/torrent"
10 "github.com/anacrolix/torrent/metainfo"
14 if err := dlTorrents("."); err != nil {
15 fmt.Fprintf(os.Stderr, "fatal error: %v\n", err)
20 func dlTorrents(dir string) error {
21 conf := torrent.NewDefaultClientConfig()
23 cl, err := torrent.NewClient(conf)
27 http.HandleFunc("/torrentClientStatus", func(w http.ResponseWriter, r *http.Request) {
31 "urlteam_2021-02-03-21-17-02",
32 "urlteam_2021-02-02-11-17-02",
33 "urlteam_2021-01-31-11-17-02",
34 "urlteam_2021-01-30-21-17-01",
35 "urlteam_2021-01-29-21-17-01",
36 "urlteam_2021-01-28-11-17-01",
37 "urlteam_2021-01-27-11-17-02",
38 "urlteam_2021-01-26-11-17-02",
39 "urlteam_2021-01-25-03-17-02",
40 "urlteam_2021-01-24-03-17-02",
42 for _, id := range ids {
43 t, err := addTorrentFromURL(cl, fmt.Sprintf("https://archive.org/download/%s/%s_archive.torrent", id, id))
45 return fmt.Errorf("downloading metainfo for %q: %w", id, err)
50 return errors.New("client stopped early")
55 func addTorrentFromURL(cl *torrent.Client, url string) (*torrent.Torrent, error) {
56 fmt.Printf("Adding torrent: %s\n", url)
57 resp, err := http.Get(url)
61 if resp.StatusCode != http.StatusOK {
62 return nil, fmt.Errorf("status %s", resp.Status)
64 defer resp.Body.Close()
65 meta, err := metainfo.Load(resp.Body)
69 return cl.AddTorrent(meta)