diff --git a/server/torr/preload.go b/server/torr/preload.go index df1efa6..95479d8 100644 --- a/server/torr/preload.go +++ b/server/torr/preload.go @@ -66,7 +66,7 @@ func (t *Torrent) Preload(index int, size int64) { }() if ffprobe.Exists() { - host := "http://127.0.0.1:" + settings.Port + "/stream?link=" + t.Hash().HexString() + "&index=" + strconv.Itoa(index) + "&play" + host := "http://127.0.0.1:" + settings.Port + "/play/" + t.Hash().HexString() + "/" + strconv.Itoa(index) // + "&play" if data, err := ffprobe.ProbeUrl(host); err == nil { t.BitRate = data.Format.BitRate t.DurationSeconds = data.Format.DurationSeconds diff --git a/server/torr/torrent.go b/server/torr/torrent.go index 689ba67..d5bc46d 100644 --- a/server/torr/torrent.go +++ b/server/torr/torrent.go @@ -119,9 +119,15 @@ func (t *Torrent) WaitInfo() bool { } func (t *Torrent) GotInfo() bool { + // log.TLogln("GotInfo state:", t.Stat) if t.Stat == state.TorrentClosed { return false } + // assume we have info in preload state + // and dont override with TorrentWorking + if t.Stat == state.TorrentPreload { + return true + } t.Stat = state.TorrentGettingInfo if t.WaitInfo() { t.Stat = state.TorrentWorking @@ -250,11 +256,11 @@ func (t *Torrent) GetCache() *torrstor.Cache { func (t *Torrent) drop() { t.muTorrent.Lock() + defer t.muTorrent.Unlock() if t.Torrent != nil { t.Torrent.Drop() t.Torrent = nil } - t.muTorrent.Unlock() } func (t *Torrent) Close() {