feat(quick-002): add uniquePlaylistName helper and wire into ImportPlaylist
- Add uniquePlaylistName method to auto-rename duplicate names with (1), (2), etc. - Call uniquePlaylistName only from ImportPlaylist, not CreatePlaylist
This commit is contained in:
@@ -681,6 +681,23 @@ func (s *Service) RenamePlaylist(
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// uniquePlaylistName returns a name that doesn't collide with existing
|
||||||
|
// playlists. If "Chill Vibes" exists, returns "Chill Vibes (1)".
|
||||||
|
// If that also exists, returns "Chill Vibes (2)", etc.
|
||||||
|
func (s *Service) uniquePlaylistName(name string) string {
|
||||||
|
count, err := s.db.Queries.CountPlaylistsByName(s.db.Ctx, name)
|
||||||
|
if err != nil || count == 0 {
|
||||||
|
return name
|
||||||
|
}
|
||||||
|
for i := 1; ; i++ {
|
||||||
|
candidate := fmt.Sprintf("%s (%d)", name, i)
|
||||||
|
c, err := s.db.Queries.CountPlaylistsByName(s.db.Ctx, candidate)
|
||||||
|
if err != nil || c == 0 {
|
||||||
|
return candidate
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// ImportPlaylist imports a playlist from an external M3U/M3U8
|
// ImportPlaylist imports a playlist from an external M3U/M3U8
|
||||||
// file. It creates a new playlist in the DB, resolves tracks
|
// file. It creates a new playlist in the DB, resolves tracks
|
||||||
// against the library, and saves an M3U8 file.
|
// against the library, and saves an M3U8 file.
|
||||||
@@ -714,6 +731,8 @@ func (s *Service) ImportPlaylist(
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
playlistName = s.uniquePlaylistName(playlistName)
|
||||||
|
|
||||||
// Create playlist in DB.
|
// Create playlist in DB.
|
||||||
created, err := s.db.Queries.CreatePlaylist(
|
created, err := s.db.Queries.CreatePlaylist(
|
||||||
s.db.Ctx, playlistName,
|
s.db.Ctx, playlistName,
|
||||||
|
|||||||
Reference in New Issue
Block a user