Skip to content

Commit

Permalink
fix for #61: album must have name error
Browse files Browse the repository at this point in the history
  • Loading branch information
simulot committed Nov 11, 2023
1 parent cc58567 commit 20e3422
Show file tree
Hide file tree
Showing 4 changed files with 156 additions and 136 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,10 @@
"url": "https://photos.google.com/photo/--redacted--",
"googlePhotosOrigin": {
"fromPartnerSharing": {
}
},
"deviceFolder": {
"localFolderName": ""
},
"deviceType": "ANDROID_PHONE"
}
}
14 changes: 10 additions & 4 deletions cmdupload/upload.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import (
"immich-go/assets/files"
"immich-go/assets/gp"
"immich-go/helpers/fshelper"
"immich-go/helpers/gen"
"immich-go/helpers/stacking"
"immich-go/immich"
"immich-go/immich/logger"
Expand Down Expand Up @@ -142,7 +143,7 @@ func NewUpCmd(ctx context.Context, ic iClient, log *logger.Logger, args []string
return nil, err
}

app.fsys, err = fshelper.ParsePath(cmd.Args())
app.fsys, err = fshelper.ParsePath(cmd.Args(), app.GooglePhotos)
if err != nil {
return nil, err
}
Expand Down Expand Up @@ -308,6 +309,13 @@ func (app *UpCmd) handleAsset(ctx context.Context, a *assets.LocalAssetFile) err
return nil
}
}

if !app.KeepUntitled {
a.Albums = gen.Filter(a.Albums, func(i assets.LocalAlbum) bool {
return i.Name != ""
})
}

app.log.DebugObject("handleAsset: LocalAssetFile=", a)

advice, err := app.AssetIndex.ShouldUpload(a)
Expand Down Expand Up @@ -490,9 +498,6 @@ func (app *UpCmd) albumName(al assets.LocalAlbum) string {
Name = al.Path
}
}
if Name == "" {
Name = "Untitled"
}
return Name
}

