2
0
mirror of https://github.com/ars3niy/tdlib-purple synced 2025-08-23 02:17:32 +00:00
tdlib-purple/client-utils.h

48 lines
2.1 KiB
C
Raw Normal View History

2020-05-15 19:46:07 +02:00
#ifndef _CLIENT_UTILS_H
#define _CLIENT_UTILS_H
#include "account-data.h"
2020-05-15 19:46:07 +02:00
#include "transceiver.h"
#include <purple.h>
2020-05-13 19:15:15 +02:00
struct TgMessageInfo {
std::string sender;
time_t timestamp;
bool outgoing;
int64_t repliedMessageId;
2020-05-13 19:15:15 +02:00
};
// Matching completed downloads to chats they belong to
class DownloadRequest: public PendingRequest {
public:
int64_t chatId;
TgMessageInfo message;
td::td_api::object_ptr<td::td_api::file> thumbnail;
// Could not pass object_ptr through variadic funciton :(
DownloadRequest(uint64_t requestId, int64_t chatId, const TgMessageInfo &message, td::td_api::file *thumbnail)
: PendingRequest(requestId), chatId(chatId), message(message), thumbnail(thumbnail) {}
};
std::string messageTypeToString(const td::td_api::MessageContent &content);
const char *getPurpleStatusId(const td::td_api::UserStatus &tdStatus);
std::string getPurpleUserName(const td::td_api::user &user);
PurpleConversation *getImConversation(PurpleAccount *account, const char *username);
PurpleConvChat *getChatConversation(PurpleAccount *account, const td::td_api::chat &chat,
int chatPurpleId, TdAccountData &accountData);
std::string getSenderPurpleName(const td::td_api::chat &chat, const td::td_api::message &message,
TdAccountData &accountData);
2020-05-14 14:42:05 +02:00
void getNamesFromAlias(const char *alias, std::string &firstName, std::string &lastName);
2020-05-12 19:37:59 +02:00
std::vector<PurpleChat *> findChatsByInviteLink(const std::string &inviteLink);
2020-05-13 19:15:15 +02:00
void showMessageText(PurpleAccount *account, const td::td_api::chat &chat, const TgMessageInfo &message,
const char *text, const char *notification, TdAccountData &accountData,
uint32_t extraFlags = 0);
void setChatMembers(PurpleConvChat *purpleChat, const td::td_api::basicGroupFullInfo &groupInfo,
const TdAccountData &accountData);
2020-05-16 00:16:06 +02:00
void transmitMessage(int64_t chatId, const char *message, TdTransceiver &transceiver,
TdAccountData &accountData, TdTransceiver::ResponseCb response);
2020-05-15 19:46:07 +02:00
#endif