/
lmaxyz
/
telegraf
Обзор
Документация
Войти
/
lmaxyz
/
telegraf
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
src/tdlib/tdlibresponsehandler.h
161 строка
10 KB
Nikolay Sinyov
- Добавление логики для работы с комментариеями в канале
16 сен 2025, 14:15
16 сен 2025, 14:15
47faecf
Код
Авторство
О чём код?
#pragma once #include <QCoreApplication> #include "tdlibreceiver.h" #include "../data/appsettings.h" #include "tdlibrequestfactory.h" #include "tdlibrequestservice.h" #include "tdlibrequestsender.h" #include "tdlibstate.h" #include "tdlibconstants.h" #include "../data/tdlibdatarepository.h" #include "../data/groupmodel.h" #include "../device/osservice.h" class TDLibResponseHandler : public QObject { Q_OBJECT public: explicit TDLibResponseHandler(QString dbPath, QObject *parent = nullptr); ~TDLibResponseHandler(); static QObject* getSingleton(QQmlEngine*, QJSEngine*) { return instance; } static TDLibResponseHandler* getInstance() { return instance; }; signals: void versionDetected(const QString &version); void fileUpdated(int fileId, const QVariantMap &fileInformation); void newChatDiscovered(const QString &chatId, const QVariantMap &chatInformation); void chatFolders(const QVariantList &folders, qlonglong mainChatlistPosition); void chatInArchive(const qlonglong chatId); void chatFolder(const QVariantMap &chatFolderInformation); void unreadMessageCountUpdated(const QVariantMap &messageCountInformation); void unreadFolderMessageCountUpdated(const QVariantMap &messageCountInformation); void unreadArchiveMessageCountUpdated(const QVariantMap &messageCountInformation); void unreadChatCountUpdated(const QVariantMap &chatCountInformation); void chatLastMessageUpdated(const QString &chatId, const QString &order, const QVariantMap &lastMessage); void chatOrderUpdated(const QString &chatId, const QString &order, const QString &chatListName); void chatPinnedUpdated(qlonglong chatId, bool isPinned, const QString &chatListName); void chatReadInboxUpdated(const QString &chatId, const QString &lastReadInboxMessageId, int unreadCount); void chatReadOutboxUpdated(const QString &chatId, const QString &lastReadOutboxMessageId); void chatAvailableReactionsUpdated(const qlonglong &chatId, const QVariantMap &availableReactions); void userUpdated(const qlonglong userId, const QVariantMap &userInformation); void chatOnlineMemberCountUpdated(const QString &chatId, int onlineMemberCount); void messagesReceived(const QVariantList &messages, int totalCount); void pinnedMessagesReceived(qlonglong chatId, qlonglong topicId, const QVariantList &messages); void messagePropertiesReceived(qlonglong messageId, bool canBeEdited, bool canBePinned, bool canBeDeleted, bool canGetMessageThread); void sponsoredMessageReceived(qlonglong chatId, const QVariantMap &message); void messageLinkInfoReceived(const QString &url, const QVariantMap &messageLinkInfo, const QString &extra); void newMessageReceived(qlonglong chatId, const QVariantMap &message); void receivedMessage(qlonglong chatId, qlonglong messageId, const QVariantMap &message); void messageSendSucceeded(qlonglong messageId, qlonglong oldMessageId, const QVariantMap &message); void activeNotificationsUpdated(const QVariantList notificationGroups); void notificationGroupUpdated(const QVariantMap notificationGroupUpdate); void notificationUpdated(const QVariantMap updatedNotification); void chatNotificationSettingsUpdated(const QString &chatId, const QVariantMap chatNotificationSettings); void messageContentUpdated(qlonglong chatId, qlonglong messageId, const QVariantMap &newContent); void messageEditedUpdated(qlonglong chatId, qlonglong messageId, const QVariantMap &replyMarkup); void messagesDeleted(qlonglong chatId, const QList<qlonglong> &messageIds); void chatsReceived(const QVariantMap &chats); void chatReceived(const QVariantMap &chat); void secretChatReceived(qlonglong secretChatId, const QVariantMap &secretChat); void secretChatUpdated(qlonglong secretChatId, const QVariantMap &secretChat); void recentStickersUpdated(const QVariantList &stickerIds); void stickersReceived(const QVariantList &stickers); void installedStickerSetsUpdated(const QVariantList &stickerSetIds); void stickerSetsReceived(const QVariantList &stickerSets); void stickerSetReceived(const QVariantMap &stickerSet); void chatMembersReceived(const QString &extra, const QVariantList &members, int totalMembers); void userFullInfoReceived(const QVariantMap &userFullInfo); void userFullInfoUpdated(const QString &userId, const QVariantMap &userFullInfo); void basicGroupFullInfoReceived(const QString &groupId, const QVariantMap &groupFullInfo); void supergroupFullInfoReceived(const QString &groupId, const QVariantMap &groupFullInfo); void basicGroupFullInfoUpdated(const QString &groupId, const QVariantMap &groupFullInfo); void supergroupFullInfoUpdated(const QString &groupId, const QVariantMap &groupFullInfo); void userProfilePhotosReceived(const QString &extra, const QVariantList &photos, int totalPhotos); void chatPermissionsUpdated(const QString &chatId, const QVariantMap &permissions); void chatPhotoUpdated(qlonglong chatId, const QVariantMap &photo); void chatTitleUpdated(const QString &chatId, const QString &title); void chatPinnedMessageUpdated(qlonglong chatId, qlonglong pinnedMessageId); void messageThreadReceived(qlonglong chatId, qlonglong messageId, const QVariantMap &messageThreadInfo); void usersReceived(const QString &extra, const QVariantList &userIds, int totalUsers); void messageSendersReceived(const QString &extra, const QVariantList &senders, int totalUsers); void errorReceived(int code, const QString &message, const QString &extra); void contactsImported(const QVariantList &importerCount, const QVariantList &userIds); void messageNotFound(qlonglong chatId, qlonglong messageId); void chatIsMarkedAsUnreadUpdated(qlonglong chatId, bool chatIsMarkedAsUnread); void chatDraftMessageUpdated(qlonglong chatId, const QVariantMap &draftMessage, const QString &order); void inlineQueryResults(const QString &inlineQueryId, const QString &nextOffset, const QVariantList &results, const QString &switchPmText, const QString &switchPmParameter, const QString &extra); void callbackQueryAnswer(const QString &text, bool alert, const QString &url); void userPrivacySettingUpdated(TDLibConstants::UserPrivacySetting setting, TDLibConstants::UserPrivacySettingRule rule); void messageInteractionInfoUpdated(qlonglong chatId, qlonglong messageId, const QVariantMap &updatedInfo); void okReceived(const QString &request); void sessionsReceived(int inactive_session_ttl_days, const QVariantList &sessions); void openFileExternally(const QString &filePath); void availableReactionsReceived(qlonglong messageId, const QStringList &reactions); void chatUnreadMentionCountUpdated(qlonglong chatId, int unreadMentionCount); void chatUnreadReactionCountUpdated(qlonglong chatId, int unreadReactionCount); void receivedForumTopics(const QVariantMap &information); void receivedForumTopic(const QVariantMap &information); void receivedUpdateForumTopicInfo(const QVariantMap &information); void userVerificationStatusUpdated(qlonglong userId, const QVariantMap &userInformation); void receivedStorageStatisticsFast(qlonglong databaseSize, qlonglong fileCount, qlonglong filesSize); void receivedStorageStatistics(); public slots: void handleVersionDetected(const QString &version); void handleAuthorizationStateChanged(const QString &authorizationState, const QVariantMap authorizationStateData); void handleOptionUpdated(const QString &optionName, const QVariant &optionValue); void handleConnectionStateChanged(const QString &connectionState); void handleUserUpdated(const QVariantMap &updatedUserInformation); void handleUserStatusUpdated(const qlonglong userId, const QVariantMap &userStatusInformation); void handleFileUpdated(const QVariantMap &fileInformation); void handleNewChatDiscovered(const QVariantMap &chatInformation); void handleChatFolders(const QVariantList &foldersInformation, qlonglong mainChatlistPosition); void handleChatFolder(const QVariantMap &chatFolderInformation); void handleChatReceived(const QVariantMap &chatInformation); void handleUnreadMessageCountUpdated(const QVariantMap &messageCountInformation); void handleUnreadChatCountUpdated(const QVariantMap &chatCountInformation); void handleAvailableReactionsUpdated(qlonglong chatId, const QVariantMap &availableReactions); void handleBasicGroupUpdated(qlonglong groupId, const QVariantMap &groupInformation); void handleSuperGroupUpdated(qlonglong groupId, const QVariantMap &groupInformation); void handleStickerSets(const QVariantList &stickerSets); void handleSecretChatReceived(qlonglong secretChatId, const QVariantMap &secretChat); void handleSecretChatUpdated(qlonglong secretChatId, const QVariantMap &secretChat); void handleErrorReceived(int code, const QString &message, const QString &extra); void handleMessageInformation(qlonglong chatId, qlonglong messageId, const QVariantMap &receivedInformation); void handleMessageIsPinnedUpdated(qlonglong chatId, qlonglong messageId, bool isPinned); void handleUserPrivacySettingRules(const QVariantMap &rules); void handleUpdatedUserPrivacySettingRules(const QVariantMap &updatedRules); void handleSponsoredMessage(qlonglong chatId, const QVariantMap &message); void handleActiveEmojiReactionsUpdated(const QStringList &emojis); void handleOkOrErrorReceived(const QJsonObject &jsonResponse); void handleForumTopics(const QVariantMap &forumTopicsInformation); void handleForumTopic(const QVariantMap &forumTopic); void handleUpdateForumTopicInfo(const QVariantMap &forumTopicInfo); void handleStorageStatisticsFastReceived(const QVariantMap &forumTopicInfo); void handleChatLastMessageUpdated(const QString &chatId, const QString &order, const QVariantMap &lastMessage); void handleChatLastMessageUpdateDebounceTimer(); private: void setOption(const QString &name, const QString &type, const QVariant &value); void initializeTDLibReceiver(); void updateUserInformation(const qlonglong userId, const QVariantMap &userInformation); private: const QString dbPath; TDLibReceiver *_tdLibReceiver; bool _allMainChatsLoaded; static TDLibResponseHandler* instance; private: struct ChatLastMessageUpdate { QString order; QVariantMap lastMessage; }; QTimer *chatLastMessageUpdateDebounceTimer; QHash<QString, ChatLastMessageUpdate> chatLastMessageUpdateMap; };