From b5f06c7d5df758a87457c78238f73a937ed8bfb5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Hru=C5=A1ka?= Date: Sun, 5 Apr 2020 19:46:06 +0200 Subject: [PATCH] lastfm bio fetch to fallback to english if not found in user locale --- .../airsonic/player/service/LastFmService.java | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/airsonic-main/src/main/java/org/airsonic/player/service/LastFmService.java b/airsonic-main/src/main/java/org/airsonic/player/service/LastFmService.java index 01326847..4316f663 100644 --- a/airsonic-main/src/main/java/org/airsonic/player/service/LastFmService.java +++ b/airsonic-main/src/main/java/org/airsonic/player/service/LastFmService.java @@ -244,7 +244,23 @@ public class LastFmService { if (info == null) { return null; } - return new ArtistBio(processWikiText(info.getWikiSummary()), + + String wiki = info.getWikiSummary().trim(); + boolean isEnglish = locale.getLanguage().equals(Locale.ENGLISH.getLanguage()); + // try to detect empty bio + if (!isEnglish && (wiki.length() < 250 && + wiki.startsWith("")) + ) { + LOG.debug("Got empty bio for " + artistName + ", retry English"); + Artist info1 = Artist.getInfo(artistName, Locale.ENGLISH, null /* username */, LAST_FM_KEY); + if (info1 != null) { + // ensure we do not replace non-null with null & NPE... + info = info1; + wiki = info.getWikiSummary().trim(); + } + } + + return new ArtistBio(processWikiText(wiki), info.getMbid(), info.getUrl(), info.getImageURL(ImageSize.MEDIUM),