From 8257393909fe40f779f26a5be7ffdf6575c8f275 Mon Sep 17 00:00:00 2001 From: gdlbo <41114720+gdlbo@users.noreply.github.com> Date: Fri, 29 Jul 2022 20:56:48 +0300 Subject: [PATCH] DeepLApi test --- .../vk/im/ui/components/common/MsgAction.java | 3 +- .../ui/components/common/MsgActionHelper.java | 3 + .../vtosters/lite/net/translate/DeepLApi.java | 76 +++++++++++++++++++ .../lite/net/translate/DeepLJson.java | 6 ++ .../OnViewControllerCallbackImpl.smali | 10 ++- .../viewcontrollers/popup/DelegateMsg.smali | 21 ++++- 6 files changed, 116 insertions(+), 3 deletions(-) create mode 100644 app/src/main/java/ru/vtosters/lite/net/translate/DeepLApi.java create mode 100644 app/src/main/java/ru/vtosters/lite/net/translate/DeepLJson.java diff --git a/app/src/main/java/com/vk/im/ui/components/common/MsgAction.java b/app/src/main/java/com/vk/im/ui/components/common/MsgAction.java index 4a4d30497..c502c1987 100644 --- a/app/src/main/java/com/vk/im/ui/components/common/MsgAction.java +++ b/app/src/main/java/com/vk/im/ui/components/common/MsgAction.java @@ -9,5 +9,6 @@ public enum MsgAction{ DELETE, SPAM, PIN, - UNPIN + UNPIN, + TRANSLATE } \ No newline at end of file diff --git a/app/src/main/java/com/vk/im/ui/components/common/MsgActionHelper.java b/app/src/main/java/com/vk/im/ui/components/common/MsgActionHelper.java index 9c4b87f0a..e168dde83 100644 --- a/app/src/main/java/com/vk/im/ui/components/common/MsgActionHelper.java +++ b/app/src/main/java/com/vk/im/ui/components/common/MsgActionHelper.java @@ -5,10 +5,12 @@ import com.vk.im.engine.ImConfig; import com.vk.im.engine.ImEngine; import com.vk.im.engine.models.dialogs.Dialog; import com.vk.im.engine.models.messages.Msg; +import com.vk.im.engine.models.messages.MsgFromUser; import com.vk.im.engine.utils.MsgPermissionHelper; import java.util.ArrayList; import java.util.Collection; +import java.util.Iterator; import java.util.List; public final class MsgActionHelper{ @@ -32,6 +34,7 @@ public final class MsgActionHelper{ CollectionExt.a(arrayList, MsgAction.SPAM, MsgPermissionHelper.b.h(aVar)); CollectionExt.a(arrayList, MsgAction.PIN, MsgPermissionHelper.b.e(aVar)); CollectionExt.a(arrayList, MsgAction.UNPIN, MsgPermissionHelper.b.i(aVar)); + CollectionExt.a(arrayList, MsgAction.TRANSLATE, true); return arrayList; } diff --git a/app/src/main/java/ru/vtosters/lite/net/translate/DeepLApi.java b/app/src/main/java/ru/vtosters/lite/net/translate/DeepLApi.java new file mode 100644 index 000000000..e832b7c2b --- /dev/null +++ b/app/src/main/java/ru/vtosters/lite/net/translate/DeepLApi.java @@ -0,0 +1,76 @@ +package ru.vtosters.lite.net.translate; + +import android.util.Log; + +import org.json.JSONException; +import org.json.JSONObject; + +import java.io.IOException; +import java.util.TreeMap; + +import ru.vtosters.lite.net.NetCall; +import ru.vtosters.lite.net.NetCallback; +import ru.vtosters.lite.net.NetClient; +import ru.vtosters.lite.net.NetRequest; +import ru.vtosters.lite.net.NetResponse; + +public class DeepLApi{ + private static final NetClient client = new NetClient.Builder().build(); + private static JSONObject resp; + + public static void getTranslation(String text, String to){ // Get translation from DeepL private API using Input text and Language code which you want to translate to + String uri = "https://www2.deepl.com/jsonrpc"; + String key = "9"; + + try { + var xinst = "d1c8bfe3-639d-4af2-af66-2da461ce4b8c"; + var android = "12"; + var phone = "GM1917"; + + TreeMap treeMap = new TreeMap<>(); // create map for request + treeMap.put("Host", "www2.deepl.com"); + treeMap.put("referer", "https://www.deepl.com/"); + treeMap.put("x-instance", xinst); + treeMap.put("user-agent", "DeepL/1.3.1(34) Android " + android + " (" + phone + ";armv8l)"); + treeMap.put("x-app-os-name", "Android"); + treeMap.put("x-app-os-version", android); + treeMap.put("x-app-version", "1.3.1"); + treeMap.put("x-app-build", "34"); + treeMap.put("x-app-device", phone); + treeMap.put("x-app-instance-id", xinst); + treeMap.put("content-type", "application/json; charset=utf-8"); + treeMap.put("content-length", uri.length() + ""); + treeMap.put("accept-encoding", "gzip"); + + client.newCall(new NetRequest.Builder().url(uri).post().params(treeMap).build()).enqueue(new NetCallback() { + @Override + public void onResponse(NetCall call, NetResponse response){ + Log.d("DeepLApi", "Response: " + response.getDataString()); + try { + resp = new JSONObject(response.getDataString()).optJSONObject("result"); + } catch (JSONException e) { + e.printStackTrace(); + } + } + + @Override + public void onFailure(NetCall call, IOException e) { + Log.d("DeepLApi", "Failure: " + e.getMessage()); + } + }); + + if (resp == null) { + Log.d("DeepLApi", "Response is null"); + return; + } + + var lang = resp.optString("lang"); // get language code from response + var texts = resp.optJSONArray("texts").getJSONObject(0); + var result = texts.optString("text"); // get translation result as text + + + } catch (Exception e) { + Log.e("DeepLApi", "Error: " + e.getMessage()); + } + } +} diff --git a/app/src/main/java/ru/vtosters/lite/net/translate/DeepLJson.java b/app/src/main/java/ru/vtosters/lite/net/translate/DeepLJson.java new file mode 100644 index 000000000..267cb73bc --- /dev/null +++ b/app/src/main/java/ru/vtosters/lite/net/translate/DeepLJson.java @@ -0,0 +1,6 @@ +package ru.vtosters.lite.net.translate; +public class DeepLJson{ + public static void main(String text) { + + } +} diff --git a/smali/smali_classes3/com/vk/im/ui/components/msg_list/OnViewControllerCallbackImpl.smali b/smali/smali_classes3/com/vk/im/ui/components/msg_list/OnViewControllerCallbackImpl.smali index 6dd17ed67..5330306da 100644 --- a/smali/smali_classes3/com/vk/im/ui/components/msg_list/OnViewControllerCallbackImpl.smali +++ b/smali/smali_classes3/com/vk/im/ui/components/msg_list/OnViewControllerCallbackImpl.smali @@ -583,7 +583,15 @@ .method public a(Lcom/vk/im/ui/components/common/MsgAction;Lcom/vk/im/engine/models/messages/Msg;)V .locals 1 - .line 20 + invoke-static {p1, p2}, Lru/vtosters/lite/dnr/DNRInjector;->onClickMsg(Lcom/vk/im/ui/components/common/MsgAction;Lcom/vk/im/engine/models/messages/Msg;)Z + + move-result v0 + + if-nez v0, :cond_228 + + goto :goto_0 + + :cond_228 sget-object v0, Lcom/vk/im/ui/components/msg_list/g;->$EnumSwitchMapping$0:[I invoke-virtual {p1}, Ljava/lang/Enum;->ordinal()I diff --git a/smali/smali_classes3/com/vk/im/ui/components/viewcontrollers/popup/DelegateMsg.smali b/smali/smali_classes3/com/vk/im/ui/components/viewcontrollers/popup/DelegateMsg.smali index 9b816c382..b5fbaccc2 100644 --- a/smali/smali_classes3/com/vk/im/ui/components/viewcontrollers/popup/DelegateMsg.smali +++ b/smali/smali_classes3/com/vk/im/ui/components/viewcontrollers/popup/DelegateMsg.smali @@ -51,7 +51,7 @@ invoke-direct {v0, v1}, Lcom/vk/im/ui/components/viewcontrollers/popup/DelegateMsg$a;->(Lkotlin/jvm/internal/DefaultConstructorMarker;)V - const/16 v0, 0x9 + const/16 v0, 0xa new-array v0, v0, [Lkotlin/Pair; @@ -208,6 +208,25 @@ aput-object v1, v0, v2 + + .line 9 + sget-object v1, Lcom/vk/im/ui/components/common/MsgAction;->TRANSLATE:Lcom/vk/im/ui/components/common/MsgAction; + + new-instance v2, Lcom/vk/im/ui/components/viewcontrollers/popup/DelegateMsg$a$a; + + sget v3, Lcom/vk/im/ui/m;->vkim_msg_action_spam:I + + invoke-direct {v2, v3}, Lcom/vk/im/ui/components/viewcontrollers/popup/DelegateMsg$a$a;->(I)V + + invoke-static {v1, v2}, Lkotlin/Tuples;->a(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair; + + move-result-object v1 + + const/16 v2, 0x9 + + aput-object v1, v0, v2 + + .line 10 invoke-static {v0}, Lkotlin/collections/c0;->b([Lkotlin/Pair;)Ljava/util/LinkedHashMap;