diff --git a/src/main/java/cn/octopusyan/dmt/common/manager/http/HttpUtil.java b/src/main/java/cn/octopusyan/dmt/common/manager/http/HttpUtil.java index 9c1c82a..598c8e1 100644 --- a/src/main/java/cn/octopusyan/dmt/common/manager/http/HttpUtil.java +++ b/src/main/java/cn/octopusyan/dmt/common/manager/http/HttpUtil.java @@ -111,8 +111,15 @@ public class HttpUtil { } public String postForm(String uri, JsonNode header, JsonNode param) throws IOException, InterruptedException { + return postForm(uri, header, param, null); + } + + public String postForm(String uri, JsonNode header, JsonNode param, JsonNode body) throws IOException, InterruptedException { HttpRequest.Builder request = getRequest(uri + createFormParams(param), header) - .POST(HttpRequest.BodyPublishers.noBody()); + .POST(body == null ? + HttpRequest.BodyPublishers.noBody() : + HttpRequest.BodyPublishers.ofString(JsonUtil.toJsonString(body)) + ); HttpResponse response = httpClient.send(request.build(), HttpResponse.BodyHandlers.ofString(StandardCharsets.UTF_8)); return response.body(); diff --git a/src/main/java/cn/octopusyan/dmt/task/UpgradeTask.java b/src/main/java/cn/octopusyan/dmt/task/UpgradeTask.java index 81f42a9..3d485eb 100644 --- a/src/main/java/cn/octopusyan/dmt/task/UpgradeTask.java +++ b/src/main/java/cn/octopusyan/dmt/task/UpgradeTask.java @@ -6,8 +6,8 @@ import cn.octopusyan.dmt.common.util.JsonUtil; import cn.octopusyan.dmt.model.UpgradeConfig; import cn.octopusyan.dmt.task.base.BaseTask; import cn.octopusyan.dmt.task.listener.DefaultTaskListener; +import org.apache.commons.lang3.Strings; import tools.jackson.databind.JsonNode; -import org.apache.commons.lang3.StringUtils; /** * 检查更新任务 @@ -31,7 +31,7 @@ public class UpgradeTask extends BaseTask { String newVersion = response.get("tag_name").asString(); if (listener != null) - listener.onChecked(!StringUtils.equals(upgradeConfig.getVersion(), newVersion), newVersion); + listener.onChecked(!Strings.CS.equals(upgradeConfig.getVersion(), newVersion), newVersion); } /** diff --git a/src/main/java/cn/octopusyan/dmt/translate/processor/FreeBaiduTranslateProcessor.java b/src/main/java/cn/octopusyan/dmt/translate/processor/FreeBaiduTranslateProcessor.java index 18ab83a..2dddc59 100644 --- a/src/main/java/cn/octopusyan/dmt/translate/processor/FreeBaiduTranslateProcessor.java +++ b/src/main/java/cn/octopusyan/dmt/translate/processor/FreeBaiduTranslateProcessor.java @@ -23,6 +23,7 @@ public class FreeBaiduTranslateProcessor extends AbstractTranslateProcessor { static { header.put("Origin", "https://fanyi.baidu.com"); + header.put("acs-token", ""); header.put("Referer", "https://fanyi.baidu.com"); header.put("User-Agent", "Apifox/1.0.0 (https://apifox.com)"); header.put("Accept","*/*"); @@ -70,8 +71,6 @@ public class FreeBaiduTranslateProcessor extends AbstractTranslateProcessor { private void checkCookie() throws IOException, InterruptedException { // 短时大量请求会被ban,需要添加验证cookie - if (header.containsKey("Cookie")) return; - List cookieList = CookieManager.getStore().get(URI.create("https://baidu.com")); boolean noneMatch = cookieList.stream() .filter(cookie -> "ab_sr".equals(cookie.getName()) || "BAIDUID".equals(cookie.getName())) diff --git a/src/main/java/cn/octopusyan/dmt/translate/processor/FreeGoogleTranslateProcessor.java b/src/main/java/cn/octopusyan/dmt/translate/processor/FreeGoogleTranslateProcessor.java index 1eac04b..f043d10 100644 --- a/src/main/java/cn/octopusyan/dmt/translate/processor/FreeGoogleTranslateProcessor.java +++ b/src/main/java/cn/octopusyan/dmt/translate/processor/FreeGoogleTranslateProcessor.java @@ -34,18 +34,24 @@ public class FreeGoogleTranslateProcessor extends AbstractTranslateProcessor { @Override public String customTranslate(String source) throws IOException, InterruptedException { + Map header = new HashMap<>(); + header.put("User-Agent", "Mozilla/5.0 (Windows NT 11.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36 Edg/130.0.0.0"); + header.put("Referer", "https://translate.google.com/"); + header.put("Host", "translate.googleapis.com"); + Map form = new HashMap<>(); form.put("client", "gtx"); form.put("dt", "t"); form.put("sl", "auto"); form.put("tl", "zh-CN"); - form.put("q", source); - Map header = new HashMap<>(); + Map body = new HashMap<>(); + body.put("q", source); + StringBuilder retStr = new StringBuilder(); // TODO 短时大量请求会被ban,需要浏览器验证添加cookie - String resp = httpUtil.get(url(), JsonUtil.parseJsonObject(header), JsonUtil.parseJsonObject(form)); + String resp = httpUtil.postForm(url(), JsonUtil.parseJsonObject(header), JsonUtil.parseJsonObject(form), JsonUtil.parseJsonObject(body)); JsonNode json = JsonUtil.parseJsonObject(resp); for (JsonNode o : json.get(0)) { diff --git a/src/main/java/cn/octopusyan/dmt/utils/PBOUtil.java b/src/main/java/cn/octopusyan/dmt/utils/PBOUtil.java index 2cfc780..2d691c3 100644 --- a/src/main/java/cn/octopusyan/dmt/utils/PBOUtil.java +++ b/src/main/java/cn/octopusyan/dmt/utils/PBOUtil.java @@ -37,8 +37,8 @@ public class PBOUtil { private static final ProcessesUtil processesUtil = ProcessesUtil.init(Constants.BIN_DIR_PATH); - private static final String UNPACK_COMMAND = STR."\"\{Constants.PBOC_FILE}\" unpack -o \"\{Constants.TMP_DIR_PATH}\" {}"; - private static final String PACK_COMMAND = STR."\"\{Constants.PBOC_FILE}\" pack -o {} {}"; + private static final String UNPACK_COMMAND = STR."\"\{Constants.PBOC_FILE}\" unpack {} -o \"\{Constants.TMP_DIR_PATH}\""; + private static final String PACK_COMMAND = STR."\"\{Constants.PBOC_FILE}\" pack {} -o {}"; private static final String CFG_COMMAND = STR."\"\{Constants.CFG_CONVERT_FILE}\" {} -dst {} {}"; private static final String FILE_NAME_STRING_TABLE = "stringtable.csv"; @@ -122,7 +122,7 @@ public class PBOUtil { FileUtils.deleteQuietly(packFile); } - String command = ProcessesUtil.format(PACK_COMMAND, Constants.TMP_DIR_PATH, unpackPath); + String command = ProcessesUtil.format(PACK_COMMAND, unpackPath, Constants.TMP_DIR_PATH); consoleLog.debug(STR."pack command ==> [\{command}]"); boolean exec = processesUtil.exec(command); diff --git a/src/main/resources/bin/CfgConvert.exe b/src/main/resources/bin/CfgConvert.exe index 27106b9..2facfc5 100644 Binary files a/src/main/resources/bin/CfgConvert.exe and b/src/main/resources/bin/CfgConvert.exe differ