同步上游 zip:合并任务后台化 + 合并整剧可直接播放;保留 ultrafast+4线程 转码优化与 .gitignore 本地规则
This commit is contained in:
@@ -51,6 +51,7 @@ type playbackSession struct {
|
||||
}
|
||||
|
||||
type playbackEpisode struct {
|
||||
Merged bool `json:"merged,omitempty"`
|
||||
VIP bool `json:"vip,omitempty"`
|
||||
Index int `json:"index"`
|
||||
Episode string `json:"episode"`
|
||||
@@ -190,15 +191,22 @@ func (app *UIApp) handlePlaybackOpen(writer http.ResponseWriter, request *http.R
|
||||
var collectionErr error
|
||||
app.mu.Lock()
|
||||
if input.FromHistory && previous.Mode == "collection" && downloadAllowed(request.Context()) {
|
||||
candidate := app.tasks[previous.TaskID]
|
||||
if isPlayableDownloadTask(candidate) && candidate.DramaID == previous.DramaID {
|
||||
input.TaskID = candidate.ID
|
||||
} else {
|
||||
for _, taskID := range app.taskOrder {
|
||||
candidate = app.tasks[taskID]
|
||||
if isPlayableDownloadTask(candidate) && candidate.DramaID == previous.DramaID {
|
||||
input.TaskID = candidate.ID
|
||||
break
|
||||
if strings.HasPrefix(previous.TaskID, mergedPlaybackPrefix) && previous.TaskID == mergedPlaybackPrefix+previous.DramaID {
|
||||
if _, _, err := app.mergedPlaybackTaskLocked(previous.TaskID); err == nil {
|
||||
input.TaskID = previous.TaskID
|
||||
}
|
||||
}
|
||||
if input.TaskID == "" {
|
||||
candidate := app.tasks[previous.TaskID]
|
||||
if isPlayableDownloadTask(candidate) && candidate.DramaID == previous.DramaID {
|
||||
input.TaskID = candidate.ID
|
||||
} else {
|
||||
for _, taskID := range app.taskOrder {
|
||||
candidate = app.tasks[taskID]
|
||||
if isPlayableDownloadTask(candidate) && candidate.DramaID == previous.DramaID {
|
||||
input.TaskID = candidate.ID
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -310,6 +318,10 @@ func (app *UIApp) handlePlaybackOpen(writer http.ResponseWriter, request *http.R
|
||||
_, _, episode.Danmaku = hongguoPlaybackIDs(task)
|
||||
if len(downloadIDs) > 0 {
|
||||
episode.TaskID = downloadIDs[index]
|
||||
episode.Merged = strings.HasPrefix(episode.TaskID, mergedPlaybackPrefix)
|
||||
if episode.Merged {
|
||||
episode.Danmaku = false
|
||||
}
|
||||
}
|
||||
episodes = append(episodes, episode)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user