From e0fbc5ba5c5dc23bc56594450752120b455ded2d Mon Sep 17 00:00:00 2001 From: ale183 Date: Mon, 6 Feb 2023 23:03:10 +0100 Subject: [PATCH] Genshin Impect Adaptar Error Fixes #17 --- pom.xml | 2 +- .../mms/core/adapters/impl/GenshinImpact.java | 21 ++++++++++++------- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/pom.xml b/pom.xml index 7f2a6be..cc6433a 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ com.kitsunecode moe-moe-secretary - 1.2.2 + 1.2.3 jar diff --git a/src/main/java/com/kitsunecode/mms/core/adapters/impl/GenshinImpact.java b/src/main/java/com/kitsunecode/mms/core/adapters/impl/GenshinImpact.java index f5dd216..f8116e5 100644 --- a/src/main/java/com/kitsunecode/mms/core/adapters/impl/GenshinImpact.java +++ b/src/main/java/com/kitsunecode/mms/core/adapters/impl/GenshinImpact.java @@ -20,9 +20,10 @@ public class GenshinImpact extends IWaifuAdapter { private static final String BASE_URL = "https://genshin-impact.fandom.com"; - private static final String IMAGES_SELECTOR = "a[title='Portrait'] img"; - private static final String FEMALE_IMAGE_SELECTOR = "a[title='Female Portrait'] img"; - private static final String MALE_IMAGE_SELECTOR = "a[title='Male Portrait'] img"; + private static final String IMAGES_SELECTOR = "a[title='Wish'] img"; + private static final String INGAME_IMAGE_SELECTOR = "a[title='In-Game'] img"; + private static final String FEMALE_IMAGE_SELECTOR = "a[title='In-Game (Lumine)'] img"; + private static final String MALE_IMAGE_SELECTOR = "a[title='In-Game (Aether)'] img"; public GenshinImpact(String name) { super(name); @@ -45,6 +46,7 @@ public void afterInit() { private List loadSkinUrls(Document mainDoc, Document outfitsDoc) { List urls = Stream.of( Selector.select(IMAGES_SELECTOR, mainDoc).first(), + Selector.select(INGAME_IMAGE_SELECTOR, mainDoc).first(), Selector.select(MALE_IMAGE_SELECTOR, mainDoc).first(), Selector.select(FEMALE_IMAGE_SELECTOR, mainDoc).first() ).filter(Objects::nonNull) @@ -62,13 +64,13 @@ private List loadSkinUrls(Document mainDoc, Document outfitsDoc) { String path = row.getElementsByTag("td").first().getElementsByTag("a").first().attr("href"); try { Document outfitDoc = Jsoup.connect(BASE_URL + path).get(); - Element portraitElement = Selector.select("a[title='Portrait']", outfitDoc).first(); + Element portraitElement = Selector.select("a[title='Wish']", outfitDoc).first(); if (portraitElement != null) { urls.add(portraitElement.attr("href").split("/revision")[0]); } - Element previewElement = Selector.select("a[title='Preview']", outfitDoc).first(); - if (previewElement != null) { - urls.add(previewElement.attr("href").split("/revision")[0]); + Element ingameElement = Selector.select("a[title='In-Game']", outfitDoc).first(); + if (ingameElement != null) { + urls.add(ingameElement.attr("href").split("/revision")[0]); } } catch (IOException e) { e.printStackTrace(); @@ -89,11 +91,14 @@ private List loadDialogs(Document document) { .child(0) .getElementsByTag("tr") .stream() - .skip(1) + .skip(2) .collect(Collectors.toList()); for (Element row : rows) { Element td = row.getElementsByTag("td").first(); + if(td == null) { + continue; + } Element audioSpan = td.getElementsByTag("span").stream().findAny().orElse(null); String audioUrl = null; if (audioSpan != null) {