mirror of
https://github.com/idanoo/autobrr
synced 2025-07-23 08:49:13 +00:00
feat(filters): support daily shows (#1462)
* feat(database): Add month, day columns to release table * feat(database): Add month, day columns to postgres release table * feat(filters): support daily show format * feat(filters): check smart episode daily * fix(tests): rss * feat(filters): add daily shows elements to form * enhancement(web): minimize html in MoviesAndTV tab * feat(filters): smart episode check proper and repack * feat(filters): smart episode do not allow multiple latest * feat(filters): smart episode check group with repack * feat(filters): smart episode allow multiple current releases --------- Co-authored-by: s0up4200 <soup@r4tio.dev> Co-authored-by: ze0s <43699394+zze0s@users.noreply.github.com> Co-authored-by: martylukyy <35452459+martylukyy@users.noreply.github.com>
This commit is contained in:
parent
2a3dcfbf05
commit
4fceccd611
15 changed files with 270 additions and 56 deletions
|
@ -41,7 +41,7 @@ type Service interface {
|
|||
ToggleEnabled(ctx context.Context, filterID int, enabled bool) error
|
||||
Delete(ctx context.Context, filterID int) error
|
||||
AdditionalSizeCheck(ctx context.Context, f *domain.Filter, release *domain.Release) (bool, error)
|
||||
CanDownloadShow(ctx context.Context, release *domain.Release) (bool, error)
|
||||
CheckSmartEpisodeCanDownload(ctx context.Context, params *domain.SmartEpisodeParams) (bool, error)
|
||||
GetDownloadsByFilterId(ctx context.Context, filterID int) (*domain.FilterDownloads, error)
|
||||
}
|
||||
|
||||
|
@ -391,7 +391,18 @@ func (s *service) CheckFilter(ctx context.Context, f *domain.Filter, release *do
|
|||
if matchedFilter {
|
||||
// smartEpisode check
|
||||
if f.SmartEpisode {
|
||||
canDownloadShow, err := s.CanDownloadShow(ctx, release)
|
||||
params := &domain.SmartEpisodeParams{
|
||||
Title: release.Title,
|
||||
Season: release.Season,
|
||||
Episode: release.Episode,
|
||||
Year: release.Year,
|
||||
Month: release.Month,
|
||||
Day: release.Day,
|
||||
Repack: release.Repack,
|
||||
Proper: release.Proper,
|
||||
Group: release.Group,
|
||||
}
|
||||
canDownloadShow, err := s.CheckSmartEpisodeCanDownload(ctx, params)
|
||||
if err != nil {
|
||||
l.Trace().Msgf("failed smart episode check: %s", f.Name)
|
||||
return false, nil
|
||||
|
@ -399,7 +410,13 @@ func (s *service) CheckFilter(ctx context.Context, f *domain.Filter, release *do
|
|||
|
||||
if !canDownloadShow {
|
||||
l.Trace().Msgf("failed smart episode check: %s", f.Name)
|
||||
release.AddRejectionF("smart episode check: not new: (%s) season: %d ep: %d", release.Title, release.Season, release.Episode)
|
||||
|
||||
if params.IsDailyEpisode() {
|
||||
f.AddRejectionF("smart episode check: not new: (%s) Daily: %d-%d-%d", release.Title, release.Year, release.Month, release.Day)
|
||||
} else {
|
||||
f.AddRejectionF("smart episode check: not new: (%s) season: %d ep: %d", release.Title, release.Season, release.Episode)
|
||||
}
|
||||
|
||||
return false, nil
|
||||
}
|
||||
}
|
||||
|
@ -506,8 +523,8 @@ func (s *service) AdditionalSizeCheck(ctx context.Context, f *domain.Filter, rel
|
|||
return true, nil
|
||||
}
|
||||
|
||||
func (s *service) CanDownloadShow(ctx context.Context, release *domain.Release) (bool, error) {
|
||||
return s.releaseRepo.CanDownloadShow(ctx, release.Title, release.Season, release.Episode)
|
||||
func (s *service) CheckSmartEpisodeCanDownload(ctx context.Context, params *domain.SmartEpisodeParams) (bool, error) {
|
||||
return s.releaseRepo.CheckSmartEpisodeCanDownload(ctx, params)
|
||||
}
|
||||
|
||||
func (s *service) RunExternalFilters(ctx context.Context, f *domain.Filter, externalFilters []domain.FilterExternal, release *domain.Release) (bool, error) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue