aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/io/github/moulberry/notenoughupdates/infopanes/HTMLInfoPane.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/io/github/moulberry/notenoughupdates/infopanes/HTMLInfoPane.java')
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/infopanes/HTMLInfoPane.java37
1 files changed, 19 insertions, 18 deletions
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/infopanes/HTMLInfoPane.java b/src/main/java/io/github/moulberry/notenoughupdates/infopanes/HTMLInfoPane.java
index a8a98880..4ce581a6 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/infopanes/HTMLInfoPane.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/infopanes/HTMLInfoPane.java
@@ -30,6 +30,7 @@ import java.net.URL;
import java.net.URLConnection;
import java.nio.charset.CharsetEncoder;
import java.nio.charset.StandardCharsets;
+import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
@@ -92,24 +93,24 @@ public class HTMLInfoPane extends TextInfoPane {
/**
* Takes a wiki url, uses NEUManager#getWebFile to download the web file and passed that in to #createFromWiki
*/
- public static HTMLInfoPane createFromWikiUrl(NEUOverlay overlay, NEUManager manager, String name,
- String wikiUrl) {
- File f = manager.getWebFile(wikiUrl);
- if (f == null) {
- return new HTMLInfoPane(overlay, manager, "error", "error", "Failed to load wiki url: " + wikiUrl);
- }
+ public static CompletableFuture<HTMLInfoPane> createFromWikiUrl(NEUOverlay overlay, NEUManager manager, String name, String wikiUrl) {
+ return manager.getWebFile(wikiUrl).thenApply(f -> {
+ if (f == null) {
+ return new HTMLInfoPane(overlay, manager, "error", "error", "Failed to load wiki url: " + wikiUrl);
+ }
- StringBuilder sb = new StringBuilder();
- try (BufferedReader br = new BufferedReader(new InputStreamReader(
- new FileInputStream(f), StandardCharsets.UTF_8))) {
- String l;
- while ((l = br.readLine()) != null) {
- sb.append(l).append("\n");
+ StringBuilder sb = new StringBuilder();
+ try (BufferedReader br = new BufferedReader(new InputStreamReader(
+ new FileInputStream(f), StandardCharsets.UTF_8))) {
+ String l;
+ while ((l = br.readLine()) != null) {
+ sb.append(l).append("\n");
+ }
+ } catch (IOException e) {
+ return new HTMLInfoPane(overlay, manager, "error", "error", "Failed to load wiki url: " + wikiUrl);
}
- } catch (IOException e) {
- return new HTMLInfoPane(overlay, manager, "error", "error", "Failed to load wiki url: " + wikiUrl);
- }
- return createFromWiki(overlay, manager, name, f.getName(), sb.toString());
+ return createFromWikiText(overlay, manager, name, f.getName(), sb.toString());
+ });
}
/**
@@ -118,8 +119,8 @@ public class HTMLInfoPane extends TextInfoPane {
* a more permanent solution that can be abstracted to work with arbitrary wiki codes (eg. moulberry.github.io/
* files/neu_help.html).
*/
- public static HTMLInfoPane createFromWiki(NEUOverlay overlay, NEUManager manager, String name, String filename,
- String wiki) {
+ public static HTMLInfoPane createFromWikiText(NEUOverlay overlay, NEUManager manager, String name, String filename,
+ String wiki) {
String[] split = wiki.split("</infobox>");
wiki = split[split.length - 1]; //Remove everything before infobox
wiki = wiki.split("<span class=\"navbox-vde\">")[0]; //Remove navbox