feat(macros): expose parsed dates from rls string (#334)

* feat(macros): expose parsed dates from rls string

* feat(macros)!: add parsed year

BREAKING CHANGE: add prefix Current to - year, month, day, hour, min, second
This commit is contained in:
Kyle Sanderson 2022-07-06 06:04:28 -07:00 committed by GitHub
parent 95ff83cd3a
commit 85fa941cd3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 32 additions and 15 deletions

View file

@ -22,11 +22,12 @@ type Macro struct {
Season int
Episode int
Year int
Month int
Day int
Hour int
Minute int
Second int
CurrentYear int
CurrentMonth int
CurrentDay int
CurrentHour int
CurrentMinute int
CurrentSecond int
}
func NewMacro(release domain.Release) Macro {
@ -44,12 +45,13 @@ func NewMacro(release domain.Release) Macro {
HDR: strings.Join(release.HDR, ", "),
Season: release.Season,
Episode: release.Episode,
Year: currentTime.Year(),
Month: int(currentTime.Month()),
Day: currentTime.Day(),
Hour: currentTime.Hour(),
Minute: currentTime.Minute(),
Second: currentTime.Second(),
Year: release.Year,
CurrentYear: currentTime.Year(),
CurrentMonth: int(currentTime.Month()),
CurrentDay: currentTime.Day(),
CurrentHour: currentTime.Hour(),
CurrentMinute: currentTime.Minute(),
CurrentSecond: currentTime.Second(),
}
return ma

View file

@ -2,10 +2,11 @@ package action
import (
"fmt"
"github.com/autobrr/autobrr/internal/domain"
"github.com/stretchr/testify/assert"
"testing"
"time"
"github.com/autobrr/autobrr/internal/domain"
"github.com/stretchr/testify/assert"
)
func TestMacros_Parse(t *testing.T) {
@ -122,7 +123,7 @@ func TestMacros_Parse(t *testing.T) {
TorrentURL: "https://some.site/download/fakeid",
Indexer: "mock1",
},
args: args{text: "{{.Indexer}}-{{.Year}}-race"},
args: args{text: "{{.Indexer}}-{{.CurrentYear}}-race"},
want: fmt.Sprintf("mock1-%v-race", currentTime.Year()),
wantErr: false,
},
@ -152,13 +153,27 @@ func TestMacros_Parse(t *testing.T) {
want: "movies-2160p-HDR",
wantErr: false,
},
{
name: "test_release_year_1",
release: domain.Release{
TorrentName: "This movie 2021",
TorrentURL: "https://some.site/download/fakeid",
Indexer: "mock1",
Resolution: "2160p",
HDR: []string{"HDR"},
Year: 2021,
},
args: args{text: "movies-{{.Year}}"},
want: "movies-2021",
wantErr: false,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
m := NewMacro(tt.release)
got, err := m.Parse(tt.args.text)
assert.Equal(t, currentTime.Year(), m.Year)
assert.Equal(t, currentTime.Year(), m.CurrentYear)
if (err != nil) != tt.wantErr {
t.Errorf("Parse() error = %v, wantErr %v", err, tt.wantErr)