2025-01-27 10:23:44 +05:00

60 lines
2.3 KiB
Java

package ru.bitheaven.donpayinteg;
import org.json.JSONArray;
import org.json.JSONObject;
import ru.bitheaven.donpayinteg.config.Action;
import ru.bitheaven.donpayinteg.config.Config;
import ru.bitheaven.donpayinteg.config.ConfigHandler;
import java.io.IOException;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import static ru.bitheaven.donpayinteg.DonPayInteg.LOGGER;
public class DonateThread extends Thread {
private int lastDonate = ConfigHandler.load().getLastDonate();
public void run() {
String token = ConfigHandler.load().getDonpayToken();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://donatepay.ru/api/v1/notifications?access_token=" + token + "&type=donation&order=ASC&after=" + lastDonate))
.GET()
.build();
HttpResponse<String> response;
try {
response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());
} catch (IOException | InterruptedException e) {
throw new RuntimeException(e);
}
JSONArray array = new JSONObject(response.body()).getJSONArray("data");
for(int i = 0; i < array.length(); i++) {
JSONObject objects = array.getJSONObject(i);
boolean finded = false;
String cmd = "", msg = "";
for(Action element : ConfigHandler.load().getActions()) {
if(element.getSum() == objects.getJSONObject("vars").getFloat("sum")) {
cmd = element.getCommand();
msg = element.getMessage();
finded = true;
break;
}
}
if(!finded) continue;
lastDonate = objects.getInt("id");
DonPayInteg.commands.addLast(ConfigHandler.load().getMessageCmd().replace("{message}", msg.replace("{username}", objects.getJSONObject("vars").getString("name"))));
DonPayInteg.commands.addLast(cmd.replace("{username}", objects.getJSONObject("vars").getString("name")));
LOGGER.info("Exec donate #{}", lastDonate);
Config config = ConfigHandler.load();
config.setLastDonate(lastDonate);
ConfigHandler.save(config);
}
}
}