Fix: cache all release groups, filter by monitoring only at query time

This commit is contained in:
2026-07-06 16:21:38 +02:00
parent 2062989127
commit b7d18e55de
3 changed files with 3 additions and 6 deletions
@@ -54,11 +54,11 @@ public class FeedService {
}
private List<String> artistMbidsWithRefresh(List<TrackedArtist> artists) {
var allTypes = List.of("Album", "Single", "EP", "Broadcast", "Other");
var mbids = new ArrayList<String>();
for (var a : artists) {
if (cacheService.needsRefresh(a.mbid())) {
var types = getMonitoredTypes(a);
releaseGroupService.fetchAndCache(a.mbid(), a.name(), types);
releaseGroupService.fetchAndCache(a.mbid(), a.name(), allTypes);
}
mbids.add(a.mbid());
}
@@ -45,8 +45,6 @@ public class ReleaseGroupService {
for (var rg : page.releaseGroups()) {
String primaryType = rg.primaryType() != null ? rg.primaryType() : "Other";
if (!monitoredTypes.contains(primaryType)) continue;
String secondaryTypes = "[]";
if (rg.secondaryTypes() != null && !rg.secondaryTypes().isEmpty()) {
try {
@@ -59,8 +59,7 @@ public class ArtistController {
@Produces(MediaType.TEXT_HTML)
public Response trackArtist(@PathParam("mbid") String mbid) {
var artist = artistService.addArtist(mbid);
var types = getMonitoredTypes(artist);
releaseGroupService.fetchAndCache(artist.mbid(), artist.name(), types);
releaseGroupService.fetchAndCache(artist.mbid(), artist.name(), List.of("Album", "Single", "EP", "Broadcast", "Other"));
var allArtists = artistService.findAll();
var listHtml = artistListTemplate.data("artists", allArtists).render();
return Response.ok(listHtml + feedReloadScript()).build();