Refactoring
This commit is contained in:
parent
2df74fb4d2
commit
a9be7b094d
@ -11,10 +11,13 @@ extern UINT64 g_WeChatWinDllAddr;
|
||||
|
||||
namespace account
|
||||
{
|
||||
#define OS_USER_HOME 0x5932770
|
||||
#define OS_USER_WXID 0x595C270
|
||||
#define OS_USER_NAME 0x595C3D8
|
||||
#define OS_USER_MOBILE 0x595C318
|
||||
#define OS_LOGIN_STATUS 0x595C9E8
|
||||
#define OS_USER_HOME 0x5932770
|
||||
#define OS_USER_WXID 0x595C270
|
||||
#define OS_USER_NAME 0x595C3D8
|
||||
#define OS_USER_MOBILE 0x595C318
|
||||
|
||||
bool is_logged_in() { return util::get_qword(g_WeChatWinDllAddr + OS_LOGIN_STATUS) != 0; }
|
||||
|
||||
std::string get_home_path()
|
||||
{
|
||||
@ -68,6 +71,11 @@ UserInfo_t get_user_info()
|
||||
return ui;
|
||||
}
|
||||
|
||||
bool rpc_is_logged_in(uint8_t *out, size_t *len)
|
||||
{
|
||||
return fill_response<Functions_FUNC_IS_LOGIN>(out, len, [](Response &rsp) { rsp.msg.status = is_logged_in(); });
|
||||
}
|
||||
|
||||
bool rpc_get_self_wxid(uint8_t *out, size_t *len)
|
||||
{
|
||||
return fill_response<Functions_FUNC_GET_SELF_WXID>(
|
||||
|
@ -8,6 +8,9 @@
|
||||
namespace account
|
||||
{
|
||||
|
||||
// 登录状态
|
||||
bool is_logged_in();
|
||||
|
||||
// 获取 WeChat 数据存储路径
|
||||
std::string get_home_path();
|
||||
|
||||
@ -18,6 +21,7 @@ std::string get_self_wxid();
|
||||
UserInfo_t get_user_info();
|
||||
|
||||
// RPC 方法
|
||||
bool rpc_is_logged_in(uint8_t *out, size_t *len);
|
||||
bool rpc_get_self_wxid(uint8_t *out, size_t *len);
|
||||
bool rpc_get_user_info(uint8_t *out, size_t *len);
|
||||
|
||||
|
@ -28,7 +28,6 @@ namespace misc
|
||||
#define HEADER_GIF1 0x47
|
||||
#define HEADER_GIF2 0x49
|
||||
|
||||
#define OS_LOGIN_STATUS 0x595C9E8
|
||||
#define OS_GET_SNS_DATA_MGR 0x21E2200
|
||||
#define OS_GET_SNS_FIRST_PAGE 0x2E212D0
|
||||
#define OS_GET_SNS_TIMELINE_MGR 0x2DB3390
|
||||
@ -54,8 +53,6 @@ using push_attach_task_t = QWORD (*)(QWORD, QWORD, QWORD, QWORD);
|
||||
using get_ocr_manager_t = QWORD (*)();
|
||||
using do_ocr_task_t = QWORD (*)(QWORD, QWORD, QWORD, QWORD, QWORD, QWORD);
|
||||
|
||||
bool is_logged_in() { return util::get_qword(g_WeChatWinDllAddr + OS_LOGIN_STATUS) != 0; }
|
||||
|
||||
static std::string detect_image_extension(uint8_t header1, uint8_t header2, uint8_t &key)
|
||||
{
|
||||
if ((key = HEADER_PNG1 ^ header1) && (HEADER_PNG2 ^ key) == header2) return ".png";
|
||||
@ -351,11 +348,6 @@ int receive_transfer(const std::string &wxid, const std::string &transferid, con
|
||||
return -1;
|
||||
}
|
||||
|
||||
bool rpc_is_logged_in(uint8_t *out, size_t *len)
|
||||
{
|
||||
return fill_response<Functions_FUNC_IS_LOGIN>(out, len, [](Response &rsp) { rsp.msg.status = is_logged_in(); });
|
||||
}
|
||||
|
||||
bool rpc_get_audio(const AudioMsg &am, uint8_t *out, size_t *len)
|
||||
{
|
||||
return fill_response<Functions_FUNC_GET_AUDIO_MSG>(
|
||||
|
@ -13,8 +13,6 @@
|
||||
namespace misc
|
||||
{
|
||||
|
||||
bool is_logged_in();
|
||||
|
||||
std::string get_audio(uint64_t id, const std::filesystem::path &dir);
|
||||
std::string get_pcm_audio(uint64_t id, const std::filesystem::path &dir, int32_t sr);
|
||||
std::string decrypt_image(const std::filesystem::path &src, const std::filesystem::path &dst);
|
||||
@ -29,7 +27,6 @@ int receive_transfer(const std::string &wxid, const std::string &transferid, con
|
||||
|
||||
// RPC
|
||||
// clang-format off
|
||||
bool rpc_is_logged_in(uint8_t *out, size_t *len);
|
||||
bool rpc_get_audio(const AudioMsg &am, uint8_t *out, size_t *len);
|
||||
bool rpc_get_pcm_audio(uint64_t id, const std::filesystem::path &dir, int32_t sr, uint8_t *out, size_t *len);
|
||||
bool rpc_decrypt_image(const DecPath &dec, uint8_t *out, size_t *len);
|
||||
|
@ -151,7 +151,7 @@ static bool rpc_disable_recv_msg(uint8_t *out, size_t *len)
|
||||
|
||||
const std::unordered_map<Functions, FunctionHandler> rpc_function_map = {
|
||||
// clang-format off
|
||||
{ Functions_FUNC_IS_LOGIN, [](const Request &r, uint8_t *out, size_t *len) { return misc::rpc_is_logged_in(out, len); } },
|
||||
{ Functions_FUNC_IS_LOGIN, [](const Request &r, uint8_t *out, size_t *len) { return account::rpc_is_logged_in(out, len); } },
|
||||
{ Functions_FUNC_GET_SELF_WXID, [](const Request &r, uint8_t *out, size_t *len) { return account::rpc_get_self_wxid(out, len); } },
|
||||
{ Functions_FUNC_GET_USER_INFO, [](const Request &r, uint8_t *out, size_t *len) { return account::rpc_get_user_info(out, len); } },
|
||||
{ Functions_FUNC_GET_MSG_TYPES, [](const Request &r, uint8_t *out, size_t *len) { return handler.rpc_get_msg_types(out, len); } },
|
||||
|
Loading…
Reference in New Issue
Block a user