@@ -11,6 +11,7 @@ import (
1111 "net/url"
1212 "os"
1313 "path/filepath"
14+ "sort"
1415 "strconv"
1516 "strings"
1617 "time"
@@ -269,10 +270,15 @@ func (c *APIClient) handleCreateFeedDownloadTask(ctx *gin.Context) {
269270 result .Err (ctx , 500 , "创建任务失败:" + err .Error ())
270271 return
271272 }
272- c .channels .Broadcast (APIClientWSMessage {
273- Type : "tasks" ,
274- Data : c .downloader .GetTasks (),
275- })
273+ task := c .downloader .GetTask (id )
274+ if task != nil {
275+ c .channels .Broadcast (APIClientWSMessage {
276+ Type : "event" ,
277+ Data : map [string ]interface {}{
278+ "task" : task ,
279+ },
280+ })
281+ }
276282 result .Ok (ctx , gin.H {"id" : id })
277283}
278284
@@ -328,6 +334,9 @@ func (c *APIClient) handleFetchTaskList(ctx *gin.Context) {
328334 filter .Statuses = []base.Status {base .Status (status )}
329335 }
330336 list := c .downloader .GetTasksByFilter (filter )
337+ sort .Slice (list , func (i , j int ) bool {
338+ return list [i ].CreatedAt .After (list [j ].CreatedAt )
339+ })
331340 total := len (list )
332341 page_num , err := strconv .Atoi (page_str )
333342 if err != nil {
@@ -429,10 +438,15 @@ func (c *APIClient) handleCreateLiveTask(ctx *gin.Context) {
429438 result .Err (ctx , 500 , "创建任务失败: " + err .Error ())
430439 return
431440 }
432- c .channels .Broadcast (APIClientWSMessage {
433- Type : "tasks" ,
434- Data : c .downloader .GetTasks (),
435- })
441+ task := c .downloader .GetTask (id )
442+ if task != nil {
443+ c .channels .Broadcast (APIClientWSMessage {
444+ Type : "event" ,
445+ Data : map [string ]interface {}{
446+ "task" : task ,
447+ },
448+ })
449+ }
436450 result .Ok (ctx , gin.H {"id" : id })
437451}
438452
@@ -474,10 +488,17 @@ func (c *APIClient) handleBatchCreateTask(ctx *gin.Context) {
474488 // Int("count", len(task.Reqs)).
475489 // Dur("cost", time.Since(start)).
476490 // Msg("批量创建任务完成")
477- c .channels .Broadcast (APIClientWSMessage {
478- Type : "tasks" ,
479- Data : c .downloader .GetTasks (),
480- })
491+ for _ , id := range ids {
492+ task := c .downloader .GetTask (id )
493+ if task != nil {
494+ c .channels .Broadcast (APIClientWSMessage {
495+ Type : "event" ,
496+ Data : map [string ]interface {}{
497+ "task" : task ,
498+ },
499+ })
500+ }
501+ }
481502 result .Ok (ctx , gin.H {"ids" : ids })
482503}
483504
@@ -682,10 +703,15 @@ func (c *APIClient) handleCreateChannelsTask(ctx *gin.Context) {
682703 result .Err (ctx , 500 , "下载失败" )
683704 return
684705 }
685- c .channels .Broadcast (APIClientWSMessage {
686- Type : "tasks" ,
687- Data : c .downloader .GetTasks (),
688- })
706+ task := c .downloader .GetTask (id )
707+ if task != nil {
708+ c .channels .Broadcast (APIClientWSMessage {
709+ Type : "event" ,
710+ Data : map [string ]interface {}{
711+ "task" : task ,
712+ },
713+ })
714+ }
689715 result .Ok (ctx , gin.H {"id" : id })
690716}
691717
0 commit comments