WikiPlugin: Eschew URLEncoder in favor of HttpUrl
This commit is contained in:
@@ -25,7 +25,6 @@
|
|||||||
package net.runelite.client.plugins.wiki;
|
package net.runelite.client.plugins.wiki;
|
||||||
|
|
||||||
import com.google.common.primitives.Ints;
|
import com.google.common.primitives.Ints;
|
||||||
import java.net.URLEncoder;
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
@@ -74,12 +73,10 @@ public class WikiPlugin extends Plugin
|
|||||||
WidgetInfo.QUESTLIST_MINIQUEST_CONTAINER.getId(),
|
WidgetInfo.QUESTLIST_MINIQUEST_CONTAINER.getId(),
|
||||||
};
|
};
|
||||||
|
|
||||||
static final String WIKI_BASE = "https://oldschool.runescape.wiki";
|
static final HttpUrl WIKI_BASE = HttpUrl.parse("https://oldschool.runescape.wiki");
|
||||||
static final HttpUrl WIKI_RSLOOKUP = HttpUrl.parse(WIKI_BASE + "/w/Special:Lookup");
|
static final HttpUrl WIKI_API = WIKI_BASE.newBuilder().addPathSegments("api.php").build();
|
||||||
static final HttpUrl WIKI_API = HttpUrl.parse(WIKI_BASE + "/api.php");
|
|
||||||
static final String UTM_SORUCE_KEY = "utm_source";
|
static final String UTM_SORUCE_KEY = "utm_source";
|
||||||
static final String UTM_SORUCE_VALUE = "runelite";
|
static final String UTM_SORUCE_VALUE = "runelite";
|
||||||
static final String UTM_PARAMS = UTM_SORUCE_KEY + "=" + UTM_SORUCE_VALUE;
|
|
||||||
|
|
||||||
private static final String MENUOP_GUIDE = "Guide";
|
private static final String MENUOP_GUIDE = "Guide";
|
||||||
private static final String MENUOP_QUICKGUIDE = "Quick Guide";
|
private static final String MENUOP_QUICKGUIDE = "Quick Guide";
|
||||||
@@ -247,8 +244,9 @@ public class WikiPlugin extends Plugin
|
|||||||
}
|
}
|
||||||
|
|
||||||
name = Text.removeTags(name);
|
name = Text.removeTags(name);
|
||||||
HttpUrl.Builder urlBuilder = WIKI_RSLOOKUP.newBuilder();
|
HttpUrl.Builder urlBuilder = WIKI_BASE.newBuilder();
|
||||||
urlBuilder.addQueryParameter("type", type)
|
urlBuilder.addPathSegments("w/Special:Lookup")
|
||||||
|
.addQueryParameter("type", type)
|
||||||
.addQueryParameter("id", "" + id)
|
.addQueryParameter("id", "" + id)
|
||||||
.addQueryParameter("name", name)
|
.addQueryParameter("name", name)
|
||||||
.addQueryParameter(UTM_SORUCE_KEY, UTM_SORUCE_VALUE);
|
.addQueryParameter(UTM_SORUCE_KEY, UTM_SORUCE_VALUE);
|
||||||
@@ -268,23 +266,35 @@ public class WikiPlugin extends Plugin
|
|||||||
|
|
||||||
if (ev.getMenuAction() == MenuAction.RUNELITE)
|
if (ev.getMenuAction() == MenuAction.RUNELITE)
|
||||||
{
|
{
|
||||||
String quickguide = "";
|
boolean quickguide = false;
|
||||||
switch (ev.getMenuOption())
|
switch (ev.getMenuOption())
|
||||||
{
|
{
|
||||||
case MENUOP_QUICKGUIDE:
|
case MENUOP_QUICKGUIDE:
|
||||||
quickguide = "/Quick_guide";
|
quickguide = true;
|
||||||
//fallthrough;
|
//fallthrough;
|
||||||
case MENUOP_GUIDE:
|
case MENUOP_GUIDE:
|
||||||
ev.consume();
|
ev.consume();
|
||||||
String quest = Text.removeTags(ev.getMenuTarget());
|
String quest = Text.removeTags(ev.getMenuTarget());
|
||||||
LinkBrowser.browse(WIKI_BASE + "/w/" + URLEncoder.encode(quest.replace(' ', '_')) + quickguide + "?" + UTM_PARAMS);
|
HttpUrl.Builder ub = WIKI_BASE.newBuilder()
|
||||||
|
.addPathSegment("w")
|
||||||
|
.addPathSegment(quest)
|
||||||
|
.addQueryParameter(UTM_SORUCE_KEY, UTM_SORUCE_VALUE);
|
||||||
|
if (quickguide)
|
||||||
|
{
|
||||||
|
ub.addPathSegment("Quick_guide");
|
||||||
|
}
|
||||||
|
LinkBrowser.browse(ub.build().toString());
|
||||||
break;
|
break;
|
||||||
case MENUOP_WIKI_SKILL:
|
case MENUOP_WIKI_SKILL:
|
||||||
Matcher skillRegex = WikiPlugin.SKILL_REGEX.matcher(Text.removeTags(ev.getMenuTarget()));
|
Matcher skillRegex = WikiPlugin.SKILL_REGEX.matcher(Text.removeTags(ev.getMenuTarget()));
|
||||||
|
|
||||||
if (skillRegex.find())
|
if (skillRegex.find())
|
||||||
{
|
{
|
||||||
LinkBrowser.browse(WIKI_BASE + "/w/" + URLEncoder.encode(skillRegex.group(1)) + "?" + UTM_PARAMS);
|
LinkBrowser.browse(WIKI_BASE.newBuilder()
|
||||||
|
.addPathSegment("w")
|
||||||
|
.addPathSegment(skillRegex.group(1))
|
||||||
|
.addQueryParameter(UTM_SORUCE_KEY, UTM_SORUCE_VALUE)
|
||||||
|
.build().toString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,7 +33,6 @@ import com.google.gson.JsonParser;
|
|||||||
import com.google.inject.Inject;
|
import com.google.inject.Inject;
|
||||||
import java.awt.event.KeyEvent;
|
import java.awt.event.KeyEvent;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.net.URLEncoder;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.Future;
|
import java.util.concurrent.Future;
|
||||||
import java.util.concurrent.ScheduledExecutorService;
|
import java.util.concurrent.ScheduledExecutorService;
|
||||||
@@ -297,7 +296,11 @@ public class WikiSearchChatboxTextInput extends ChatboxTextInput
|
|||||||
|
|
||||||
private void search(String search)
|
private void search(String search)
|
||||||
{
|
{
|
||||||
LinkBrowser.browse(WikiPlugin.WIKI_BASE + "?search=" + URLEncoder.encode(search) + "&" + WikiPlugin.UTM_PARAMS);
|
LinkBrowser.browse(WikiPlugin.WIKI_BASE.newBuilder()
|
||||||
|
.addQueryParameter("search", search)
|
||||||
|
.addQueryParameter(WikiPlugin.UTM_SORUCE_KEY, WikiPlugin.UTM_SORUCE_VALUE)
|
||||||
|
.build()
|
||||||
|
.toString());
|
||||||
chatboxPanelManager.close();
|
chatboxPanelManager.close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user