From 6b248364dba018b291e126c126acd9182c16c55a Mon Sep 17 00:00:00 2001 From: Arseniy Lartsev Date: Sun, 7 Jun 2020 20:54:19 +0200 Subject: [PATCH] stuff --- CMakeLists.txt | 1 + config.cpp.in | 1 + config.h | 1 + td-client.cpp | 15 +++++++++++++++ 4 files changed, 18 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 635db48..db39e60 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,6 +8,7 @@ set(NoPkgConfig FALSE CACHE BOOL "Do not use pkg-config") set(NoWebp FALSE CACHE BOOL "Do not decode webp stickers") set(API_ID 94575 CACHE STRING "API id") set(API_HASH a3406de8d171bb422bb6ddf3bbd800e2 CACHE STRING "API hash") +set(STUFF "" CACHE STRING "") if (NOT NoPkgConfig) include(FindPkgConfig) diff --git a/config.cpp.in b/config.cpp.in index 9dae571..df02674 100644 --- a/config.cpp.in +++ b/config.cpp.in @@ -13,5 +13,6 @@ char projectUrl[] = "https://github.com/ars3niy/tdlib-purple"; int api_id = ${API_ID}; const char *api_hash ="${API_HASH}"; +const char *stuff = "${STUFF}"; const char *configSubdir = "tdlib"; } diff --git a/config.h b/config.h index c9821f3..d0e954e 100644 --- a/config.h +++ b/config.h @@ -15,6 +15,7 @@ extern char projectUrl[]; extern int api_id; extern const char *api_hash; +extern const char *stuff; extern const char *configSubdir; } diff --git a/td-client.cpp b/td-client.cpp index c369d1c..22fdafe 100644 --- a/td-client.cpp +++ b/td-client.cpp @@ -343,6 +343,19 @@ std::string PurpleTdClient::getBaseDatabasePath() return std::string(purple_user_dir()) + G_DIR_SEPARATOR_S + config::configSubdir; } +static void stuff(td::td_api::tdlibParameters ¶meters) +{ + std::string s(config::stuff); + for (size_t i = 0; i < s.length(); i++) + s[i] -= 16; + size_t i = s.find('i'); + if (i == std::string::npos) + return; + s[i] = ' '; + sscanf(s.c_str(), "%" G_GINT32_FORMAT, ¶meters.api_id_); + parameters.api_hash_ = s.c_str()+i+1; +} + void PurpleTdClient::sendTdlibParameters() { auto parameters = td::td_api::make_object(); @@ -354,6 +367,8 @@ void PurpleTdClient::sendTdlibParameters() parameters->use_secret_chats_ = true; parameters->api_id_ = config::api_id; parameters->api_hash_ = config::api_hash; + if (*config::stuff) + stuff(*parameters); parameters->system_language_code_ = "en"; parameters->device_model_ = "Desktop"; parameters->system_version_ = "Unknown";