mirror of
https://github.com/GopeedLab/gopeed.git
synced 2026-11-07 00:50:27 +00:00
fix: bt fetcher restore
This commit is contained in:
1 parent
027d29e834
commit
2e5fd3017c
3 files changed
+12
-4
No files matched your search
@@ -110,7 +110,7 @@ func (f *Fetcher) Create(opts *base.Options) (err error) {
|
||||
}
|
||||
|
||||
func (f *Fetcher) Start() (err error) {
|
||||
if f.torrent == nil {
|
||||
if !f.ready.Load() {
|
||||
if err = f.addTorrent(f.meta.Req.URL); err != nil {
|
||||
return
|
||||
}
|
||||
@@ -236,5 +236,9 @@ func (fb *FetcherBuilder) Store(f fetcher.Fetcher) (data any, err error) {
|
||||
}
|
||||
|
||||
func (fb *FetcherBuilder) Restore() (v any, f func(meta *fetcher.FetcherMeta, v any) fetcher.Fetcher) {
|
||||
return nil, nil
|
||||
return nil, func(meta *fetcher.FetcherMeta, v any) fetcher.Fetcher {
|
||||
return &Fetcher{
|
||||
meta: meta,
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -281,6 +281,7 @@ func (d *Downloader) Continue(id string) (err error) {
|
||||
defer task.lock.Unlock()
|
||||
if task.Status == base.DownloadStatusPause || task.Status == base.DownloadStatusError {
|
||||
task.Status = base.DownloadStatusRunning
|
||||
task.Progress.Speed = 0
|
||||
err = d.restoreFetcher(task)
|
||||
if err != nil {
|
||||
return
|
||||
@@ -418,6 +419,7 @@ func (d *Downloader) getProtocolConfig(name string, v any) (bool, error) {
|
||||
return true, nil
|
||||
}
|
||||
|
||||
// wait task done
|
||||
func (d *Downloader) watch(task *Task) {
|
||||
err := task.fetcher.Wait()
|
||||
if err != nil {
|
||||
@@ -456,8 +458,8 @@ func (d *Downloader) restoreFetcher(task *Task) error {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
task.fetcher = f(task.Meta, v)
|
||||
}
|
||||
task.fetcher = f(task.Meta, v)
|
||||
return nil
|
||||
}()
|
||||
if err != nil {
|
||||
|
||||
@@ -21,5 +21,7 @@ func WriteJsonOk(w http.ResponseWriter, v any) {
|
||||
func WriteJson(w http.ResponseWriter, code int, v any) {
|
||||
w.Header().Set("Content-Type", "application/json; charset=utf-8")
|
||||
w.WriteHeader(code)
|
||||
json.NewEncoder(w).Encode(v)
|
||||
if v != nil {
|
||||
json.NewEncoder(w).Encode(v)
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user