From b46f5b4aa78c44f1934183786ae39051ba59f145 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Tue, 18 Apr 2023 18:03:38 +0300 Subject: fixes #3490 (Tox: seems toxme.io is not actual) --- protocols/Tox/src/tox_proto.h | 2 -- protocols/Tox/src/tox_search.cpp | 61 ++-------------------------------------- 2 files changed, 2 insertions(+), 61 deletions(-) (limited to 'protocols/Tox/src') diff --git a/protocols/Tox/src/tox_proto.h b/protocols/Tox/src/tox_proto.h index 944675a71b..3bdd6eaaf3 100644 --- a/protocols/Tox/src/tox_proto.h +++ b/protocols/Tox/src/tox_proto.h @@ -165,8 +165,6 @@ private: static void OnConnectionStatusChanged(Tox *tox, uint32_t friendNumber, TOX_CONNECTION status, void *arg); // contacts search - void __cdecl SearchByNameAsync(void *arg); - static INT_PTR CALLBACK SearchDlgProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam); HANDLE OnSearchAdvanced(HWND owner); diff --git a/protocols/Tox/src/tox_search.cpp b/protocols/Tox/src/tox_search.cpp index 9b398e1fd8..7c84237c60 100644 --- a/protocols/Tox/src/tox_search.cpp +++ b/protocols/Tox/src/tox_search.cpp @@ -1,57 +1,5 @@ #include "stdafx.h" -ToxHexAddress ResolveToxAddressFromToxme(HNETLIBUSER hNetlib, const char *query) -{ - ToxHexAddress address = ToxHexAddress::Empty(); - - HttpRequest request(REQUEST_POST, "https://toxme.io/api"); - JSONNode root(JSON_NODE); - root - << JSONNode("action", 3) - << JSONNode("name", query); - json_string data = root.write(); - request.SetData(data.c_str(), data.length()); - - NLHR_PTR response(request.Send(hNetlib)); - if (response == nullptr) - return ToxHexAddress::Empty(); - - if (response->resultCode != HTTP_CODE_OK || !response->pData) - return ToxHexAddress::Empty(); - - root = JSONNode::parse(response->pData); - if (root.empty()) - return ToxHexAddress::Empty(); - - json_string id = root.at("tox_id").as_string(); - return ToxHexAddress(id.c_str()); -} - -void CToxProto::SearchByNameAsync(void *arg) -{ - Thread_SetName(MODULE ": SearchByNameThread"); - - char *query = (char*)arg; - char *name = strtok(query, "@"); - - ToxHexAddress address = ResolveToxAddressFromToxme(m_hNetlibUser, query); - if (!address.IsEmpty()) { - PROTOSEARCHRESULT psr = { sizeof(PROTOSEARCHRESULT) }; - psr.flags = PSR_UTF8; - psr.id.a = mir_strdup(address); - psr.nick.a = mir_strdup(name); - - char email[MAX_PATH]; - mir_snprintf(email, "%s@toxme.io", name); - psr.email.a = mir_strdup(email); - - ProtoBroadcastAck(NULL, ACKTYPE_SEARCH, ACKRESULT_DATA, this, (LPARAM)&psr); - } - - ProtoBroadcastAck(NULL, ACKTYPE_SEARCH, ACKRESULT_SUCCESS, this, 0); - mir_free(arg); -} - INT_PTR CToxProto::SearchDlgProc(HWND hwnd, UINT uMsg, WPARAM, LPARAM lParam) { CToxProto *proto = (CToxProto*)GetWindowLongPtr(hwnd, GWLP_USERDATA); @@ -96,13 +44,8 @@ HANDLE CToxProto::OnSearchAdvanced(HWND owner) ProtoBroadcastAsync(NULL, ACKTYPE_SEARCH, ACKRESULT_SUCCESS, this); } - else { - regex = "^\\s*(([^ @/:;()\"']+)(@[A-Za-z]+.[A-Za-z]{2,6})?)\\s*$"; - if (std::regex_search(query, match, regex)) - ForkThread(&CToxProto::SearchByNameAsync, mir_strdup(query.c_str())); - else - ProtoBroadcastAsync(NULL, ACKTYPE_SEARCH, ACKRESULT_FAILED, this, (LPARAM)TranslateT("Invalid search string")); - } + else ProtoBroadcastAsync(NULL, ACKTYPE_SEARCH, ACKRESULT_FAILED, this, (LPARAM)TranslateT("Invalid search string")); + return (HWND)this; } -- cgit v1.2.3