fix: episode and history status not match

This commit is contained in:
Simon Ding
2025-02-02 12:31:52 +08:00
parent 8a8bf87c32
commit 1d9eddf050
2 changed files with 31 additions and 46 deletions

View File

@@ -102,19 +102,13 @@ func (s *Server) RemoveActivity(c *gin.Context) (interface{}, error) {
return nil, errors.Wrap(err, "db")
}
if his.EpisodeID != 0 {
if !s.db.IsEpisodeDownloadingOrDownloaded(his.EpisodeID) {
s.db.SetEpisodeStatus(his.EpisodeID, episode.StatusMissing)
}
episodeIds := s.core.GetEpisodeIds(his)
} else {
seasonNum, err := utils.SeasonId(his.TargetDir)
if err != nil {
log.Errorf("no season id: %v", his.TargetDir)
seasonNum = -1
}
if his.Status == history.StatusRunning || his.Status == history.StatusUploading {
s.db.SetSeasonAllEpisodeStatus(his.MediaID, seasonNum, episode.StatusMissing)
for _, id := range episodeIds {
ep, _ := s.db.GetEpisode(his.MediaID, his.SeasonNum, id)
if !s.db.IsEpisodeDownloadingOrDownloaded(id) && ep.Status != episode.StatusDownloaded {
//没有正在下载中或者下载完成的任务并且episode状态不是已经下载完成
s.db.SetEpisodeStatus(his.EpisodeID, episode.StatusMissing)
}
}