mirror of
https://github.com/idanoo/autobrr
synced 2025-07-22 16:29:12 +00:00
fix(releases): update size after actions run (#1809)
This commit is contained in:
parent
f4c2aef38c
commit
59c5858bf0
3 changed files with 31 additions and 5 deletions
|
@ -56,6 +56,26 @@ func (repo *ReleaseRepo) Store(ctx context.Context, r *domain.Release) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
func (repo *ReleaseRepo) Update(ctx context.Context, r *domain.Release) error {
|
||||
queryBuilder := repo.db.squirrel.
|
||||
Update("release").
|
||||
Set("size", r.Size).
|
||||
Where(sq.Eq{"id": r.ID})
|
||||
|
||||
query, args, err := queryBuilder.ToSql()
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "error building query")
|
||||
}
|
||||
|
||||
if _, err = repo.db.handler.ExecContext(ctx, query, args...); err != nil {
|
||||
return errors.Wrap(err, "error executing query")
|
||||
}
|
||||
|
||||
repo.log.Debug().Msgf("release.update: %d %s", r.ID, r.TorrentName)
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (repo *ReleaseRepo) StoreReleaseActionStatus(ctx context.Context, status *domain.ReleaseActionStatus) error {
|
||||
if status.ID != 0 {
|
||||
queryBuilder := repo.db.squirrel.
|
||||
|
|
|
@ -31,6 +31,7 @@ import (
|
|||
|
||||
type ReleaseRepo interface {
|
||||
Store(ctx context.Context, release *Release) error
|
||||
Update(ctx context.Context, r *Release) error
|
||||
Find(ctx context.Context, params ReleaseQueryParams) (*FindReleasesResponse, error)
|
||||
Get(ctx context.Context, req *GetReleaseRequest) (*Release, error)
|
||||
GetIndexerOptions(ctx context.Context) ([]string, error)
|
||||
|
|
|
@ -25,6 +25,7 @@ type Service interface {
|
|||
GetIndexerOptions(ctx context.Context) ([]string, error)
|
||||
Stats(ctx context.Context) (*domain.ReleaseStats, error)
|
||||
Store(ctx context.Context, release *domain.Release) error
|
||||
Update(ctx context.Context, release *domain.Release) error
|
||||
StoreReleaseActionStatus(ctx context.Context, actionStatus *domain.ReleaseActionStatus) error
|
||||
Delete(ctx context.Context, req *domain.DeleteReleaseRequest) error
|
||||
Process(release *domain.Release)
|
||||
|
@ -81,6 +82,10 @@ func (s *service) Store(ctx context.Context, release *domain.Release) error {
|
|||
return s.repo.Store(ctx, release)
|
||||
}
|
||||
|
||||
func (s *service) Update(ctx context.Context, release *domain.Release) error {
|
||||
return s.repo.Update(ctx, release)
|
||||
}
|
||||
|
||||
func (s *service) StoreReleaseActionStatus(ctx context.Context, status *domain.ReleaseActionStatus) error {
|
||||
return s.repo.StoreReleaseActionStatus(ctx, status)
|
||||
}
|
||||
|
@ -189,8 +194,6 @@ func (s *service) processFilters(ctx context.Context, filters []*domain.Filter,
|
|||
|
||||
// loop over and check filters
|
||||
for _, f := range filters {
|
||||
f := f
|
||||
|
||||
l := s.log.With().Str("indexer", release.Indexer.Identifier).Str("filter", f.Name).Str("release", release.TorrentName).Logger()
|
||||
|
||||
// save filter on release
|
||||
|
@ -248,9 +251,7 @@ func (s *service) processFilters(ctx context.Context, filters []*domain.Filter,
|
|||
var rejections []string
|
||||
|
||||
// run actions (watchFolder, test, exec, qBittorrent, Deluge, arr etc.)
|
||||
for _, a := range actions {
|
||||
act := a
|
||||
|
||||
for _, act := range actions {
|
||||
// only run enabled actions
|
||||
if !act.Enabled {
|
||||
l.Trace().Msgf("release.Process: indexer: %s, filter: %s release: %s action '%s' not enabled, skip", release.Indexer.Name, release.FilterName, release.TorrentName, act.Name)
|
||||
|
@ -291,6 +292,10 @@ func (s *service) processFilters(ctx context.Context, filters []*domain.Filter,
|
|||
continue
|
||||
}
|
||||
|
||||
if err = s.Update(ctx, release); err != nil {
|
||||
l.Error().Err(err).Msgf("release.Process: error updating release: %v", release.TorrentName)
|
||||
}
|
||||
|
||||
// if we have rejections from arr, continue to next filter
|
||||
if len(rejections) > 0 {
|
||||
continue
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue