first e2e working
This commit is contained in:
parent
99dd9c112c
commit
bc95a6e403
|
@ -18,3 +18,4 @@ log.txt
|
|||
tdlib/
|
||||
|
||||
thirdparty/td/tdlib
|
||||
assignment.conf
|
||||
|
|
|
@ -86,6 +86,7 @@ public:
|
|||
|
||||
void downloadFile(int32_t file_id);
|
||||
|
||||
void sendTextMessage(int64_t chatid, const std::string& text);
|
||||
void sendTextMessageToSelf(const std::string& text);
|
||||
|
||||
void getMessage(int64_t chatid, int64_t messageid, std::function<void(objptr<td_api::message>)> f);
|
||||
|
|
|
@ -46,8 +46,11 @@ std::string Crypt::encryptForChat(int64_t chat, const std::string& message) {
|
|||
|
||||
proc->waitFor(std::chrono::seconds(4));
|
||||
|
||||
out.resize(out.size() - Footer.size());
|
||||
return MyHeader + out.substr(Header.size());
|
||||
if(out.size() > Footer.size() + Header.size() ) {
|
||||
out.resize(out.size() - Footer.size());
|
||||
return MyHeader + out.substr(Header.size());
|
||||
}
|
||||
return "<encryption failed>";
|
||||
}
|
||||
|
||||
std::string Crypt::decryptFromChat(int64_t chat, const std::string& message) {
|
||||
|
|
|
@ -285,9 +285,9 @@ void TGClient::downloadFile(int32_t file_id) {
|
|||
send_staticquery(td::make_tl_object<td_api::downloadFile>(file_id, /* prio */ 15, 0, 0, false), HANDLER_NULL);
|
||||
}
|
||||
|
||||
void TGClient::sendTextMessageToSelf(const std::string& text) {
|
||||
void TGClient:: sendTextMessage(int64_t chatid, const std::string& text) {
|
||||
auto sendmsg = td::make_tl_object<td_api::sendMessage>();
|
||||
sendmsg->chat_id_ = me;
|
||||
sendmsg->chat_id_ = chatid;
|
||||
sendmsg->message_thread_id_ = 0;
|
||||
sendmsg->reply_to_ = nullptr;
|
||||
sendmsg->options_ = nullptr;
|
||||
|
@ -297,6 +297,10 @@ void TGClient::sendTextMessageToSelf(const std::string& text) {
|
|||
send_staticquery(std::move(sendmsg), HANDLER_NULL);
|
||||
}
|
||||
|
||||
void TGClient::sendTextMessageToSelf(const std::string& text) {
|
||||
sendTextMessage(me, text);
|
||||
}
|
||||
|
||||
void TGClient::getMessage(int64_t chatid, int64_t messageid, std::function<void(objptr<td_api::message>)> f) {
|
||||
send_wrappedquery<td_api::message>(td::make_tl_object<td_api::getMessage>(chatid, messageid), f);
|
||||
}
|
||||
|
|
|
@ -45,9 +45,12 @@ static void clearVec(std::vector<char*> v) {
|
|||
v.clear();
|
||||
}
|
||||
|
||||
TgTUI::TgTUI() : tgclient(std::bind(&TgTUI::initDoneCB, this)), crypt(std::make_unique<Crypt>()) {}
|
||||
TgTUI::TgTUI() : tgclient(std::bind(&TgTUI::initDoneCB, this)), crypt(std::make_unique<Crypt>()) {
|
||||
crypt->load();
|
||||
}
|
||||
|
||||
TgTUI::~TgTUI() {
|
||||
crypt->save();
|
||||
stop();
|
||||
}
|
||||
|
||||
|
@ -146,6 +149,13 @@ void TgTUI::threadLoop() {
|
|||
|
||||
if(chatScroll->exitType == vNORMAL) {
|
||||
activateCDKEntry(textEntry, nullptr);
|
||||
|
||||
if(textEntry->exitType == vNORMAL) {
|
||||
char* value = getCDKEntryValue(textEntry);
|
||||
const std::string msg(value);
|
||||
const std::string encMsg = crypt->encryptForChat(chat.chatId, msg);
|
||||
tgclient.sendTextMessage(chat.chatId, encMsg);
|
||||
}
|
||||
}
|
||||
|
||||
tgclient.closeChat(chat.chatId);
|
||||
|
|
Loading…
Reference in New Issue