From 85fa941cd34447020970c007ca58b386c09cf317 Mon Sep 17 00:00:00 2001 From: Kyle Sanderson Date: Wed, 6 Jul 2022 06:04:28 -0700 Subject: [PATCH] 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 --- internal/action/macros.go | 24 +++++++++++++----------- internal/action/macros_test.go | 23 +++++++++++++++++++---- 2 files changed, 32 insertions(+), 15 deletions(-) diff --git a/internal/action/macros.go b/internal/action/macros.go index a3f3f8a..53c26c8 100644 --- a/internal/action/macros.go +++ b/internal/action/macros.go @@ -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 diff --git a/internal/action/macros_test.go b/internal/action/macros_test.go index 9766596..e22bab4 100644 --- a/internal/action/macros_test.go +++ b/internal/action/macros_test.go @@ -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)