diff --git a/engine/resources.go b/engine/resources.go index 154fb61..61a35d5 100644 --- a/engine/resources.go +++ b/engine/resources.go @@ -165,7 +165,7 @@ func (c *Engine) downloadTorrent(m *ent.Media, r1 torznab.Result, seasonNum int, c.db.SetSeasonAllEpisodeStatus(m.ID, seasonNum, episode.StatusDownloading) } - } else { + } else {//movie download ep, _ := c.db.GetMovieDummyEpisode(m.ID) if ep.Status == episode.StatusMissing { c.db.SetEpisodeStatus(ep.ID, episode.StatusDownloading) diff --git a/engine/scheduler.go b/engine/scheduler.go index 755e1d8..7a89924 100644 --- a/engine/scheduler.go +++ b/engine/scheduler.go @@ -204,35 +204,37 @@ func getSeasonNum(h *ent.History) int { } func (c *Engine) GetEpisodeIds(r *ent.History) []int { - var episodeIds []int - seasonNum := getSeasonNum(r) - // if r.EpisodeID > 0 { - // episodeIds = append(episodeIds, r.EpisodeID) - // } series, err := c.db.GetMediaDetails(r.MediaID) if err != nil { log.Errorf("get media details error: %v", err) return []int{} } + if series.MediaType == media.MediaTypeMovie { //movie + ep, _ := c.db.GetMovieDummyEpisode(series.ID) + return []int{ep.ID} + } else { //tv + var episodeIds []int + seasonNum := getSeasonNum(r) - if len(r.EpisodeNums) > 0 { - for _, epNum := range r.EpisodeNums { + if len(r.EpisodeNums) > 0 { + for _, epNum := range r.EpisodeNums { + for _, ep := range series.Episodes { + if ep.SeasonNumber == seasonNum && ep.EpisodeNumber == epNum { + episodeIds = append(episodeIds, ep.ID) + } + } + } + } else { for _, ep := range series.Episodes { - if ep.SeasonNumber == seasonNum && ep.EpisodeNumber == epNum { + if ep.SeasonNumber == seasonNum { episodeIds = append(episodeIds, ep.ID) } } - } - } else { - for _, ep := range series.Episodes { - if ep.SeasonNumber == seasonNum { - episodeIds = append(episodeIds, ep.ID) - } - } + } + return episodeIds } - return episodeIds } func (c *Engine) moveCompletedTask(id int) (err1 error) {