253 lines
6.8 KiB
Java
253 lines
6.8 KiB
Java
import java.applet.Applet;
|
|
import java.io.DataInputStream;
|
|
import java.io.IOException;
|
|
import java.net.HttpURLConnection;
|
|
import java.net.URL;
|
|
import java.net.URLConnection;
|
|
import java.util.LinkedList;
|
|
import java.util.Queue;
|
|
import net.runelite.mapping.Export;
|
|
import net.runelite.mapping.Implements;
|
|
import net.runelite.mapping.ObfuscatedName;
|
|
import net.runelite.mapping.ObfuscatedSignature;
|
|
import netscape.javascript.JSObject;
|
|
|
|
@ObfuscatedName("cz")
|
|
@Implements("UrlRequester")
|
|
public class UrlRequester implements Runnable {
|
|
@ObfuscatedName("c")
|
|
@Export("thread")
|
|
final Thread thread;
|
|
@ObfuscatedName("l")
|
|
@Export("isClosed")
|
|
volatile boolean isClosed;
|
|
@ObfuscatedName("s")
|
|
@Export("requests")
|
|
Queue requests;
|
|
|
|
public UrlRequester() {
|
|
this.requests = new LinkedList(); // L: 15
|
|
this.thread = new Thread(this); // L: 18
|
|
this.thread.setPriority(1); // L: 19
|
|
this.thread.start(); // L: 20
|
|
}
|
|
|
|
@ObfuscatedName("c")
|
|
@ObfuscatedSignature(
|
|
descriptor = "(Ljava/net/URL;I)Lcm;",
|
|
garbageValue = "-558103760"
|
|
)
|
|
@Export("request")
|
|
public UrlRequest request(URL var1) {
|
|
UrlRequest var2 = new UrlRequest(var1);
|
|
synchronized(this) {
|
|
this.requests.add(var2); // L: 74
|
|
this.notify(); // L: 75
|
|
return var2; // L: 77
|
|
}
|
|
}
|
|
|
|
@ObfuscatedName("l")
|
|
@ObfuscatedSignature(
|
|
descriptor = "(B)V",
|
|
garbageValue = "-124"
|
|
)
|
|
@Export("close")
|
|
public void close() {
|
|
this.isClosed = true;
|
|
|
|
try {
|
|
synchronized(this) { // L: 83
|
|
this.notify(); // L: 84
|
|
}
|
|
|
|
this.thread.join(); // L: 86
|
|
} catch (InterruptedException var4) {
|
|
}
|
|
|
|
} // L: 89
|
|
|
|
public void run() {
|
|
while (!this.isClosed) {
|
|
try {
|
|
UrlRequest var1;
|
|
synchronized(this) {
|
|
var1 = (UrlRequest)this.requests.poll();
|
|
if (var1 == null) {
|
|
try {
|
|
this.wait(); // L: 32
|
|
} catch (InterruptedException var13) {
|
|
}
|
|
continue;
|
|
}
|
|
}
|
|
|
|
DataInputStream var2 = null;
|
|
URLConnection var3 = null; // L: 39
|
|
|
|
try {
|
|
var3 = var1.url.openConnection(); // L: 41
|
|
var3.setConnectTimeout(5000); // L: 42
|
|
var3.setReadTimeout(5000);
|
|
var3.setUseCaches(false);
|
|
var3.setRequestProperty("Connection", "close");
|
|
int var7 = var3.getContentLength();
|
|
if (var7 >= 0) {
|
|
byte[] var5 = new byte[var7];
|
|
var2 = new DataInputStream(var3.getInputStream());
|
|
var2.readFully(var5);
|
|
var1.response0 = var5;
|
|
}
|
|
|
|
var1.isDone0 = true;
|
|
} catch (IOException var14) {
|
|
var1.isDone0 = true;
|
|
} finally {
|
|
if (var2 != null) {
|
|
var2.close();
|
|
}
|
|
|
|
if (var3 != null && var3 instanceof HttpURLConnection) { // L: 60
|
|
((HttpURLConnection)var3).disconnect();
|
|
}
|
|
|
|
}
|
|
} catch (Exception var17) {
|
|
FloorDecoration.RunException_sendStackTrace((String)null, var17);
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
@ObfuscatedName("l")
|
|
@ObfuscatedSignature(
|
|
descriptor = "([BILjava/lang/CharSequence;I)I",
|
|
garbageValue = "-29911257"
|
|
)
|
|
public static int method2420(byte[] var0, int var1, CharSequence var2) {
|
|
int var3 = var2.length(); // L: 21
|
|
int var4 = var1; // L: 22
|
|
|
|
for (int var5 = 0; var5 < var3; ++var5) { // L: 23
|
|
char var6 = var2.charAt(var5); // L: 24
|
|
if (var6 <= 127) { // L: 25
|
|
var0[var4++] = (byte)var6; // L: 26
|
|
} else if (var6 <= 2047) { // L: 28
|
|
var0[var4++] = (byte)(192 | var6 >> 6); // L: 29
|
|
var0[var4++] = (byte)(128 | var6 & '?'); // L: 30
|
|
} else {
|
|
var0[var4++] = (byte)(224 | var6 >> '\f'); // L: 33
|
|
var0[var4++] = (byte)(128 | var6 >> 6 & 63); // L: 34
|
|
var0[var4++] = (byte)(128 | var6 & '?'); // L: 35
|
|
}
|
|
}
|
|
|
|
return var4 - var1; // L: 38
|
|
}
|
|
|
|
@ObfuscatedName("s")
|
|
@ObfuscatedSignature(
|
|
descriptor = "([Ljava/lang/String;[IIII)V",
|
|
garbageValue = "448998366"
|
|
)
|
|
public static void method2421(String[] var0, int[] var1, int var2, int var3) {
|
|
if (var2 < var3) { // L: 43
|
|
int var4 = (var3 + var2) / 2; // L: 44
|
|
int var5 = var2; // L: 45
|
|
String var6 = var0[var4]; // L: 46
|
|
var0[var4] = var0[var3]; // L: 47
|
|
var0[var3] = var6; // L: 48
|
|
int var7 = var1[var4]; // L: 49
|
|
var1[var4] = var1[var3]; // L: 50
|
|
var1[var3] = var7; // L: 51
|
|
|
|
for (int var8 = var2; var8 < var3; ++var8) { // L: 52
|
|
if (var6 == null || var0[var8] != null && var0[var8].compareTo(var6) < (var8 & 1)) { // L: 53
|
|
String var9 = var0[var8]; // L: 54
|
|
var0[var8] = var0[var5]; // L: 55
|
|
var0[var5] = var9; // L: 56
|
|
int var10 = var1[var8]; // L: 57
|
|
var1[var8] = var1[var5]; // L: 58
|
|
var1[var5++] = var10; // L: 59
|
|
}
|
|
}
|
|
|
|
var0[var3] = var0[var5];
|
|
var0[var5] = var6;
|
|
var1[var3] = var1[var5];
|
|
var1[var5] = var7;
|
|
method2421(var0, var1, var2, var5 - 1);
|
|
method2421(var0, var1, var5 + 1, var3); // L: 68
|
|
}
|
|
|
|
}
|
|
|
|
@ObfuscatedName("s")
|
|
@ObfuscatedSignature(
|
|
descriptor = "(Ljava/lang/String;ILjava/lang/String;B)Z",
|
|
garbageValue = "72"
|
|
)
|
|
static boolean method2419(String var0, int var1, String var2) {
|
|
if (var1 == 0) { // L: 61
|
|
try {
|
|
if (!class29.field175.startsWith("win")) { // L: 63
|
|
throw new Exception();
|
|
} else if (!var0.startsWith("http://") && !var0.startsWith("https://")) { // L: 64
|
|
throw new Exception();
|
|
} else {
|
|
String var11 = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789?&=,.%+-_#:/*"; // L: 65
|
|
|
|
for (int var4 = 0; var4 < var0.length(); ++var4) { // L: 66
|
|
if (var11.indexOf(var0.charAt(var4)) == -1) { // L: 67
|
|
throw new Exception();
|
|
}
|
|
}
|
|
|
|
Runtime.getRuntime().exec("cmd /c start \"j\" \"" + var0 + "\""); // L: 69
|
|
return true; // L: 70
|
|
}
|
|
} catch (Throwable var5) { // L: 72
|
|
return false; // L: 73
|
|
}
|
|
} else if (var1 == 1) { // L: 76
|
|
try {
|
|
Object var10 = class27.method396(class29.field177, var2, new Object[]{(new URL(class29.field177.getCodeBase(), var0)).toString()}); // L: 78
|
|
return var10 != null; // L: 79
|
|
} catch (Throwable var6) { // L: 81
|
|
return false; // L: 82
|
|
}
|
|
} else if (var1 == 2) { // L: 85
|
|
try {
|
|
class29.field177.getAppletContext().showDocument(new URL(class29.field177.getCodeBase(), var0), "_blank"); // L: 87
|
|
return true; // L: 88
|
|
} catch (Exception var7) { // L: 90
|
|
return false; // L: 91
|
|
}
|
|
} else if (var1 == 3) { // L: 94
|
|
try {
|
|
Applet var3 = class29.field177; // L: 96
|
|
JSObject.getWindow(var3).call("loggedout", (Object[])null); // L: 99
|
|
} catch (Throwable var9) { // L: 102
|
|
}
|
|
|
|
try {
|
|
class29.field177.getAppletContext().showDocument(new URL(class29.field177.getCodeBase(), var0), "_top"); // L: 104
|
|
return true; // L: 105
|
|
} catch (Exception var8) { // L: 107
|
|
return false; // L: 108
|
|
}
|
|
} else {
|
|
throw new IllegalArgumentException(); // L: 111
|
|
}
|
|
}
|
|
|
|
@ObfuscatedName("e")
|
|
@ObfuscatedSignature(
|
|
descriptor = "(I)[Ldi;",
|
|
garbageValue = "-862864907"
|
|
)
|
|
static class114[] method2418() {
|
|
return new class114[]{class114.field1408, class114.field1409, class114.field1410, class114.field1413, class114.field1412}; // L: 137
|
|
}
|
|
}
|