From b114e18033de479cb7f4a0adf87b3159340debeb Mon Sep 17 00:00:00 2001 From: YouROK <8yourok8@mail.ru> Date: Fri, 19 Feb 2021 15:54:37 +0300 Subject: [PATCH] migrate to old gotorrent --- server/torr/apihelper.go | 1 + server/torr/btserver.go | 30 +++++++++++++++----------- server/torr/storage/torrstor/cache.go | 10 ++------- server/torr/storage/torrstor/piece.go | 6 +----- server/torr/storage/torrstor/reader.go | 1 + server/torr/stream.go | 1 + server/torr/torrent.go | 8 +++---- server/web/api/utils/link.go | 2 +- 8 files changed, 28 insertions(+), 31 deletions(-) diff --git a/server/torr/apihelper.go b/server/torr/apihelper.go index 262e2ab..333f6a0 100644 --- a/server/torr/apihelper.go +++ b/server/torr/apihelper.go @@ -8,6 +8,7 @@ import ( "github.com/anacrolix/torrent" "github.com/anacrolix/torrent/metainfo" + "server/log" sets "server/settings" ) diff --git a/server/torr/btserver.go b/server/torr/btserver.go index bbe40fb..8dc116a 100644 --- a/server/torr/btserver.go +++ b/server/torr/btserver.go @@ -3,10 +3,10 @@ package torr import ( "log" "sync" - "time" "github.com/anacrolix/torrent" "github.com/anacrolix/torrent/metainfo" + "server/settings" "server/torr/storage/torrstor" "server/torr/utils" @@ -78,25 +78,29 @@ func (bt *BTServer) configure() { bt.config.HTTPUserAgent = userAgent bt.config.ExtendedHandshakeClientVersion = cliVers bt.config.EstablishedConnsPerTorrent = settings.BTsets.ConnectionsLimit - bt.config.UpnpID = "YouROK/TorrServer" + // bt.config.UpnpID = "YouROK/TorrServer" //bt.config.DropMutuallyCompletePeers = true //bt.config.DropDuplicatePeerIds = true // Encryption/Obfuscation - bt.config.HeaderObfuscationPolicy = torrent.HeaderObfuscationPolicy{ - RequirePreferred: settings.BTsets.ForceEncrypt, - Preferred: true, + // bt.config.HeaderObfuscationPolicy = torrent.HeaderObfuscationPolicy{ + // RequirePreferred: settings.BTsets.ForceEncrypt, + // Preferred: true, + // } + + bt.config.EncryptionPolicy = torrent.EncryptionPolicy{ + ForceEncryption: settings.BTsets.ForceEncrypt, } - switch settings.BTsets.Strategy { - case 1: // RequestStrategyFuzzing - bt.config.DefaultRequestStrategy = torrent.RequestStrategyFuzzing() - case 2: // RequestStrategyFastest - bt.config.DefaultRequestStrategy = torrent.RequestStrategyFastest() - default: // RequestStrategyDuplicateRequestTimeout - bt.config.DefaultRequestStrategy = torrent.RequestStrategyDuplicateRequestTimeout(5 * time.Second) - } + // switch settings.BTsets.Strategy { + // case 1: // RequestStrategyFuzzing + // bt.config.DefaultRequestStrategy = torrent.RequestStrategyFuzzing() + // case 2: // RequestStrategyFastest + // bt.config.DefaultRequestStrategy = torrent.RequestStrategyFastest() + // default: // RequestStrategyDuplicateRequestTimeout + // bt.config.DefaultRequestStrategy = torrent.RequestStrategyDuplicateRequestTimeout(5 * time.Second) + // } if settings.BTsets.DhtConnectionLimit > 0 { bt.config.ConnTracker.SetMaxEntries(settings.BTsets.DhtConnectionLimit) diff --git a/server/torr/storage/torrstor/cache.go b/server/torr/storage/torrstor/cache.go index 6931c51..e9b1774 100644 --- a/server/torr/storage/torrstor/cache.go +++ b/server/torr/storage/torrstor/cache.go @@ -5,6 +5,7 @@ import ( "sync" "github.com/anacrolix/torrent" + "server/log" "server/settings" "server/torr/storage/state" @@ -193,12 +194,9 @@ func (c *Cache) getRemPieces() []*Piece { fill += p.Size } piece := c.torrent.Piece(id) - state := piece.State() + state := c.torrent.PieceState(id) if len(ranges) > 0 { if !inRanges(ranges, id) { - if state.Priority != torrent.PiecePriorityNone { - piece.SetPriority(torrent.PiecePriorityNone) - } if p.Size > 0 { piecesRemove = append(piecesRemove, p) } @@ -207,10 +205,6 @@ func (c *Cache) getRemPieces() []*Piece { piece.SetPriority(torrent.PiecePriorityNormal) } } - } else { - if state.Priority != torrent.PiecePriorityNone { - piece.SetPriority(torrent.PiecePriorityNone) - } } } diff --git a/server/torr/storage/torrstor/piece.go b/server/torr/storage/torrstor/piece.go index ad73d40..e7e46a0 100644 --- a/server/torr/storage/torrstor/piece.go +++ b/server/torr/storage/torrstor/piece.go @@ -98,9 +98,5 @@ func (p *Piece) Release() { p.Size = 0 p.complete = false - //Костыль чтобы двиг понял что куска нет, иногда загружает его по новый хз почему - pce := p.cache.torrent.Piece(p.Id) - pce.SetPriority(torrent.PiecePriorityNone) - pce.UpdateCompletion() - pce.SetPriority(torrent.PiecePriorityNone) + p.cache.torrent.Piece(p.Id).SetPriority(torrent.PiecePriorityNone) } diff --git a/server/torr/storage/torrstor/reader.go b/server/torr/storage/torrstor/reader.go index 28ed4f8..4968c2e 100644 --- a/server/torr/storage/torrstor/reader.go +++ b/server/torr/storage/torrstor/reader.go @@ -5,6 +5,7 @@ import ( "sync" "github.com/anacrolix/torrent" + "server/log" "server/settings" ) diff --git a/server/torr/stream.go b/server/torr/stream.go index a632d08..0766dea 100644 --- a/server/torr/stream.go +++ b/server/torr/stream.go @@ -9,6 +9,7 @@ import ( "github.com/anacrolix/missinggo/httptoo" "github.com/anacrolix/torrent" + sets "server/settings" "server/torr/state" ) diff --git a/server/torr/torrent.go b/server/torr/torrent.go index 9ae4009..6f237a3 100644 --- a/server/torr/torrent.go +++ b/server/torr/torrent.go @@ -300,9 +300,9 @@ func (t *Torrent) Preload(index int, size int64) { isComplete := true if readerPieceBefore >= pieceFileStart { for i := pieceFileStart; i < readerPieceBefore; i++ { - if !t.Piece(i).State().Complete { + if !t.PieceState(i).Complete { isComplete = false - if t.Piece(i).State().Priority == torrent.PiecePriorityNone { + if t.PieceState(i).Priority == torrent.PiecePriorityNone { t.Piece(i).SetPriority(torrent.PiecePriorityNormal) } } @@ -310,9 +310,9 @@ func (t *Torrent) Preload(index int, size int64) { } if readerPieceAfter <= pieceFileEnd { for i := readerPieceAfter; i <= pieceFileEnd; i++ { - if !t.Piece(i).State().Complete { + if !t.PieceState(i).Complete { isComplete = false - if t.Piece(i).State().Priority == torrent.PiecePriorityNone { + if t.PieceState(i).Priority == torrent.PiecePriorityNone { t.Piece(i).SetPriority(torrent.PiecePriorityNormal) } } diff --git a/server/web/api/utils/link.go b/server/web/api/utils/link.go index 50801dd..b0fa65e 100644 --- a/server/web/api/utils/link.go +++ b/server/web/api/utils/link.go @@ -55,7 +55,7 @@ func ParseLink(link string) (*torrent.TorrentSpec, error) { } func fromMagnet(link string) (*torrent.TorrentSpec, error) { - mag, err := metainfo.ParseMagnetUri(link) + mag, err := metainfo.ParseMagnetURI(link) if err != nil { return nil, err }