diff --git a/src/main/java/com/hlab/yanalyst/domain/channel/ChannelDiscoveryService.java b/src/main/java/com/hlab/yanalyst/domain/channel/ChannelDiscoveryService.java index e20e521..bd79ceb 100644 --- a/src/main/java/com/hlab/yanalyst/domain/channel/ChannelDiscoveryService.java +++ b/src/main/java/com/hlab/yanalyst/domain/channel/ChannelDiscoveryService.java @@ -62,7 +62,11 @@ public class ChannelDiscoveryService { cond.setOrder("viewCount"); // 떡상 발굴: 최신순이 아니라 조회수순 // 광범위 검색: 키워드 없이 인기 Shorts. 결과 빈약 시 검색 API 보강 필요(스펙 §4.2). YoutubeSearchPageDto page = youtubeSearchService.searchYoutubeVideos(cond); - if (page != null && page.getItems() != null) all.addAll(page.getItems()); + if (page != null && page.getItems() != null) { + // 발견 지역(검색 regionCode)으로 태깅 — 채널 국가가 아닌 '어느 지역 검색에서 떴나' + for (YoutubeSearchResultDto it : page.getItems()) it.setChannelCountry(region); + all.addAll(page.getItems()); + } searchedRegions.add(region); } catch (Exception e) { log.error("[Discovery] 지역 {} 검색 실패 — 건너뜀", region, e); @@ -83,8 +87,8 @@ public class ChannelDiscoveryService { RecommendedChannel rc = recommendedChannelRepository.findByChannelId(c.channelId()) .orElseGet(RecommendedChannel::new); if ("EXCLUDED".equals(rc.getStatus()) || "REGISTERED".equals(rc.getStatus())) continue; - // 기존 NEW 항목이면 더 높은 배율일 때만 갱신 - if (rc.getId() != null && rc.getRatio() != null && c.ratio() <= rc.getRatio()) continue; + // 기존 NEW 항목이면 더 낮은 배율일 때만 건너뜀(같거나 높으면 갱신 — 지역 등 메타 최신화) + if (rc.getId() != null && rc.getRatio() != null && c.ratio() < rc.getRatio()) continue; rc.setChannelId(c.channelId()); rc.setChannelTitle(c.channelTitle()); rc.setThumbnailUrl(c.thumbnailUrl()); diff --git a/src/main/resources/templates/recommend.html b/src/main/resources/templates/recommend.html index 7811819..ee199a0 100644 --- a/src/main/resources/templates/recommend.html +++ b/src/main/resources/templates/recommend.html @@ -15,6 +15,15 @@
+ + +