Expand Down Expand Up @@ -541,6 +546,7 @@ func (app *UpCmd) ManageAlbums(ctx context.Context) error {
return fmt.Errorf("can't get the album list from the server: %w", err)
}
for album, list := range app.updateAlbums {

found := false
for _, sal := range serverAlbums {
if sal.AlbumName == album {
Expand Down
247 changes: 124 additions & 123 deletions cmdupload/upload_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,9 @@ func (c *icCatchUploadsAssets) AddAssetToAlbum(ctx context.Context, album string
return nil, nil
}
func (c *icCatchUploadsAssets) CreateAlbum(ctx context.Context, album string, ids []string) (immich.AlbumSimplified, error) {
if album == "" {
panic("can't create album without name")
}
if c.albums == nil {
c.albums = map[string][]string{}
}
Expand All @@ -91,56 +94,66 @@ func TestUpload(t *testing.T) {
expectedAssets []string
expectedAlbums map[string][]string
}{
/*
{
name: "Simple file",
args: []string{
"TEST_DATA/folder/low/PXL_20231006_063000139.jpg",
},
expectedErr: false,
expectedAssets: []string{"PXL_20231006_063000139.jpg"},
expectedAlbums: map[string][]string{},
{
name: "Simple file",
args: []string{
"TEST_DATA/folder/low/PXL_20231006_063000139.jpg",
},
{
name: "Simple file in an album",
args: []string{
"-album=the album",
"TEST_DATA/folder/low/PXL_20231006_063000139.jpg",
},
expectedErr: false,
expectedAssets: []string{
"PXL_20231006_063000139.jpg",
},
expectedAlbums: map[string][]string{
"the album": {"PXL_20231006_063000139.jpg"},
},
expectedErr: false,
expectedAssets: []string{"PXL_20231006_063000139.jpg"},
expectedAlbums: map[string][]string{},
},
{
name: "Simple file in an album",
args: []string{
"-album=the album",
"TEST_DATA/folder/low/PXL_20231006_063000139.jpg",
},
{
name: "Folders, no album creation",
args: []string{
"TEST_DATA/folder/high",
},
expectedErr: false,
expectedAssets: []string{
"AlbumA/PXL_20231006_063000139.jpg",
"AlbumA/PXL_20231006_063029647.jpg",
"AlbumA/PXL_20231006_063108407.jpg",
"AlbumA/PXL_20231006_063121958.jpg",
"AlbumA/PXL_20231006_063357420.jpg",
"AlbumB/PXL_20231006_063528961.jpg",
"AlbumB/PXL_20231006_063536303.jpg",
"AlbumB/PXL_20231006_063851485.jpg",
},
expectedAlbums: map[string][]string{},
expectedErr: false,
expectedAssets: []string{
"PXL_20231006_063000139.jpg",
},
{
name: "Folders, in given album",
args: []string{
"-album=the album",
"TEST_DATA/folder/high",
},
expectedErr: false,
expectedAssets: []string{
expectedAlbums: map[string][]string{
"the album": {"PXL_20231006_063000139.jpg"},
},
},
{
name: "Folders, no album creation",
args: []string{
"TEST_DATA/folder/high",
},
expectedErr: false,
expectedAssets: []string{
"AlbumA/PXL_20231006_063000139.jpg",
"AlbumA/PXL_20231006_063029647.jpg",
"AlbumA/PXL_20231006_063108407.jpg",
"AlbumA/PXL_20231006_063121958.jpg",
"AlbumA/PXL_20231006_063357420.jpg",
"AlbumB/PXL_20231006_063528961.jpg",
"AlbumB/PXL_20231006_063536303.jpg",
"AlbumB/PXL_20231006_063851485.jpg",
},
expectedAlbums: map[string][]string{},
},
{
name: "Folders, in given album",
args: []string{
"-album=the album",
"TEST_DATA/folder/high",
},
expectedErr: false,
expectedAssets: []string{
"AlbumA/PXL_20231006_063000139.jpg",
"AlbumA/PXL_20231006_063029647.jpg",
"AlbumA/PXL_20231006_063108407.jpg",
"AlbumA/PXL_20231006_063121958.jpg",
"AlbumA/PXL_20231006_063357420.jpg",
"AlbumB/PXL_20231006_063528961.jpg",
"AlbumB/PXL_20231006_063536303.jpg",
"AlbumB/PXL_20231006_063851485.jpg",
},
expectedAlbums: map[string][]string{
"the album": {
"AlbumA/PXL_20231006_063000139.jpg",
"AlbumA/PXL_20231006_063029647.jpg",
"AlbumA/PXL_20231006_063108407.jpg",
Expand All @@ -150,59 +163,59 @@ func TestUpload(t *testing.T) {
"AlbumB/PXL_20231006_063536303.jpg",
"AlbumB/PXL_20231006_063851485.jpg",
},
expectedAlbums: map[string][]string{
"the album": {
"AlbumA/PXL_20231006_063000139.jpg",
"AlbumA/PXL_20231006_063029647.jpg",
"AlbumA/PXL_20231006_063108407.jpg",
"AlbumA/PXL_20231006_063121958.jpg",
"AlbumA/PXL_20231006_063357420.jpg",
"AlbumB/PXL_20231006_063528961.jpg",
"AlbumB/PXL_20231006_063536303.jpg",
"AlbumB/PXL_20231006_063851485.jpg",
},
},
},
{
name: "Folders, album after folder",
args: []string{
"-create-album-folder=TRUE",
"TEST_DATA/folder/high",
},
expectedErr: false,
expectedAssets: []string{
},
{
name: "Folders, album after folder",
args: []string{
"-create-album-folder=TRUE",
"TEST_DATA/folder/high",
},
expectedErr: false,
expectedAssets: []string{
"AlbumA/PXL_20231006_063000139.jpg",
"AlbumA/PXL_20231006_063029647.jpg",
"AlbumA/PXL_20231006_063108407.jpg",
"AlbumA/PXL_20231006_063121958.jpg",
"AlbumA/PXL_20231006_063357420.jpg",
"AlbumB/PXL_20231006_063528961.jpg",
"AlbumB/PXL_20231006_063536303.jpg",
"AlbumB/PXL_20231006_063851485.jpg",
},
expectedAlbums: map[string][]string{
"AlbumA": {
"AlbumA/PXL_20231006_063000139.jpg",
"AlbumA/PXL_20231006_063029647.jpg",
"AlbumA/PXL_20231006_063108407.jpg",
"AlbumA/PXL_20231006_063121958.jpg",
"AlbumA/PXL_20231006_063357420.jpg",
},
"AlbumB": {
"AlbumB/PXL_20231006_063528961.jpg",
"AlbumB/PXL_20231006_063536303.jpg",
"AlbumB/PXL_20231006_063851485.jpg",
},
expectedAlbums: map[string][]string{
"AlbumA": {
"AlbumA/PXL_20231006_063000139.jpg",
"AlbumA/PXL_20231006_063029647.jpg",
"AlbumA/PXL_20231006_063108407.jpg",
"AlbumA/PXL_20231006_063121958.jpg",
"AlbumA/PXL_20231006_063357420.jpg",
},
"AlbumB": {
"AlbumB/PXL_20231006_063528961.jpg",
"AlbumB/PXL_20231006_063536303.jpg",
"AlbumB/PXL_20231006_063851485.jpg",
},
},
},
{
name: "google photos, default options",
args: []string{
"-google-photos",
"TEST_DATA/Takeout1",
},
expectedErr: false,
expectedAssets: []string{
},
{
name: "google photos, default options",
args: []string{
"-google-photos",
"TEST_DATA/Takeout1",
},
expectedErr: false,
expectedAssets: []string{
"Google\u00a0Photos/Album test 6-10-23/PXL_20231006_063000139.jpg",
"Google\u00a0Photos/Album test 6-10-23/PXL_20231006_063029647.jpg",
"Google\u00a0Photos/Album test 6-10-23/PXL_20231006_063108407.jpg",
"Google\u00a0Photos/Album test 6-10-23/PXL_20231006_063121958.jpg",
"Google\u00a0Photos/Album test 6-10-23/PXL_20231006_063357420.jpg",
"Google\u00a0Photos/Album test 6-10-23/PXL_20231006_063536303.jpg",
"Google\u00a0Photos/Album test 6-10-23/PXL_20231006_063851485.jpg",
"Google Photos/Album test 6-10-23/PXL_20231006_063909898.LS.mp4",
},
expectedAlbums: map[string][]string{
"Album test 6/10/23": {
"Google\u00a0Photos/Album test 6-10-23/PXL_20231006_063000139.jpg",
"Google\u00a0Photos/Album test 6-10-23/PXL_20231006_063029647.jpg",
"Google\u00a0Photos/Album test 6-10-23/PXL_20231006_063108407.jpg",
Expand All @@ -212,28 +225,28 @@ func TestUpload(t *testing.T) {
"Google\u00a0Photos/Album test 6-10-23/PXL_20231006_063851485.jpg",
"Google Photos/Album test 6-10-23/PXL_20231006_063909898.LS.mp4",
},
expectedAlbums: map[string][]string{
"Album test 6/10/23": {
"Google\u00a0Photos/Album test 6-10-23/PXL_20231006_063000139.jpg",
"Google\u00a0Photos/Album test 6-10-23/PXL_20231006_063029647.jpg",
"Google\u00a0Photos/Album test 6-10-23/PXL_20231006_063108407.jpg",
"Google\u00a0Photos/Album test 6-10-23/PXL_20231006_063121958.jpg",
"Google\u00a0Photos/Album test 6-10-23/PXL_20231006_063357420.jpg",
"Google\u00a0Photos/Album test 6-10-23/PXL_20231006_063536303.jpg",
"Google\u00a0Photos/Album test 6-10-23/PXL_20231006_063851485.jpg",
"Google Photos/Album test 6-10-23/PXL_20231006_063909898.LS.mp4",
},
},
},
{
name: "google photos, album name from folder",
args: []string{
"-google-photos",
"--use-album-folder-as-name=TRUE",
"TEST_DATA/Takeout1",
},
expectedErr: false,
expectedAssets: []string{
},
{
name: "google photos, album name from folder",
args: []string{
"-google-photos",
"--use-album-folder-as-name=TRUE",
"TEST_DATA/Takeout1",
},
expectedErr: false,
expectedAssets: []string{
"Google\u00a0Photos/Album test 6-10-23/PXL_20231006_063000139.jpg",
"Google\u00a0Photos/Album test 6-10-23/PXL_20231006_063029647.jpg",
"Google\u00a0Photos/Album test 6-10-23/PXL_20231006_063108407.jpg",
"Google\u00a0Photos/Album test 6-10-23/PXL_20231006_063121958.jpg",
"Google\u00a0Photos/Album test 6-10-23/PXL_20231006_063357420.jpg",
"Google\u00a0Photos/Album test 6-10-23/PXL_20231006_063536303.jpg",
"Google\u00a0Photos/Album test 6-10-23/PXL_20231006_063851485.jpg",
"Google\u00a0Photos/Album test 6-10-23/PXL_20231006_063909898.LS.mp4",
},
expectedAlbums: map[string][]string{
"Album test 6-10-23": {
"Google\u00a0Photos/Album test 6-10-23/PXL_20231006_063000139.jpg",
"Google\u00a0Photos/Album test 6-10-23/PXL_20231006_063029647.jpg",
"Google\u00a0Photos/Album test 6-10-23/PXL_20231006_063108407.jpg",
Expand All @@ -243,20 +256,8 @@ func TestUpload(t *testing.T) {
"Google\u00a0Photos/Album test 6-10-23/PXL_20231006_063851485.jpg",
"Google\u00a0Photos/Album test 6-10-23/PXL_20231006_063909898.LS.mp4",
},
expectedAlbums: map[string][]string{
"Album test 6-10-23": {
"Google\u00a0Photos/Album test 6-10-23/PXL_20231006_063000139.jpg",
"Google\u00a0Photos/Album test 6-10-23/PXL_20231006_063029647.jpg",
"Google\u00a0Photos/Album test 6-10-23/PXL_20231006_063108407.jpg",
"Google\u00a0Photos/Album test 6-10-23/PXL_20231006_063121958.jpg",
"Google\u00a0Photos/Album test 6-10-23/PXL_20231006_063357420.jpg",
"Google\u00a0Photos/Album test 6-10-23/PXL_20231006_063536303.jpg",
"Google\u00a0Photos/Album test 6-10-23/PXL_20231006_063851485.jpg",
"Google\u00a0Photos/Album test 6-10-23/PXL_20231006_063909898.LS.mp4",
},
},
},
*/
},
{
name: "google photo, ignore untitled, discard partner",
args: []string{
Expand Down
Loading

0 comments on commit 20e3422

Please sign in to comment.