Fix monitor state: never downgrade on upsert, explicitly set monitored on MonitorAlbum
This commit is contained in:
@@ -48,6 +48,7 @@ func (r *AlbumRepository) Create(ctx context.Context, a *Album) error {
|
|||||||
cover_url = EXCLUDED.cover_url,
|
cover_url = EXCLUDED.cover_url,
|
||||||
monitor_state = CASE
|
monitor_state = CASE
|
||||||
WHEN albums.monitor_state = 'excluded' THEN albums.monitor_state
|
WHEN albums.monitor_state = 'excluded' THEN albums.monitor_state
|
||||||
|
WHEN albums.monitor_state = 'monitored' THEN albums.monitor_state
|
||||||
ELSE EXCLUDED.monitor_state
|
ELSE EXCLUDED.monitor_state
|
||||||
END,
|
END,
|
||||||
updated_at = NOW()`,
|
updated_at = NOW()`,
|
||||||
|
|||||||
@@ -41,6 +41,7 @@ func (r *ArtistRepository) Create(ctx context.Context, a *Artist) error {
|
|||||||
image_url = EXCLUDED.image_url,
|
image_url = EXCLUDED.image_url,
|
||||||
monitor_state = CASE
|
monitor_state = CASE
|
||||||
WHEN artists.monitor_state = 'excluded' THEN artists.monitor_state
|
WHEN artists.monitor_state = 'excluded' THEN artists.monitor_state
|
||||||
|
WHEN artists.monitor_state = 'monitored' THEN artists.monitor_state
|
||||||
ELSE EXCLUDED.monitor_state
|
ELSE EXCLUDED.monitor_state
|
||||||
END,
|
END,
|
||||||
updated_at = NOW()
|
updated_at = NOW()
|
||||||
|
|||||||
@@ -84,6 +84,10 @@ func (s *MetadataService) GetTracksByAlbumID(ctx context.Context, albumID string
|
|||||||
return s.tracks.GetByAlbumID(ctx, albumID)
|
return s.tracks.GetByAlbumID(ctx, albumID)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *MetadataService) SetAlbumMonitorState(ctx context.Context, id string, state database.MonitorState) error {
|
||||||
|
return s.albums.SetMonitorState(ctx, id, state)
|
||||||
|
}
|
||||||
|
|
||||||
func (s *MetadataService) PersistArtist(ctx context.Context, album *metadataPb.Album, state database.MonitorState) {
|
func (s *MetadataService) PersistArtist(ctx context.Context, album *metadataPb.Album, state database.MonitorState) {
|
||||||
if len(album.GetArtists()) == 0 {
|
if len(album.GetArtists()) == 0 {
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -299,6 +299,9 @@ func (service *MusicAgregatorService) MonitorAlbum(ctx context.Context, req *pb.
|
|||||||
|
|
||||||
dbAlbum, _ := service.metadata.GetAlbumByExternalID(ctx, album.GetId())
|
dbAlbum, _ := service.metadata.GetAlbumByExternalID(ctx, album.GetId())
|
||||||
if dbAlbum != nil {
|
if dbAlbum != nil {
|
||||||
|
service.metadata.SetAlbumMonitorState(ctx, dbAlbum.ID, database.Monitored)
|
||||||
|
dbAlbum.MonitorState = database.Monitored
|
||||||
|
|
||||||
qualityStr := normalizeQuality(req.GetQuality(), 0, 0)
|
qualityStr := normalizeQuality(req.GetQuality(), 0, 0)
|
||||||
owned, err := service.downloads.HasAlbumInQuality(ctx, dbAlbum.ID, req.GetQuality().String(), qualityStr)
|
owned, err := service.downloads.HasAlbumInQuality(ctx, dbAlbum.ID, req.GetQuality().String(), qualityStr)
|
||||||
if err == nil && owned {
|
if err == nil && owned {
|
||||||
|
|||||||
Reference in New Issue
Block a user