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 Season int
Episode int Episode int
Year int Year int
Month int CurrentYear int
Day int CurrentMonth int
Hour int CurrentDay int
Minute int CurrentHour int
Second int CurrentMinute int
CurrentSecond int
} }
func NewMacro(release domain.Release) Macro { func NewMacro(release domain.Release) Macro {
@ -44,12 +45,13 @@ func NewMacro(release domain.Release) Macro {
HDR: strings.Join(release.HDR, ", "), HDR: strings.Join(release.HDR, ", "),
Season: release.Season, Season: release.Season,
Episode: release.Episode, Episode: release.Episode,
Year: currentTime.Year(), Year: release.Year,
Month: int(currentTime.Month()), CurrentYear: currentTime.Year(),
Day: currentTime.Day(), CurrentMonth: int(currentTime.Month()),
Hour: currentTime.Hour(), CurrentDay: currentTime.Day(),
Minute: currentTime.Minute(), CurrentHour: currentTime.Hour(),
Second: currentTime.Second(), CurrentMinute: currentTime.Minute(),
CurrentSecond: currentTime.Second(),
} }
return ma return ma

View file

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