]> 127.0.0.1 Git - bili_danmu/.git/commitdiff
Improve 延迟加载列表
authorqydysky <qydysky@foxmail.com>
Sun, 17 Nov 2024 06:33:03 +0000 (14:33 +0800)
committerqydysky <qydysky@foxmail.com>
Sun, 17 Nov 2024 06:33:03 +0000 (14:33 +0800)
Reply/F.go

index df39a6ed2d8077906ba8b18af0928e62ff30cc06..71727b0ed0fbe6f015fb28998d701ac565b78e67 100644 (file)
@@ -1295,7 +1295,12 @@ func init() {
                                        c.ResStruct{Code: -1, Message: e.Error(), Data: nil}.Write(w)
                                        return
                                } else {
-                                       for i, n := 0, len(fs); i < n; i++ {
+                                       sort.Slice(fs, func(i, j int) bool {
+                                               return fs[i] > fs[j]
+                                       })
+                                       skip, _ := strconv.Atoi(r.URL.Query().Get("skip"))
+                                       size, _ := strconv.Atoi(r.URL.Query().Get("size"))
+                                       for i, n := skip, len(fs); i < n && (size == 0 || len(filePaths) < size); i++ {
                                                if filePath, e := videoInfo.Get.Run(context.Background(), fs[i]); e != nil {
                                                        flog.L(`W: `, fs[i], e)
                                                        continue
@@ -1313,19 +1318,6 @@ func init() {
                                                }
                                        }
                                }
-                               sort.Slice(filePaths, func(i, j int) bool {
-                                       return filePaths[i].StartT > filePaths[j].StartT
-                               })
-                               skip, _ := strconv.Atoi(r.URL.Query().Get("skip"))
-                               size, _ := strconv.Atoi(r.URL.Query().Get("size"))
-                               if skip <= len(filePaths) {
-                                       filePaths = filePaths[skip:]
-                               } else {
-                                       filePaths = filePaths[:0]
-                               }
-                               if size <= len(filePaths) {
-                                       filePaths = filePaths[:size]
-                               }
                        } else if len(filePaths) == 0 {
                                c.ResStruct{Code: -1, Message: "直播流保存位置无效", Data: nil}.Write(w)
                                flog.L(`W: `, `直播流保存位置无效`)