mirror of
https://github.com/idanoo/autobrr
synced 2025-07-23 08:49:13 +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
|
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 {
|
func (repo *ReleaseRepo) StoreReleaseActionStatus(ctx context.Context, status *domain.ReleaseActionStatus) error {
|
||||||
if status.ID != 0 {
|
if status.ID != 0 {
|
||||||
queryBuilder := repo.db.squirrel.
|
queryBuilder := repo.db.squirrel.
|
||||||
|
|
|
@ -31,6 +31,7 @@ import (
|
||||||
|
|
||||||
type ReleaseRepo interface {
|
type ReleaseRepo interface {
|
||||||
Store(ctx context.Context, release *Release) error
|
Store(ctx context.Context, release *Release) error
|
||||||
|
Update(ctx context.Context, r *Release) error
|
||||||
Find(ctx context.Context, params ReleaseQueryParams) (*FindReleasesResponse, error)
|
Find(ctx context.Context, params ReleaseQueryParams) (*FindReleasesResponse, error)
|
||||||
Get(ctx context.Context, req *GetReleaseRequest) (*Release, error)
|
Get(ctx context.Context, req *GetReleaseRequest) (*Release, error)
|
||||||
GetIndexerOptions(ctx context.Context) ([]string, error)
|
GetIndexerOptions(ctx context.Context) ([]string, error)
|
||||||
|
|
|
@ -25,6 +25,7 @@ type Service interface {
|
||||||
GetIndexerOptions(ctx context.Context) ([]string, error)
|
GetIndexerOptions(ctx context.Context) ([]string, error)
|
||||||
Stats(ctx context.Context) (*domain.ReleaseStats, error)
|
Stats(ctx context.Context) (*domain.ReleaseStats, error)
|
||||||
Store(ctx context.Context, release *domain.Release) 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
|
StoreReleaseActionStatus(ctx context.Context, actionStatus *domain.ReleaseActionStatus) error
|
||||||
Delete(ctx context.Context, req *domain.DeleteReleaseRequest) error
|
Delete(ctx context.Context, req *domain.DeleteReleaseRequest) error
|
||||||
Process(release *domain.Release)
|
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)
|
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 {
|
func (s *service) StoreReleaseActionStatus(ctx context.Context, status *domain.ReleaseActionStatus) error {
|
||||||
return s.repo.StoreReleaseActionStatus(ctx, status)
|
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
|
// loop over and check filters
|
||||||
for _, f := range 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()
|
l := s.log.With().Str("indexer", release.Indexer.Identifier).Str("filter", f.Name).Str("release", release.TorrentName).Logger()
|
||||||
|
|
||||||
// save filter on release
|
// save filter on release
|
||||||
|
@ -248,9 +251,7 @@ func (s *service) processFilters(ctx context.Context, filters []*domain.Filter,
|
||||||
var rejections []string
|
var rejections []string
|
||||||
|
|
||||||
// run actions (watchFolder, test, exec, qBittorrent, Deluge, arr etc.)
|
// run actions (watchFolder, test, exec, qBittorrent, Deluge, arr etc.)
|
||||||
for _, a := range actions {
|
for _, act := range actions {
|
||||||
act := a
|
|
||||||
|
|
||||||
// only run enabled actions
|
// only run enabled actions
|
||||||
if !act.Enabled {
|
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)
|
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
|
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 we have rejections from arr, continue to next filter
|
||||||
if len(rejections) > 0 {
|
if len(rejections) > 0 {
|
||||||
continue
|
continue
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue