Play some more with torrenting

Signed-off-by: Miek Gieben <miek@miek.nl>
This commit is contained in:
Miek Gieben
2020-07-27 15:55:31 +02:00
parent ef33425487
commit 37e6038788
12 changed files with 277 additions and 19 deletions

View File

@@ -1,25 +1,49 @@
package torrent
import (
"io/ioutil"
"log"
"path/filepath"
"time"
rtorrent "github.com/cenkalti/rain/torrent"
)
func (t *Torrent) StartSession() error {
s, err := rtorrent.NewSession(torrent.DefaultConfig)
func (t *Torrent) Do() error {
dc := rtorrent.DefaultConfig
dc.DHTEnabled = t.dht
dc.RPCEnabled = false
dc.DHTBootstrapNodes = []string{"127.0.0.1:7246"} // its a me
td, err := ioutil.TempDir("", "example")
if err != nil {
return err
}
dc.DataDir = td
dc.Database = filepath.Join(td, "session.db")
s, err := rtorrent.NewSession(dc)
if err != nil {
return err
}
// Add magnet link
tor, _ := ses.AddURI(magnetLink, nil)
ti, err := NewTorrentInfo("plugin/torrent/testdata/db.miek.nl")
if err != nil {
return err
}
tor, err := s.AddTorrent(ti.ToReader(), nil)
if err != nil {
return err
}
// mag, _ := tor.Magnet()
go s.StartAll()
// Watch the progress
for range time.Tick(time.Second) {
s := tor.Stats()
log.Printf("Status: %s, Downloaded: %d, Peers: %d", s.Status.String(), s.Bytes.Completed, s.Peers.Total)
}
return nil
}