mirror of
https://github.com/simon-ding/polaris.git
synced 2026-06-09 03:27:39 +08:00
feat: add upload progress and fix panic
This commit is contained in:
9
db/db.go
9
db/db.go
@@ -374,6 +374,15 @@ func (s *StorageInfo) ToWebDavSetting() WebdavSetting {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *StorageInfo) ToAlistSetting() WebdavSetting {
|
||||||
|
return WebdavSetting{
|
||||||
|
URL: s.Settings["url"],
|
||||||
|
User: s.Settings["user"],
|
||||||
|
Password: s.Settings["password"],
|
||||||
|
ChangeFileHash: s.Settings["change_file_hash"],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
type WebdavSetting struct {
|
type WebdavSetting struct {
|
||||||
URL string `json:"url"`
|
URL string `json:"url"`
|
||||||
User string `json:"user"`
|
User string `json:"user"`
|
||||||
|
|||||||
@@ -17,8 +17,9 @@ import (
|
|||||||
|
|
||||||
type Activity struct {
|
type Activity struct {
|
||||||
*ent.History
|
*ent.History
|
||||||
Progress int `json:"progress"`
|
Progress int `json:"progress"`
|
||||||
SeedRatio float64 `json:"seed_ratio"`
|
SeedRatio float64 `json:"seed_ratio"`
|
||||||
|
UploadProgress float64 `json:"upload_progress"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *Server) GetAllActivities(c *gin.Context) (interface{}, error) {
|
func (s *Server) GetAllActivities(c *gin.Context) (interface{}, error) {
|
||||||
@@ -44,6 +45,9 @@ func (s *Server) GetAllActivities(c *gin.Context) (interface{}, error) {
|
|||||||
} else {
|
} else {
|
||||||
a.SeedRatio = r
|
a.SeedRatio = r
|
||||||
}
|
}
|
||||||
|
if task.UploadProgresser != nil {
|
||||||
|
a.UploadProgress = task.UploadProgresser()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
activities = append(activities, a)
|
activities = append(activities, a)
|
||||||
|
|||||||
@@ -207,6 +207,7 @@ func (c *Client) moveCompletedTask(id int) (err1 error) {
|
|||||||
if err := stImpl.Copy(filepath.Join(c.db.GetDownloadDir(), torrentName), r.TargetDir); err != nil {
|
if err := stImpl.Copy(filepath.Join(c.db.GetDownloadDir(), torrentName), r.TargetDir); err != nil {
|
||||||
return errors.Wrap(err, "move file")
|
return errors.Wrap(err, "move file")
|
||||||
}
|
}
|
||||||
|
torrent.UploadProgresser = stImpl.UploadProgress
|
||||||
|
|
||||||
c.db.SetHistoryStatus(r.ID, history.StatusSeeding)
|
c.db.SetHistoryStatus(r.ID, history.StatusSeeding)
|
||||||
if len(episodeIds) > 0 {
|
if len(episodeIds) > 0 {
|
||||||
@@ -285,6 +286,7 @@ func (c *Client) CheckDownloadedSeriesFiles(m *ent.Media) error {
|
|||||||
type Task struct {
|
type Task struct {
|
||||||
//Processing bool
|
//Processing bool
|
||||||
pkg.Torrent
|
pkg.Torrent
|
||||||
|
UploadProgresser func() float64
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Client) DownloadSeriesAllEpisodes(id int) []string {
|
func (c *Client) DownloadSeriesAllEpisodes(id int) []string {
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ func (s *Server) AddStorage(c *gin.Context) (interface{}, error) {
|
|||||||
log.Infof("file name: %v", f.Name())
|
log.Infof("file name: %v", f.Name())
|
||||||
}
|
}
|
||||||
} else if in.Implementation == "alist" {
|
} else if in.Implementation == "alist" {
|
||||||
cfg := in.ToWebDavSetting()
|
cfg := in.ToAlistSetting()
|
||||||
_, err := storage.NewAlist(&alist.Config{URL: cfg.URL, Username: cfg.User, Password: cfg.Password}, in.TvPath)
|
_, err := storage.NewAlist(&alist.Config{URL: cfg.URL, Username: cfg.User, Password: cfg.Password}, in.TvPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, errors.Wrap(err, "alist")
|
return nil, errors.Wrap(err, "alist")
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ class Activity {
|
|||||||
required this.saved,
|
required this.saved,
|
||||||
required this.progress,
|
required this.progress,
|
||||||
required this.size,
|
required this.size,
|
||||||
required this.seedRatio});
|
required this.seedRatio, required this.uploadProgress});
|
||||||
|
|
||||||
final int? id;
|
final int? id;
|
||||||
final int? mediaId;
|
final int? mediaId;
|
||||||
@@ -86,6 +86,7 @@ class Activity {
|
|||||||
final int? progress;
|
final int? progress;
|
||||||
final int? size;
|
final int? size;
|
||||||
final double seedRatio;
|
final double seedRatio;
|
||||||
|
final double uploadProgress;
|
||||||
|
|
||||||
factory Activity.fromJson(Map<String, dynamic> json) {
|
factory Activity.fromJson(Map<String, dynamic> json) {
|
||||||
return Activity(
|
return Activity(
|
||||||
@@ -99,6 +100,8 @@ class Activity {
|
|||||||
saved: json["saved"],
|
saved: json["saved"],
|
||||||
progress: json["progress"],
|
progress: json["progress"],
|
||||||
seedRatio: json["seed_ratio"],
|
seedRatio: json["seed_ratio"],
|
||||||
size: json["size"]);
|
size: json["size"],
|
||||||
|
uploadProgress: json["upload_progress"]
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user