Skip to content

Commit

Permalink
fix: stack: Samsung #99
Browse files Browse the repository at this point in the history
  • Loading branch information
simulot committed Dec 13, 2023
1 parent fab5422 commit bc620c1
Show file tree
Hide file tree
Showing 2 changed files with 74 additions and 37 deletions.
12 changes: 11 additions & 1 deletion helpers/stacking/stack.go
Expand Up @@ -104,7 +104,7 @@ func (sb *StackBuilder) ProcessAsset(ID string, fileName string, captureDate tim
// bool -> is this is the cover if the burst
type stackMatcher func(name string) (bool, string, bool)

var stackMatchers = []stackMatcher{huaweiBurst, pixelBurst}
var stackMatchers = []stackMatcher{huaweiBurst, pixelBurst, samsungBurst}

var huaweiBurstRE = regexp.MustCompile(`^(.*)(_BURST\d+)(_COVER)?(\..*)$`)

Expand All @@ -126,6 +126,16 @@ func pixelBurst(name string) (bool, string, bool) {
return true, parts[1], len(parts[4]) > 0
}

var samsungBurstRE = regexp.MustCompile(`^(\d{8}_\d{6})_(\d{3})\..{3}$`)

func samsungBurst(name string) (bool, string, bool) {
parts := samsungBurstRE.FindStringSubmatch(name)
if len(parts) == 0 {
return false, "", false
}
return true, parts[1], parts[2] == "001"
}

func (sb *StackBuilder) Stacks() []Stack {
keys := gen.MapFilterKeys(sb.stacks, func(i Stack) bool {
return len(i.IDs) > 1
Expand Down
99 changes: 63 additions & 36 deletions helpers/stacking/statck_test.go
Expand Up @@ -45,10 +45,11 @@ func Test_Stack(t *testing.T) {

want: []Stack{
{
CoverID: "1",
IDs: []string{"2"},
Date: metadata.TakeTimeFromName("2023-10-01 10.15.00"),
Names: []string{"IMG_1234.JPG", "IMG_1234.DNG"},
CoverID: "1",
IDs: []string{"2"},
Date: metadata.TakeTimeFromName("2023-10-01 10.15.00"),
Names: []string{"IMG_1234.JPG", "IMG_1234.DNG"},
StackType: StackRawJpg,
},
},
},
Expand All @@ -62,10 +63,11 @@ func Test_Stack(t *testing.T) {
},
want: []Stack{
{
CoverID: "2",
IDs: []string{"3", "4"},
Date: metadata.TakeTimeFromName("IMG_20231014_183246_BURST001_COVER.jpg"),
Names: []string{"IMG_20231014_183246_BURST001_COVER.jpg", "IMG_20231014_183246_BURST002.jpg", "IMG_20231014_183246_BURST003.jpg"},
CoverID: "2",
IDs: []string{"3", "4"},
Date: metadata.TakeTimeFromName("IMG_20231014_183246_BURST001_COVER.jpg"),
Names: []string{"IMG_20231014_183246_BURST001_COVER.jpg", "IMG_20231014_183246_BURST002.jpg", "IMG_20231014_183246_BURST003.jpg"},
StackType: StackBurst,
},
},
},
Expand All @@ -80,16 +82,18 @@ func Test_Stack(t *testing.T) {
},
want: []Stack{
{
CoverID: "2",
IDs: []string{"1"},
Date: metadata.TakeTimeFromName("2023-10-01 10.15.00"),
Names: []string{"3H2A0018.CR3", "3H2A0018.JPG"},
CoverID: "2",
IDs: []string{"1"},
Date: metadata.TakeTimeFromName("2023-10-01 10.15.00"),
Names: []string{"3H2A0018.CR3", "3H2A0018.JPG"},
StackType: StackRawJpg,
},
{
CoverID: "4",
IDs: []string{"3"},
Date: metadata.TakeTimeFromName("2023-10-01 10.15.00"),
Names: []string{"3H2A0019.CR3", "3H2A0019.JPG"},
CoverID: "4",
IDs: []string{"3"},
Date: metadata.TakeTimeFromName("2023-10-01 10.15.00"),
Names: []string{"3H2A0019.CR3", "3H2A0019.JPG"},
StackType: StackRawJpg,
},
},
},
Expand All @@ -101,10 +105,11 @@ func Test_Stack(t *testing.T) {
},
want: []Stack{
{
CoverID: "2",
IDs: []string{"1"},
Date: metadata.TakeTimeFromName("PXL_20231026_210642603.dng"),
Names: []string{"PXL_20231026_210642603.dng", "PXL_20231026_210642603.jpg"},
CoverID: "2",
IDs: []string{"1"},
Date: metadata.TakeTimeFromName("PXL_20231026_210642603.dng"),
Names: []string{"PXL_20231026_210642603.dng", "PXL_20231026_210642603.jpg"},
StackType: StackRawJpg,
},
},
},
Expand All @@ -116,10 +121,11 @@ func Test_Stack(t *testing.T) {
},
want: []Stack{
{
CoverID: "4",
IDs: []string{"3"},
Date: metadata.TakeTimeFromName("20231026_205755225.MP.jpg"),
Names: []string{"20231026_205755225.dng", "20231026_205755225.MP.jpg"},
CoverID: "4",
IDs: []string{"3"},
Date: metadata.TakeTimeFromName("20231026_205755225.MP.jpg"),
Names: []string{"20231026_205755225.dng", "20231026_205755225.MP.jpg"},
StackType: StackRawJpg,
},
},
},
Expand All @@ -135,22 +141,43 @@ func Test_Stack(t *testing.T) {
},
want: []Stack{
{
CoverID: "4",
IDs: []string{"3"},
Date: metadata.TakeTimeFromName("20231026_205755225.dng"),
Names: []string{"20231026_205755225.dng", "20231026_205755225.MP.jpg"},
CoverID: "4",
IDs: []string{"3"},
Date: metadata.TakeTimeFromName("20231026_205755225.dng"),
Names: []string{"20231026_205755225.dng", "20231026_205755225.MP.jpg"},
StackType: StackRawJpg,
},
{
CoverID: "6",
IDs: []string{"5"},
Date: metadata.TakeTimeFromName("PXL_20231207_032111247.RAW-02.ORIGINAL.dng"),
Names: []string{"PXL_20231207_032111247.RAW-02.ORIGINAL.dng", "PXL_20231207_032111247.RAW-01.COVER.jpg"},
CoverID: "6",
IDs: []string{"5"},
Date: metadata.TakeTimeFromName("PXL_20231207_032111247.RAW-02.ORIGINAL.dng"),
Names: []string{"PXL_20231207_032111247.RAW-02.ORIGINAL.dng", "PXL_20231207_032111247.RAW-01.COVER.jpg"},
StackType: StackBurst,
},
{
CoverID: "8",
IDs: []string{"7"},
Date: metadata.TakeTimeFromName("PXL_20231207_032108788.RAW-02.ORIGINAL.dng"),
Names: []string{"PXL_20231207_032108788.RAW-02.ORIGINAL.dng", "PXL_20231207_032108788.RAW-01.MP.COVER.jpg"},
CoverID: "8",
IDs: []string{"7"},
Date: metadata.TakeTimeFromName("PXL_20231207_032108788.RAW-02.ORIGINAL.dng"),
Names: []string{"PXL_20231207_032108788.RAW-02.ORIGINAL.dng", "PXL_20231207_032108788.RAW-01.MP.COVER.jpg"},
StackType: StackBurst,
},
},
},
{
name: "stack: Samsung #99",
input: []asset{
{ID: "1", FileName: "20231207_101605_001.jpg", DateTaken: metadata.TakeTimeFromName("20231207_101605_001.jpg")},
{ID: "2", FileName: "20231207_101605_002.jpg", DateTaken: metadata.TakeTimeFromName("20231207_101605_002.jpg")},
{ID: "3", FileName: "20231207_101605_003.jpg", DateTaken: metadata.TakeTimeFromName("20231207_101605_003.jpg")},
{ID: "4", FileName: "20231207_101605_004.jpg", DateTaken: metadata.TakeTimeFromName("20231207_101605_004.jpg")},
},
want: []Stack{
{
CoverID: "1",
IDs: []string{"2", "3", "4"},
Date: metadata.TakeTimeFromName("20231207_101605_001.jpg"),
Names: []string{"20231207_101605_001.jpg", "20231207_101605_002.jpg", "20231207_101605_003.jpg", "20231207_101605_004.jpg"},
StackType: StackBurst,
},
},
},
Expand Down

0 comments on commit bc620c1

Please sign in to comment.