From 8736b8204008cc9686ffcd361334c3b62e553158 Mon Sep 17 00:00:00 2001 From: Changhua Date: Sun, 19 Mar 2023 23:42:15 +0800 Subject: [PATCH] Impl getDbTables --- .../src/main/java/com/iamteer/Client.java | 22 +++++++++++++++++++ .../src/main/java/com/iamteer/Main.java | 13 +++++++++++ 2 files changed, 35 insertions(+) diff --git a/java/wcferry/src/main/java/com/iamteer/Client.java b/java/wcferry/src/main/java/com/iamteer/Client.java index 5b4a1da..c2268c6 100644 --- a/java/wcferry/src/main/java/com/iamteer/Client.java +++ b/java/wcferry/src/main/java/com/iamteer/Client.java @@ -1,6 +1,7 @@ package com.iamteer; import com.iamteer.Wcf.DbNames; +import com.iamteer.Wcf.DbTable; import com.iamteer.Wcf.Functions; import com.iamteer.Wcf.Request; import com.iamteer.Wcf.Response; @@ -102,6 +103,19 @@ public class Client { return Wcf.DbNames.newBuilder().build().getNamesList(); } + public Map getDbTables(String db) { + Request req = new Request.Builder().setFuncValue(Functions.FUNC_GET_DB_TABLES_VALUE).setStr(db).build(); + Response rsp = sendCmd(req); + Map tables = new HashMap<>(); + if (rsp != null) { + for (DbTable tbl : rsp.getTables().getTablesList()) { + tables.put(tbl.getName(), tbl.getSql()); + } + } + + return tables; + } + public void waitMs(int ms) { try { Thread.sleep(ms); @@ -126,4 +140,12 @@ public class Client { c.getProvince(), c.getCity(), gender); } } + + public String bytesToHex(byte[] bytes) { + StringBuilder sb = new StringBuilder(); + for (byte b : bytes) { + sb.append(String.format("%02x", b)); + } + return sb.toString(); + } } diff --git a/java/wcferry/src/main/java/com/iamteer/Main.java b/java/wcferry/src/main/java/com/iamteer/Main.java index 87bd4ac..c6bfd5b 100644 --- a/java/wcferry/src/main/java/com/iamteer/Main.java +++ b/java/wcferry/src/main/java/com/iamteer/Main.java @@ -10,10 +10,23 @@ public class Main { final String url = "tcp://192.168.1.104:10086"; Client client = new Client(url); + // 是否已登录 logger.info("isLogin: {}", client.isLogin()); + + // 登录账号 wxid logger.info("wxid: {}", client.getSelfWxid()); + + // 消息类型 logger.info("message types: {}", client.getMsgTypes()); + + // 所有联系人(包括群聊、公众号、好友……) client.printContacts(client.getContacts()); + + // 获取数据库 logger.info("dbs: {}", client.getDbNames()); + + // 获取数据库下的表 + String db = "MicroMsg.db"; + logger.info("tables in {}: {}", db, client.getDbTables(db)); } }