evo/src/main/java/defpackage/akt.java

1206 lines
40 KiB
Java

package defpackage;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import java.io.IOException;
import java.io.InputStream;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.http.HttpRequest.BodyPublishers;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.time.Duration;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Base64;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.function.Consumer;
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents.EndTick;
import net.minecraft.client.Minecraft;
public final class akt {
private static final String ENDPOINT = "https://www.evoproject.xyz/api/configs";
private static final String TICKET_HEADER = "X-Evo-Ticket";
private static final String TICKET_HEADER_VALUE = "1";
private static final String CONTENT_TYPE_HEADER = "Content-Type";
private static final String JSON_CONTENT_TYPE = "application/json";
private static final String WORKER_THREAD_NAME = "evo-tickets";
private static final String PICKER_THREAD_NAME = "evo-ticket-picker";
private static final String DEFAULT_ROLE = "user";
private static final int ADMIN_UID = 1;
private static final String ACTION_LIST = "list";
private static final String ACTION_GET = "get";
private static final String ACTION_CREATE = "create";
private static final String ACTION_REPLY = "reply";
private static final String ACTION_UPLOAD = "upload";
private static final String NOTIFY_TITLE = "Bug Reports";
private static final String NOTIFY_REPLY = "#%d · developer replied";
private static final String NOTIFY_STATUS = "#%d · %s";
private static final String NOTIFY_UNREAD = "%d unread replies";
private static final String REQUEST_FAILURE = "ticket request {} failed";
private static final String MESSAGE_SIGN_IN = "Sign in to your EvoVisuals account first";
private static final String MESSAGE_FORBIDDEN = "Bug reports are open to testers and creators";
private static final String MESSAGE_RATE = "Too many requests, try again in a minute";
private static final String MESSAGE_CLOSED = "This ticket is closed";
private static final String MESSAGE_TOO_LARGE = "Attachment is too large";
private static final String MESSAGE_EMPTY = "Add a title and describe the bug";
private static final String MESSAGE_OFFLINE = "No connection to the server";
private static final String MESSAGE_FAILED = "Request failed (code %d)";
private static final String MESSAGE_SENDING = "Sending report";
private static final String MESSAGE_REPLYING = "Sending reply";
private static final String MESSAGE_UPLOADING = "Uploading %s";
private static final String MESSAGE_SENT = "Delivered to the developer";
private static final String MESSAGE_PARTIAL = "Sent, but %d attachment(s) failed";
private static final int HTTP_OK = 200;
private static final int HTTP_UNAUTHORIZED = 401;
private static final int HTTP_FORBIDDEN = 403;
private static final int HTTP_CONFLICT = 409;
private static final int HTTP_TOO_LARGE = 413;
private static final int HTTP_RATE_LIMITED = 429;
private static final int HTTP_BAD_REQUEST = 400;
private static final int CHUNK_BYTES = 2621440;
private static final int MIN_TITLE_LENGTH = 3;
private static final long CONNECT_TIMEOUT_SECONDS = 10L;
private static final long REQUEST_TIMEOUT_SECONDS = 30L;
private static final long UPLOAD_TIMEOUT_SECONDS = 90L;
private static final int POLL_INTERVAL_TICKS = 1800;
private static final int FIRST_POLL_TICKS = 400;
private static final long LIST_FRESH_MILLIS = 15000L;
private static final long DETAIL_FRESH_MILLIS = 8000L;
private static final HttpClient HTTP = HttpClient.newBuilder()
.connectTimeout(Duration.ofSeconds((-5973269547378817318L | 5973269547378817328L) + (-5973269547378817318L & 5973269547378817328L)))
.build();
private static final ExecutorService WORKER = Executors.newSingleThreadExecutor(var0 -> {
Thread var1 = new Thread(var0, "evo-tickets");
var1.setDaemon((boolean)((((-1430510541 ^ 1430510542) + ((-1430510541 & 1430510542) << 1))) != 0));
return var1;
});
private static final AtomicBoolean listInFlight = new AtomicBoolean();
private static final AtomicBoolean detailInFlight = new AtomicBoolean();
private static final AtomicBoolean pickerOpen = new AtomicBoolean();
private static final Map<String, akw> known = new HashMap<>();
private static volatile List<akw> tickets = List.of();
private static volatile akn current;
private static volatile String openTicketId;
private static volatile aks operation = aks.IDLE;
private static volatile String listError = "";
private static volatile boolean loaded;
private static volatile int unreadTotal;
private static volatile long listFetchedAt;
private static volatile long detailFetchedAt;
private static boolean seeded;
private static int ticks = 1400;
private akt() {
}
public static void initialize() {
ClientTickEvents.END_CLIENT_TICK.register((EndTick)var0 -> tick());
}
public static boolean eligible() {
cr var0 = null;
String var1 = null;
int var3 = 0;
int var2 = -1601871798;
while (true) {
switch (var2) {
case -2016420567:
if (!"user".equals(var1)) {
var2 = -1884814135;
} else {
var2 = 638029876;
}
break;
case -1884814135:
var3 = 1;
var2 = 2033618756;
break;
case -1601871798:
default:
var0 = cp.user();
if (var0 != null) {
var2 = 1813294744;
} else {
var2 = 281825674;
}
break;
case -1566295638:
if (var0.uid() == (611308069 | -611308068) + (611308069 & -611308068)) {
var2 = 670901045;
} else {
var2 = 1848607529;
}
break;
case 281825674:
return (boolean)(((0)) != 0);
case 638029876:
var3 = 0;
var2 = 2033618756;
break;
case 670901045:
return (boolean)(((1)) != 0);
case 1390442624:
if (!var1.isBlank()) {
var2 = -2016420567;
} else {
var2 = 638029876;
}
break;
case 1813294744:
if (var0.token() != null) {
var2 = 1940167504;
} else {
var2 = 281825674;
}
break;
case 1848607529:
var1 = var0.role();
if (var1 != null) {
var2 = 1390442624;
} else {
var2 = 638029876;
}
break;
case 1940167504:
if (var0.token().isEmpty()) {
var2 = 281825674;
} else {
var2 = -1566295638;
}
break;
case 2033618756:
return (boolean)((var3) != 0);
}
}
}
public static List<akw> tickets() {
return tickets;
}
public static akn current() {
return current;
}
public static String openTicketId() {
return openTicketId;
}
public static aks operation() {
return operation;
}
public static String listError() {
return listError;
}
public static boolean loaded() {
return loaded;
}
public static int unreadTotal() {
return unreadTotal;
}
public static void acknowledgeOperation() {
int var0 = 1762256796;
while (true) {
switch (var0) {
case -1008521757:
operation = aks.IDLE;
var0 = 748081971;
break;
case 748081971:
return;
case 1762256796:
default:
if (!operation.busy()) {
var0 = -1008521757;
} else {
var0 = 748081971;
}
}
}
}
public static void keepFresh() {
long var0 = (-3211891592857018813L ^ 3211891592857018813L) + ((-3211891592857018813L & 3211891592857018813L) << 1);
int var2 = 722441661;
while (true) {
switch (var2) {
case -1488088245:
if (var0 - detailFetchedAt > (-4825217785031831456L | 4825217785031839456L) + (-4825217785031831456L & 4825217785031839456L)) {
var2 = -562950970;
} else {
var2 = 439098724;
}
break;
case -562950970:
fetchDetail(openTicketId);
var2 = 439098724;
break;
case 439098724:
return;
case 722441661:
default:
var0 = System.currentTimeMillis();
if (var0 - listFetchedAt > (5445644411394247070L | -5445644411394232070L) + (5445644411394247070L & -5445644411394232070L)) {
var2 = 1351909060;
} else {
var2 = 1046691574;
}
break;
case 1046691574:
if (openTicketId != null) {
var2 = -1488088245;
} else {
var2 = 439098724;
}
break;
case 1351909060:
refresh();
var2 = 1046691574;
}
}
}
public static void refresh() {
int var0 = 1135871994;
while (true) {
switch (var0) {
case -1743864107:
if (!listInFlight.compareAndSet(
(boolean)(((0)) != 0),
(boolean)((((905269846 ^ -905269845) + ((905269846 & -905269845) << 1))
) != 0))) {
var0 = -46310936;
} else {
var0 = 214034235;
}
break;
case -46310936:
return;
case 214034235:
listFetchedAt = System.currentTimeMillis();
WORKER.execute(() -> {
boolean var2 = false /* VF: Semaphore variable */;
try {
var2 = true;
fetchList();
var2 = false;
} finally {
if (var2) {
listInFlight.set((boolean)((((-175047823 ^ 175047823) + ((-175047823 & 175047823) << 1))) != 0));
}
}
listInFlight.set((boolean)((((823491707 | -823491707) + (823491707 & -823491707))) != 0));
});
return;
case 1135871994:
default:
if (eligible()) {
var0 = -1743864107;
} else {
var0 = -46310936;
}
}
}
}
public static void open(String var0) {
akn var1 = null;
int var2 = -1387878935;
while (true) {
switch (var2) {
case -1387878935:
default:
openTicketId = var0;
var1 = current;
if (var1 != null) {
var2 = -76412132;
} else {
var2 = 508699636;
}
break;
case -845749913:
current = null;
var2 = 508699636;
break;
case -76412132:
if (!var1.summary().id().equals(var0)) {
var2 = -845749913;
} else {
var2 = 508699636;
}
break;
case 508699636:
fetchDetail(var0);
return;
}
}
}
public static void closeDetail() {
openTicketId = null;
current = null;
}
public static void pickAttachments(Consumer<List<akk>> var0) {
Thread var1 = null;
int var2 = -1761108424;
while (true) {
switch (var2) {
case -1761108424:
default:
if (!pickerOpen.compareAndSet(
(boolean)((((0)) != 0)), (boolean)((((62135556 | -62135555) + (62135556 & -62135555))
) != 0))) {
var2 = 699865565;
} else {
var2 = 2047403626;
}
break;
case 699865565:
return;
case 2047403626:
var1 = new Thread(() -> {
boolean var4 = false /* VF: Semaphore variable */;
try {
var4 = true;
List var1x = ako.pick();
Minecraft.getInstance().execute(() -> var0.accept(var1x));
var4 = false;
} finally {
if (var4) {
pickerOpen.set((boolean)((((844351761 ^ -844351761) + ((844351761 & -844351761) << 1))) != 0));
}
}
pickerOpen.set((boolean)((((-1314298054 | 1314298054) + (-1314298054 & 1314298054))) != 0));
}, "evo-ticket-picker");
var1.setDaemon((boolean)((((-1174573096 ^ 1174573097) + ((-1174573096 & 1174573097) << 1))) != 0));
var1.start();
return;
}
}
}
public static boolean create(String var0, String var1, List<akk> var2) {
String var3 = null;
String var4 = null;
Minecraft var5 = null;
JsonObject var6 = null;
List var7 = null;
int var8 = 2058104699;
while (true) {
switch (var8) {
case -2003978303:
var5 = Minecraft.getInstance();
var6 = aki.snapshot(var5);
var7 = List.copyOf(var2);
final String var3f = var3;
final String var4f = var4;
final JsonObject var6f = var6;
final List var7f = var7;
WORKER.execute(
() -> {
JsonObject var4x = null;
JsonObject var5x = null;
akn var6x = null;
String var7x = null;
int var8x = 0;
int var9x = -1511007441;
while (true) {
switch (var9x) {
case -1666387585:
return;
case -1511007441:
default:
var4x = body("create");
if (var4x == null) {
var9x = 1018351915;
} else {
var9x = 1518469645;
}
break;
case -335494395:
var6x = akp.detail(var5x.getAsJsonObject("ticket"));
var7x = akp.string(var5x, "messageId");
var8x = uploadAll(var6x.summary().id(), var7x, var7f);
openTicketId = var6x.summary().id();
fetchDetailNow(var6x.summary().id());
fetchList();
finish(var8x);
return;
case 1018351915:
fail(
"Sign in to your EvoVisuals account first"
);
return;
case 1518469645:
var4x.addProperty("title", var3f);
var4x.addProperty("text", var4f);
var4x.add("meta", var6f);
var4x.addProperty("diagnostics", aki.diagnostics());
var4x.addProperty("log", aki.logTail());
var5x = execute(
"create",
var4x,
(-8803807327989821872L ^ 8803807327989821902L) + ((-8803807327989821872L & 8803807327989821902L) << 1)
);
if (var5x == null) {
var9x = -1666387585;
} else {
var9x = -335494395;
}
}
}
}
);
return (boolean)(((1)) != 0);
case -1620873019:
return (boolean)(((0)) != 0);
case -1457503200:
operation = new aks(
akr.FAILED,
0.0F,
"Add a title and describe the bug"
);
return (boolean)(((0)) != 0);
case -769293621:
if (!startOperation("Sending report")) {
var8 = -1620873019;
} else {
var8 = -2003978303;
}
break;
case 545588374:
if (var4.isEmpty()) {
var8 = -1457503200;
} else {
var8 = -769293621;
}
break;
case 2058104699:
default:
var3 = var0.trim();
var4 = var1.trim();
if (var3.length() >= (-1272625117 ^ 1272625120) + ((-1272625117 & 1272625120) << 1)) {
var8 = 545588374;
} else {
var8 = -1457503200;
}
}
}
}
public static boolean reply(String var0, List<akk> var1) {
String var2 = null;
String var3 = null;
List var4 = null;
int var5 = 292503723;
while (true) {
switch (var5) {
case -1879381851:
var4 = List.copyOf(var1);
final String var2f = var2;
final String var3f = var3;
final List var4f = var4;
WORKER.execute(
() -> {
JsonObject var3x = null;
JsonObject var4x = null;
akq var5x = null;
int var6x = 0;
int var7 = -1380881266;
while (true) {
switch (var7) {
case -1380881266:
default:
var3x = body("reply");
if (var3x == null) {
var7 = -441714181;
} else {
var7 = -996817194;
}
break;
case -996817194:
var3x.addProperty("id", var2f);
var3x.addProperty("text", var3f);
var4x = execute(
"reply",
var3x,
(-4164723356791976216L | 4164723356791976246L) + (-4164723356791976216L & 4164723356791976246L)
);
if (var4x == null) {
var7 = -467225439;
} else {
var7 = -20417141;
}
break;
case -467225439:
return;
case -441714181:
fail(
"Sign in to your EvoVisuals account first"
);
return;
case -20417141:
var5x = akp.message(var4x.getAsJsonObject("message"));
var6x = uploadAll(var2f, var5x.id(), var4f);
fetchDetailNow(var2f);
fetchList();
finish(var6x);
return;
}
}
}
);
return (boolean)(((1)) != 0);
case -117993584:
if (!var3.isEmpty()) {
var5 = -2364048;
} else {
var5 = 721166890;
}
break;
case -2364048:
if (!startOperation("Sending reply")) {
var5 = 721166890;
} else {
var5 = -1879381851;
}
break;
case 292503723:
default:
var2 = openTicketId;
var3 = var0.trim();
if (var2 != null) {
var5 = -117993584;
} else {
var5 = 721166890;
}
break;
case 721166890:
return (boolean)(((0)) != 0);
}
}
}
private static void tick() {
int var0 = 2133479250;
while (true) {
switch (var0) {
case -97380831:
return;
case 1259444166:
ticks = 0;
refresh();
return;
case 2133479250:
}
if ((ticks += (1295266367 ^ -1295266366) + ((1295266367 & -1295266366) << 1)) < (2095909393 | -2095907593) + (2095909393 & -2095907593)) {
var0 = -97380831;
} else {
var0 = 1259444166;
}
}
}
private static boolean startOperation(String var0) {
int var1 = -2102205673;
while (true) {
switch (var1) {
case -2102205673:
default:
if (operation.busy()) {
var1 = -513064499;
} else {
var1 = 1147838188;
}
break;
case -513064499:
return (boolean)(((0)) != 0);
case 1147838188:
operation = new aks(akr.SENDING, 0.0F, var0);
return (boolean)(((1)) != 0);
}
}
}
private static void finish(int var0) {
aks var2 = null;
int var1 = 1043060971;
while (true) {
switch (var1) {
case -811013749:
operation = var2;
return;
case 1043060971:
default:
if (var0 == 0) {
var1 = 1264431477;
} else {
var1 = 1385396876;
}
break;
case 1264431477:
var2 = new aks(
akr.DONE,
1.0F,
"Delivered to the developer"
);
var1 = -811013749;
break;
case 1385396876:
akr var10002 = akr.FAILED;
String var10004 = "Sent, but %d attachment(s) failed";
Object[] var10005 = new Object[1];
var10005[0] = var0;
var2 = new aks(var10002, 1.0F, var10004.formatted(var10005));
var1 = -811013749;
}
}
}
private static void fail(String var0) {
operation = new aks(akr.FAILED, 0.0F, var0);
}
private static void fetchDetail(String var0) {
int var1 = 545199567;
while (true) {
switch (var1) {
case -1715907794:
return;
case -1651834780:
detailFetchedAt = System.currentTimeMillis();
WORKER.execute(() -> {
boolean var3 = false /* VF: Semaphore variable */;
try {
var3 = true;
fetchDetailNow(var0);
var3 = false;
} finally {
if (var3) {
detailInFlight.set((boolean)((((1946556844 ^ -1946556844) + ((1946556844 & -1946556844) << 1))) != 0));
}
}
detailInFlight.set((boolean)((((-2005698896 ^ 2005698896) + ((-2005698896 & 2005698896) << 1))) != 0));
});
return;
case -18871651:
if (!detailInFlight.compareAndSet(
(boolean)((((0)) != 0)), (boolean)((((1524002324 | -1524002323) + (1524002324 & -1524002323))
) != 0))) {
var1 = -1715907794;
} else {
var1 = -1651834780;
}
break;
case 545199567:
default:
if (eligible()) {
var1 = -18871651;
} else {
var1 = -1715907794;
}
}
}
}
private static void fetchDetailNow(String var0) {
detailFetchedAt = System.currentTimeMillis();
JsonObject var1 = body("get");
if (var1 != null) {
var1.addProperty("id", var0);
JsonObject var2 = request(
"get",
var1,
(5214772567306779578L ^ -5214772567306779548L) + ((5214772567306779578L & -5214772567306779548L) << 1),
null
);
if (var2 != null && var0.equals(openTicketId)) {
akn var3 = akp.detail(var2.getAsJsonObject("ticket"));
current = var3;
synchronized (known) {
known.put(var0, var3.summary());
}
replaceSummary(var3.summary());
}
}
}
private static void fetchList() {
JsonObject var0 = null;
String[] var1 = null;
JsonObject var2 = null;
List var3 = null;
String var5 = null;
int var4 = -435339064;
while (true) {
switch (var4) {
case -1978202626:
listError = var5;
return;
case -975455507:
var1 = new String[1];
var2 = request(
"list",
var0,
(-14912947664772319L | 14912947664772349L) + (-14912947664772319L & 14912947664772349L),
var1
);
if (var2 == null) {
var4 = -465868145;
} else {
var4 = 1081750918;
}
break;
case -465868145:
if (var1[0] == null) {
var4 = 1188845738;
} else {
var4 = 663487018;
}
break;
case -435339064:
default:
listFetchedAt = System.currentTimeMillis();
var0 = body("list");
if (var0 == null) {
var4 = 318113505;
} else {
var4 = -975455507;
}
break;
case 318113505:
return;
case 663487018:
var5 = var1[0];
var4 = -1978202626;
break;
case 1081750918:
var3 = akp.summaries(var2);
listError = "";
announceChanges(var3);
tickets = var3;
unreadTotal = countUnread(var3);
loaded = (boolean)(((1)) != 0);
return;
case 1188845738:
var5 = "No connection to the server";
var4 = -1978202626;
}
}
}
private static void replaceSummary(akw var0) {
List var1 = tickets;
ArrayList var2 = new ArrayList(var1.size());
for (akw var4 : (Iterable<akw>)var1) {
var2.add(var4.id().equals(var0.id()) ? var0 : var4);
}
tickets = List.copyOf(var2);
unreadTotal = countUnread(var2);
}
private static int countUnread(List<akw> var0) {
int var1 = 0;
Iterator var2 = null;
akw var3 = null;
int var4 = -1008568820;
while (true) {
switch (var4) {
case -1008568820:
default:
var1 = 0;
var2 = var0.iterator();
var4 = 1174307203;
break;
case 463281480:
return var1;
case 1118217846:
var3 = (akw)var2.next();
var1 += var3.unread();
var4 = 1174307203;
break;
case 1174307203:
if (var2.hasNext()) {
var4 = 1118217846;
} else {
var4 = 463281480;
}
}
}
}
private static void announceChanges(List<akw> var0) {
ArrayList var1 = new ArrayList();
synchronized (known) {
if (!seeded) {
seeded = (boolean)(((1)) != 0);
int var9 = countUnread(var0);
if (var9 > 0) {
String var13 = "%d unread replies";
Object[] var15 = new Object[1];
var15[0] = var9;
var1.add(var13.formatted(var15));
}
} else {
String var3 = openTicketId;
for (akw var5 : var0) {
akw var6 = known.get(var5.id());
if (var6 != null && !var5.id().equals(var3)) {
if (var5.unread() > var6.unread()) {
String var10001 = "#%d · developer replied";
Object[] var10002 = new Object[1];
var10002[0] = var5.number();
var1.add(var10001.formatted(var10002));
} else if (var5.status() != var6.status()) {
String var12 = "#%d · %s";
Object[] var14 = new Object[2];
var14[0] = var5.number();
var14[1] = var5.status().label();
var1.add(var12.formatted(var14));
}
}
}
}
known.clear();
for (akw var11 : var0) {
known.put(var11.id(), var11);
}
}
if (!var1.isEmpty()) {
Minecraft.getInstance()
.execute(
() -> {
Iterator var1x = null;
String var2 = null;
int var3x = 1899300714;
while (true) {
switch (var3x) {
case -2022509629:
if (var1x.hasNext()) {
var3x = 1312698264;
} else {
var3x = 774740732;
}
break;
case 774740732:
return;
case 1312698264:
var2 = (String)var1x.next();
le.getInstance()
.addCustomNotification(
rl.TICKETS.getIcon(), "Bug Reports", var2
);
var3x = -2022509629;
break;
case 1899300714:
default:
var1x = var1.iterator();
var3x = -2022509629;
}
}
}
);
}
}
private static int uploadAll(String var0, String var1, List<akk> var2) {
if (!var2.isEmpty() && !var1.isEmpty()) {
long var3 = (-5804653891711843410L ^ 5804653891711843410L) + ((-5804653891711843410L & 5804653891711843410L) << 1);
for (akk var6 : var2) {
var3 += var6.size();
}
long[] var9 = new long[1];
int var10 = 0;
int var7 = Math.min(var2.size(), (-2029348682 | 2029348690) + (-2029348682 & 2029348690));
for (int var8 = 0; var8 < var7; var8++) {
if (!upload(var0, var1, (akk)var2.get(var8), var3, var9)) {
var10++;
}
}
return var10 + var2.size() - var7;
} else {
return 0;
}
}
private static boolean upload(String var0, String var1, akk var2, long var3, long[] var5) {
String var6 = UUID.randomUUID().toString();
long var7;
try {
var7 = Files.size(var2.path());
} catch (IOException var17) {
id.warn(
Cif.NETWORK,
"ticket request {} failed",
"upload",
var17
);
return (boolean)(((0)) != 0);
}
if (var7 > (-8629840793939819860L ^ 8629840793939819860L) + ((-8629840793939819860L & 8629840793939819860L) << 1)
&& var7 <= (-4199578030736825040L ^ 4199578030784010960L) + ((-4199578030736825040L & 4199578030784010960L) << 1)) {
int var9 = (int)(
(
var7
+ (1689533774112677477L ^ -1689533774110056037L)
+ ((1689533774112677477L & -1689533774110056037L) << 1)
- ((-8430832053761281752L | 8430832053761281753L) + (-8430832053761281752L & 8430832053761281753L))
)
/ ((-7265830220760354066L | 7265830220762975506L) + (-7265830220760354066L & 7265830220762975506L))
);
byte[] var10 = new byte[2621440];
try (InputStream var11 = Files.newInputStream(var2.path())) {
for (int var12 = 0; var12 < var9; var12++) {
int var13 = var11.readNBytes(
var10,
0,
(int)Math.min(
(-7479547944327335797L ^ 7479547944329957237L) + ((-7479547944327335797L & 7479547944329957237L) << 1),
var7 - var12 * ((4226242672305216232L ^ -4226242672302594792L) + ((4226242672305216232L & -4226242672302594792L) << 1))
)
);
if (var13 <= 0) {
return (boolean)(((0)) != 0);
}
akr var10002 = akr.UPLOADING;
float var10003 = var3 <= (1412916215354508837L | -1412916215354508837L) + (1412916215354508837L & -1412916215354508837L)
? 0.0F
: (float)var5[0] / (float)var3;
String var10004 = "Uploading %s";
Object[] var10005 = new Object[1];
var10005[0] = var2.name();
operation = new aks(var10002, var10003, var10004.formatted(var10005));
JsonObject var14 = body("upload");
if (var14 == null) {
return (boolean)(((0)) != 0);
}
var14.addProperty("id", var0);
var14.addProperty("messageId", var1);
var14.addProperty("uploadId", var6);
var14.addProperty("index", var12);
var14.addProperty("total", var9);
var14.addProperty("name", var2.name());
var14.addProperty(
"data",
Base64.getEncoder().encodeToString(var13 == 2621440? var10 : Arrays.copyOf(var10, var13))
);
if (request(
"upload",
var14,
(3950550109405487457L ^ -3950550109405487367L) + ((3950550109405487457L & -3950550109405487367L) << 1),
null
)
== null) {
return (boolean)(((0)) != 0);
}
var5[0] = var5[0] + var13;
}
return (boolean)(((1)) != 0);
} catch (IOException var19) {
id.warn(
Cif.NETWORK,
"ticket request {} failed",
"upload",
var19
);
return (boolean)(((0)) != 0);
}
} else {
return (boolean)(((0)) != 0);
}
}
private static JsonObject body(String var0) {
cr var1 = null;
JsonObject var2 = null;
int var3 = 24658916;
while (true) {
switch (var3) {
case -1676044581:
if (var1.token().isEmpty()) {
var3 = -340288647;
} else {
var3 = -491642823;
}
break;
case -491642823:
var2 = new JsonObject();
var2.addProperty("token", var1.token());
var2.addProperty("action", var0);
return var2;
case -340288647:
return null;
case 24658916:
default:
var1 = cp.user();
if (var1 != null) {
var3 = 1250342989;
} else {
var3 = -340288647;
}
break;
case 1250342989:
if (var1.token() != null) {
var3 = -1676044581;
} else {
var3 = -340288647;
}
}
}
}
private static JsonObject execute(String var0, JsonObject var1, long var2) {
String[] var4 = null;
JsonObject var5 = null;
Object var7 = null;
int var6 = 967020066;
while (true) {
switch (var6) {
case -1244737301:
fail((String)var7);
var6 = 315517729;
break;
case -656810919:
if (var4[0] == null) {
var6 = -507530094;
} else {
var6 = 910474335;
}
break;
case -507530094:
var7 = "No connection to the server";
var6 = -1244737301;
break;
case 315517729:
return var5;
case 910474335:
var7 = var4[0];
var6 = -1244737301;
break;
case 967020066:
default:
var4 = new String[1];
var5 = request(var0, var1, var2, var4);
if (var5 == null) {
var6 = -656810919;
} else {
var6 = 315517729;
}
}
}
}
private static JsonObject request(String var0, JsonObject var1, long var2, String[] var4) {
try {
HttpRequest var5 = HttpRequest.newBuilder(
URI.create(
"https://www.evoproject.xyz/api/configs"
)
)
.timeout(Duration.ofSeconds(var2))
.header(
"Content-Type",
"application/json"
)
.header(
"X-Evo-Ticket",
"1"
)
.POST(BodyPublishers.ofString(var1.toString(), StandardCharsets.UTF_8))
.build();
HttpResponse var6 = ld.send(HTTP, var5);
if (var6.statusCode() != (84728688 ^ -84728488) + ((84728688 & -84728488) << 1)) {
if (var4 != null) {
var4[0] = describe(var6.statusCode());
}
return null;
} else {
return JsonParser.parseString((String)var6.body()).getAsJsonObject();
}
} catch (InterruptedException var7) {
Thread.currentThread().interrupt();
return null;
} catch (Exception var8) {
id.warn(Cif.NETWORK, "ticket request {} failed", var0, var8);
return null;
}
}
private static String describe(int var0) {
return switch (var0) {
case 400 -> "Add a title and describe the bug";
case 401 -> "Sign in to your EvoVisuals account first";
case 403 -> "Bug reports are open to testers and creators";
case 409 -> "This ticket is closed";
case 413 -> "Attachment is too large";
case 429 -> "Too many requests, try again in a minute";
default -> {
String var10000 = "Request failed (code %d)";
Object[] var10001 = new Object[1];
var10001[0] = var0;
yield var10000.formatted(var10001);
}
};
}
}