cpp-mirai-client  v2.6.1
cpp client for mirai-api-http
Mirai::MiraiClient类 参考

提供与mirai-api-http网络交互的封装 更多...

#include <Client.hpp>

Mirai::MiraiClient 的协作图:
[图例]

Public 类型

template<typename Event >
using EventCallback = std::function< void(Event)>
 
using string = std::string
 

Public 成员函数

 MiraiClient ()
 
 MiraiClient (std::unique_ptr< IAdaptor > adaptor)
 
template<typename Adaptor , typename... Args, typename std::enable_if_t< std::is_base_of_v< IAdaptor, Adaptor >, int > = 0>
 MiraiClient (Args &&... args)
 
 MiraiClient (const MiraiClient &)=delete
 
MiraiClientoperator= (const MiraiClient &)=delete
 
 MiraiClient (MiraiClient &&rhs) noexcept=delete
 
MiraiClientoperator= (MiraiClient &&rhs) noexcept=delete
 
 ~MiraiClient ()
 
std::optional< std::string > GetSessionKey () const
 获取连接mirai-api-http的session key,若尚未建立链接则返回 std::nullopt 更多...
 
std::size_t SetPoolSize (std::size_t size)
 设置线程池大小 更多...
 
void SetLogger (std::shared_ptr< ILogger > logger)
 设置日志记录类 更多...
 
std::shared_ptr< ILoggerGetLogger () const
 获取日志记录类 更多...
 
void Connect ()
 连接mirai-api-http 更多...
 
void Disconnect (bool WaitForFinish=false)
 断开与mirai-api-http的连接 更多...
 
bool isConnected () const
 返回是否已成功连接mirai-api-http 更多...
 
constexpr std::string_view GetCompatibleVersion () const
 返回兼容的mirai-api-http的版本号 更多...
 
string GetMiraiApiHttpVersion () const
 获取mirai-api-http插件的版本号 更多...
 
QQ_t GetBotQQ () const
 获取Bot账号 更多...
 
std::vector< QQ_tGetBotList () const
 获取mirai中可用的QQBot列表 更多...
 
FriendMessageEvent GetFriendMessage (MessageId_t id, QQ_t qq) const
 从消息id获取好友消息 更多...
 
GroupMessageEvent GetGroupMessage (MessageId_t id, GID_t GroupId) const
 从消息id获取群聊消息 更多...
 
TempMessageEvent GetTempMessage (MessageId_t id, GID_t GroupId) const
 从消息id获取临时消息 更多...
 
StrangerMessageEvent GetStrangerMessage (MessageId_t id, QQ_t qq) const
 从消息id获取陌生人消息 更多...
 
std::vector< UserGetFriendList () const
 获取好友列表 更多...
 
std::vector< GroupGetGroupList () const
 获取群聊列表 更多...
 
std::vector< GroupMemberGetMemberList (GID_t GroupId) const
 获取群成员列表 更多...
 
std::vector< GroupMemberGetLatestMemberList (GID_t GroupId) const
 获取最新群成员列表 更多...
 
UserProfile GetBotProfile () const
 获取Bot用户资料 更多...
 
UserProfile GetFriendProfile (QQ_t qq) const
 获取好友用户资料 更多...
 
UserProfile GetMemberProfile (GID_t GroupId, QQ_t MemberId) const
 获取群成员用户资料 更多...
 
UserProfile GetUserProfile (QQ_t qq) const
 获取用户资料 更多...
 
void SendNudge (const NudgeTarget &target) const
 发送头像戳一戳消息 更多...
 
void NudgeFriend (QQ_t qq) const
 发送好友戳一戳消息 更多...
 
void NudgeGroup (QQ_t MemberId, GID_t GroupId) const
 发送群聊戳一戳消息 更多...
 
void NudgeStranger (QQ_t qq) const
 发送陌生人戳一戳消息 更多...
 
void RecallFriendMessage (MessageId_t id, QQ_t qq) const
 撤回好友消息 更多...
 
void RecallGroupMessage (MessageId_t id, GID_t GroupId) const
 撤回群聊消息 更多...
 
std::vector< MessageChainGetRoamingFriendMessage (QQ_t qq, std::time_t TimeStart=0, std::time_t TimeEnd=std::numeric_limits< std::time_t >::max()) const
 获取好友漫游消息 更多...
 
std::vector< GroupFileInfoGetGroupFileList (GID_t GroupId, const FilePath &dir={}, int64_t offset=0, int64_t size=0, bool withDownloadInfo=false) const
 获取群文件列表 更多...
 
GroupFileInfo GetGroupFileInfo (GID_t GroupId, const FilePath &dir, bool withDownloadInfo=false) const
 获取群文件信息 更多...
 
void GetGroupFileInfo (GID_t GroupId, GroupFileInfo &file, bool withDownloadInfo=false) const
 获取群文件信息 更多...
 
GroupFileInfo CreateGroupFileDirectory (GID_t GroupId, string directory) const
 创建群文件夹 更多...
 
void RemoveGroupFile (GID_t GroupId, const FilePath &dir) const
 删除群文件 更多...
 
void MoveGroupFile (GID_t GroupId, const FilePath &FileDir, const FilePath &MoveToDir) const
 移动群文件 更多...
 
void RenameGroupFile (GID_t GroupId, const FilePath &FileDir, string NewName) const
 重命名群文件 更多...
 
GroupFileInfo UploadGroupFile (GID_t GroupId, string UploadPath, string name, string content) const
 上传群文件 更多...
 
GroupFileInfo UploadGroupFile (GID_t GroupId, string UploadPath, string name, std::istream &file) const
 上传群文件 更多...
 
GroupFileInfo UploadGroupFile (GID_t GroupId, string UploadPath, string name, std::function< bool(size_t offset, std::ostream &sink, bool &finish)> ContentProvider) const
 上传群文件 更多...
 
FriendImage UploadFriendImage (string content) const
 上传好友图片 更多...
 
FriendImage UploadFriendImage (std::istream &file) const
 上传好友图片 更多...
 
FriendImage UploadFriendImage (std::function< bool(size_t offset, std::ostream &sink, bool &finish)> ContentProvider) const
 上传好友图片 更多...
 
GroupImage UploadGroupImage (string content) const
 上传群聊图片 更多...
 
GroupImage UploadGroupImage (std::istream &file) const
 上传群聊图片 更多...
 
GroupImage UploadGroupImage (std::function< bool(size_t offset, std::ostream &sink, bool &finish)> ContentProvider) const
 上传群聊图片 更多...
 
TempImage UploadTempImage (string content) const
 上传临时会话图片 更多...
 
TempImage UploadTempImage (std::istream &file) const
 上传临时会话图片 更多...
 
TempImage UploadTempImage (std::function< bool(size_t offset, std::ostream &sink, bool &finish)> ContentProvider) const
 上传临时会话图片 更多...
 
GroupAudio UploadGroupAudio (string content) const
 上传群聊语音 更多...
 
GroupAudio UploadGroupAudio (std::istream &file) const
 上传群聊语音 更多...
 
GroupAudio UploadGroupAudio (std::function< bool(size_t offset, std::ostream &sink, bool &finish)> ContentProvider) const
 上传群聊语音 更多...
 
void DeleteFriend (QQ_t qq) const
 删除好友 更多...
 
void Mute (GID_t GroupId, QQ_t member, std::chrono::seconds time) const
 禁言群成员 更多...
 
void Mute (const GroupMember &member, std::chrono::seconds time) const
 禁言群成员 更多...
 
void Unmute (GID_t GroupId, QQ_t member) const
 解除群成员禁言 更多...
 
void Unmute (const GroupMember &member) const
 解除群成员禁言 更多...
 
void Kick (GID_t GroupId, QQ_t member, string message, bool block=false) const
 移除群成员 更多...
 
void Kick (const GroupMember &member, string message, bool block=false) const
 移除群成员 更多...
 
void LeaveGroup (GID_t GroupId) const
 退出群聊 更多...
 
void MuteAll (GID_t GroupId) const
 禁言全体成员 更多...
 
void UnmuteAll (GID_t GroupId) const
 解除全体禁言 更多...
 
void SetEssence (GID_t GroupId, MessageId_t MessageId) const
 设置群精华消息 更多...
 
GroupConfig GetGroupConfig (GID_t GroupId) const
 获取群设置 更多...
 
void SetGroupConfig (GID_t GroupId, string name="", std::optional< bool > AllowMemberInvite=std::nullopt) const
 修改群设置 更多...
 
GroupMember GetMemberInfo (GID_t GroupId, QQ_t member) const
 获取群成员资料 更多...
 
void SetMemberInfo (GID_t GroupId, QQ_t member, string name="", string title="") const
 设置群成员资料 更多...
 
void SetGroupAdmin (GID_t GroupId, QQ_t member, bool assign=true) const
 设置群管理员 更多...
 
std::vector< GroupAnnouncementGetAnnouncementList (GID_t GroupId, int64_t offset=0, int64_t size=0) const
 获取群公告列表 更多...
 
GroupAnnouncement PublishAnnouncement (GID_t GroupId, string content, MiraiImage cover={}, bool ToNewMember=false, bool pinned=false, bool ShowEditCard=false, bool ShowPopup=false, bool RequireConfirm=false) const
 发布群公告 更多...
 
void DeleteAnnouncement (GID_t GroupId, string fid) const
 删除群公告 更多...
 
void DeleteAnnouncement (const GroupAnnouncement &announcement) const
 删除群公告 更多...
 
void RespNewFriendRequestEvent (int64_t EventId, QQ_t FromId, GID_t GroupId, NewFriendRequestOp operation, string message) const
 处理添加好友申请事件 NewFriendRequestEvent 更多...
 
void RespNewFriendRequestEvent (const NewFriendRequestEvent &event, NewFriendRequestOp operation, string message) const
 处理添加好友申请事件 NewFriendRequestEvent 更多...
 
void RespMemberJoinRequestEvent (int64_t EventId, QQ_t FromId, GID_t GroupId, MemberJoinRequestOp operation, string message) const
 处理用户申请入群事件 MemberJoinRequestEvent 更多...
 
void RespMemberJoinRequestEvent (const MemberJoinRequestEvent &event, MemberJoinRequestOp operation, string message) const
 处理用户申请入群事件 MemberJoinRequestEvent 更多...
 
void RespBotInvitedJoinGroupRequestEvent (int64_t EventId, QQ_t FromId, GID_t GroupId, BotInvitedJoinGroupRequestOp operation, string message) const
 处理Bot被邀请入群事件 BotInvitedJoinGroupRequestEvent 更多...
 
void RespBotInvitedJoinGroupRequestEvent (const BotInvitedJoinGroupRequestEvent &event, BotInvitedJoinGroupRequestOp operation, string message) const
 处理Bot被邀请入群事件 BotInvitedJoinGroupRequestEvent 更多...
 
void RegisterCommand (string name, std::vector< string > alias, string usage, string description) const
 注册指令 更多...
 
string CallAPI (const string &path, const string &method, const string &data) const
 直接向mirai-api-http发送请求 更多...
 
template<>
void On (EventCallback< ClientConnectionEstablishedEvent > callback)
 
template<>
void On (EventCallback< ClientConnectionErrorEvent > callback)
 
template<>
void On (EventCallback< ClientConnectionClosedEvent > callback)
 
template<>
void On (EventCallback< ClientParseErrorEvent > callback)
 
std::unique_ptr< IAdaptorSetAdaptor (std::unique_ptr< IAdaptor > adaptor)
 设置适配器 更多...
 
template<typename Adaptor , typename... Args, typename std::enable_if_t< std::is_base_of_v< IAdaptor, Adaptor >, int > = 0>
std::unique_ptr< IAdaptorSetAdaptor (Args &&... args)
 设置适配器 更多...
 
template<typename EventType >
void On (EventCallback< EventType > callback)
 注册事件回调函数 更多...
 
template<EventTypes Type>
void On (EventCallback< GetEventType_t< Type > > callback)
 注册事件回调函数 更多...
 
MessageId_t SendFriendMessage (QQ_t qq, const MessageChain &message, std::optional< MessageId_t > QuoteId=std::nullopt) const
 发送好友消息 更多...
 
MessageId_t SendFriendMessage (QQ_t qq, MessageChain &&message, std::optional< MessageId_t > QuoteId=std::nullopt) const
 发送好友消息 更多...
 
MessageId_t SendGroupMessage (GID_t GroupId, const MessageChain &message, std::optional< MessageId_t > QuoteId=std::nullopt) const
 发送群聊消息 更多...
 
MessageId_t SendGroupMessage (GID_t GroupId, MessageChain &&message, std::optional< MessageId_t > QuoteId=std::nullopt) const
 发送群聊消息 更多...
 
MessageId_t SendTempMessage (QQ_t MemberId, GID_t GroupId, const MessageChain &message, std::optional< MessageId_t > QuoteId=std::nullopt) const
 发送临时会话消息 更多...
 
MessageId_t SendTempMessage (QQ_t MemberId, GID_t GroupId, MessageChain &&message, std::optional< MessageId_t > QuoteId=std::nullopt) const
 发送临时会话消息 更多...
 
void ExecuteCommand (const MessageChain &command) const
 执行指令 更多...
 
void ExecuteCommand (MessageChain &&command) const
 执行指令 更多...
 

Protected 类型

using EventHandler = traits::EventCallbackVariant
 

Protected 成员函数

std::string GetSessionKey_ () const
 

Protected 属性

std::shared_mutex mtx_
 
std::string SessionKey_ {}
 
bool connected_ = false
 
size_t PoolSize_ = std::thread::hardware_concurrency()
 
std::shared_ptr< ILoggerlogger_ = std::make_shared<NullLogger>()
 
std::unique_ptr< IAdaptoradaptor_
 
std::unique_ptr< Utils::ThreadPool > pool_
 
EventCallback< ClientConnectionEstablishedEventConnectionEstablishedCallback_
 
EventCallback< ClientConnectionClosedEventConnectionClosedCallback_
 
EventCallback< ClientConnectionErrorEventConnectionErrorCallback_
 
EventCallback< ClientParseErrorEventParseErrorCallback_
 
std::unordered_map< EventTypes, EventHandlerEventHandlers_ {}
 

详细描述

提供与mirai-api-http网络交互的封装

所有与mirai的交互都需要通过该类来实现。使用时可以通过调用网络api 以及注册事件回调函数来完成消息的处理与发送。

连接设置保存在 SessionConfigs 类中,更改设置后需要重新连接mirai来使新配置生效。

所有非常量方法均有可能会抛出异常,异常的种类见 Exceptions.hpp

在文件 Client.hpp60 行定义.

成员类型定义说明

◆ EventCallback

template<typename Event >
using Mirai::MiraiClient::EventCallback = std::function<void(Event)>

在文件 Client.hpp104 行定义.

◆ EventHandler

using Mirai::MiraiClient::EventHandler = traits::EventCallbackVariant
protected

在文件 Client.hpp123 行定义.

◆ string

using Mirai::MiraiClient::string = std::string

在文件 Client.hpp253 行定义.

构造及析构函数说明

◆ MiraiClient() [1/5]

Mirai::MiraiClient::MiraiClient ( )
default

◆ MiraiClient() [2/5]

Mirai::MiraiClient::MiraiClient ( std::unique_ptr< IAdaptor adaptor)

在文件 Client.cpp45 行定义.

◆ MiraiClient() [3/5]

template<typename Adaptor , typename... Args, typename std::enable_if_t< std::is_base_of_v< IAdaptor, Adaptor >, int > = 0>
Mirai::MiraiClient::MiraiClient ( Args &&...  args)
inline

在文件 Client.hpp138 行定义.

◆ MiraiClient() [4/5]

Mirai::MiraiClient::MiraiClient ( const MiraiClient )
delete

◆ MiraiClient() [5/5]

Mirai::MiraiClient::MiraiClient ( MiraiClient &&  rhs)
deletenoexcept

◆ ~MiraiClient()

Mirai::MiraiClient::~MiraiClient ( )

在文件 Client.cpp108 行定义.

成员函数说明

◆ GetSessionKey_()

std::string Mirai::MiraiClient::GetSessionKey_ ( ) const
inlineprotected

在文件 Client.hpp126 行定义.

◆ operator=() [1/2]

MiraiClient & Mirai::MiraiClient::operator= ( const MiraiClient )
delete

◆ operator=() [2/2]

MiraiClient & Mirai::MiraiClient::operator= ( MiraiClient &&  rhs)
deletenoexcept

◆ GetSessionKey()

std::optional< std::string > Mirai::MiraiClient::GetSessionKey ( ) const
inline

获取连接mirai-api-http的session key,若尚未建立链接则返回 std::nullopt

在文件 Client.hpp150 行定义.

◆ SetAdaptor() [1/2]

std::unique_ptr< IAdaptor > Mirai::MiraiClient::SetAdaptor ( std::unique_ptr< IAdaptor adaptor)
inline

设置适配器

参数
adaptor
返回
原先的适配器,std::unique_ptr<IAdaptor>

在文件 Client.hpp165 行定义.

◆ SetAdaptor() [2/2]

template<typename Adaptor , typename... Args, typename std::enable_if_t< std::is_base_of_v< IAdaptor, Adaptor >, int > = 0>
std::unique_ptr< IAdaptor > Mirai::MiraiClient::SetAdaptor ( Args &&...  args)
inline

设置适配器

参数
adaptor
返回
原先的适配器,std::unique_ptr<IAdaptor>

在文件 Client.hpp174 行定义.

◆ SetPoolSize()

std::size_t Mirai::MiraiClient::SetPoolSize ( std::size_t  size)
inline

设置线程池大小

参数
size线程池大小
返回
std::size_t 原先的线程池大小

在文件 Client.hpp188 行定义.

◆ SetLogger()

void Mirai::MiraiClient::SetLogger ( std::shared_ptr< ILogger logger)
inline

设置日志记录类

在文件 Client.hpp197 行定义.

◆ GetLogger()

std::shared_ptr< ILogger > Mirai::MiraiClient::GetLogger ( ) const
inline

获取日志记录类

在文件 Client.hpp200 行定义.

◆ On() [1/6]

template<typename EventType >
void Mirai::MiraiClient::On ( EventCallback< EventType >  callback)
inline

注册事件回调函数

模板参数
EventType事件类型
参数
callback回调函数

在文件 Client.hpp210 行定义.

◆ On() [2/6]

template<EventTypes Type>
void Mirai::MiraiClient::On ( EventCallback< GetEventType_t< Type > >  callback)
inline

注册事件回调函数

模板参数
EventType事件类型
参数
callback回调函数

在文件 Client.hpp217 行定义.

◆ Connect()

void Mirai::MiraiClient::Connect ( )

连接mirai-api-http

若成功返回说明已成功建立连接,否则会抛出异常。 Connect() 返回前会调用 ClientConnectionEstablishedEvent 的回调函数

在文件 Client.cpp114 行定义.

◆ Disconnect()

void Mirai::MiraiClient::Disconnect ( bool  WaitForFinish = false)

断开与mirai-api-http的连接

若成功返回说明已成功断开连接,否则会抛出异常。 Disconnect() 返回前会调用 ClientConnectionClosedEvent 的回调函数,并等待所有正在运行中的事件回调函数结束。

断开与mirai-api-http的连接

若成功返回说明已成功断开连接,否则会抛出异常。 Disconnect() 返回前会调用 ClientConnectionClosedEvent 的回调函数,并等待所有正在运行中的事件回调函数结束。

参数
WaitForFinish是否等待线程池中的任务完成

在文件 Client.cpp256 行定义.

◆ isConnected()

bool Mirai::MiraiClient::isConnected ( ) const
inline

返回是否已成功连接mirai-api-http

在文件 Client.hpp246 行定义.

◆ GetCompatibleVersion()

constexpr std::string_view Mirai::MiraiClient::GetCompatibleVersion ( ) const
inlineconstexpr

返回兼容的mirai-api-http的版本号

返回
兼容的mirai-api-http插件的版本号 “x.x.x”

在文件 Client.hpp261 行定义.

◆ GetMiraiApiHttpVersion()

string Mirai::MiraiClient::GetMiraiApiHttpVersion ( ) const

获取mirai-api-http插件的版本号

返回
mirai-api-http插件的版本号 “x.x.x”

在文件 Client.cpp272 行定义.

◆ GetBotQQ()

QQ_t Mirai::MiraiClient::GetBotQQ ( ) const

获取Bot账号

返回
QQ_t

在文件 Client.cpp277 行定义.

◆ GetBotList()

std::vector< QQ_t > Mirai::MiraiClient::GetBotList ( ) const

获取mirai中可用的QQBot列表

返回
std::vector<QQ_t>

在文件 Client.cpp282 行定义.

◆ GetFriendMessage()

FriendMessageEvent Mirai::MiraiClient::GetFriendMessage ( MessageId_t  id,
QQ_t  qq 
) const

从消息id获取好友消息

参数
id消息id
qq好友QQ
返回
FriendMessageEvent

在文件 Client.cpp288 行定义.

◆ GetGroupMessage()

GroupMessageEvent Mirai::MiraiClient::GetGroupMessage ( MessageId_t  id,
GID_t  GroupId 
) const

从消息id获取群聊消息

参数
id消息id
GroupId群聊id
返回
GroupMessageEvent

在文件 Client.cpp299 行定义.

◆ GetTempMessage()

TempMessageEvent Mirai::MiraiClient::GetTempMessage ( MessageId_t  id,
GID_t  GroupId 
) const

从消息id获取临时消息

参数
id消息id
GroupId群聊id
返回
TempMessageEvent

在文件 Client.cpp310 行定义.

◆ GetStrangerMessage()

StrangerMessageEvent Mirai::MiraiClient::GetStrangerMessage ( MessageId_t  id,
QQ_t  qq 
) const

从消息id获取陌生人消息

参数
id消息id
qq陌生人QQ
返回
StrangerMessageEvent

在文件 Client.cpp321 行定义.

◆ GetFriendList()

std::vector< User > Mirai::MiraiClient::GetFriendList ( ) const

获取好友列表

返回
std::vector<User>

在文件 Client.cpp333 行定义.

◆ GetGroupList()

std::vector< Group > Mirai::MiraiClient::GetGroupList ( ) const

获取群聊列表

返回
std::vector<Group>

在文件 Client.cpp338 行定义.

◆ GetMemberList()

std::vector< GroupMember > Mirai::MiraiClient::GetMemberList ( GID_t  GroupId) const

获取群成员列表

参数
GroupId群聊id
返回
std::vector<GroupMember>

在文件 Client.cpp343 行定义.

◆ GetLatestMemberList()

std::vector< GroupMember > Mirai::MiraiClient::GetLatestMemberList ( GID_t  GroupId) const

获取最新群成员列表

会强制刷新所有群成员的资料

参数
GroupId群聊id
返回
std::vector<GroupMember>

在文件 Client.cpp348 行定义.

◆ GetBotProfile()

UserProfile Mirai::MiraiClient::GetBotProfile ( ) const

获取Bot用户资料

返回
UserProfile

在文件 Client.cpp354 行定义.

◆ GetFriendProfile()

UserProfile Mirai::MiraiClient::GetFriendProfile ( QQ_t  qq) const

获取好友用户资料

参数
qq好友QQ
返回
UserProfile

在文件 Client.cpp359 行定义.

◆ GetMemberProfile()

UserProfile Mirai::MiraiClient::GetMemberProfile ( GID_t  GroupId,
QQ_t  MemberId 
) const

获取群成员用户资料

参数
GroupId群聊id
MemberId群成员QQ
返回
UserProfile

在文件 Client.cpp364 行定义.

◆ GetUserProfile()

UserProfile Mirai::MiraiClient::GetUserProfile ( QQ_t  qq) const

获取用户资料

参数
qq用户QQ
返回
UserProfile

在文件 Client.cpp369 行定义.

◆ SendFriendMessage() [1/2]

MessageId_t Mirai::MiraiClient::SendFriendMessage ( QQ_t  qq,
const MessageChain message,
std::optional< MessageId_t QuoteId = std::nullopt 
) const

发送好友消息

参数
qq好友QQ
message消息内容
QuoteId引用回复内容的消息id
返回
发送的消息id

在文件 Client.cpp374 行定义.

◆ SendFriendMessage() [2/2]

MessageId_t Mirai::MiraiClient::SendFriendMessage ( QQ_t  qq,
MessageChain &&  message,
std::optional< MessageId_t QuoteId = std::nullopt 
) const

发送好友消息

参数
qq好友QQ
message消息内容
QuoteId引用回复内容的消息id
返回
发送的消息id

在文件 Client.cpp380 行定义.

◆ SendGroupMessage() [1/2]

MessageId_t Mirai::MiraiClient::SendGroupMessage ( GID_t  GroupId,
const MessageChain message,
std::optional< MessageId_t QuoteId = std::nullopt 
) const

发送群聊消息

参数
GroupId群聊id
message消息内容
QuoteId引用回复内容的消息id
返回
发送的消息id

在文件 Client.cpp386 行定义.

◆ SendGroupMessage() [2/2]

MessageId_t Mirai::MiraiClient::SendGroupMessage ( GID_t  GroupId,
MessageChain &&  message,
std::optional< MessageId_t QuoteId = std::nullopt 
) const

发送群聊消息

参数
GroupId群聊id
message消息内容
QuoteId引用回复内容的消息id
返回
发送的消息id

在文件 Client.cpp392 行定义.

◆ SendTempMessage() [1/2]

MessageId_t Mirai::MiraiClient::SendTempMessage ( QQ_t  MemberId,
GID_t  GroupId,
const MessageChain message,
std::optional< MessageId_t QuoteId = std::nullopt 
) const

发送临时会话消息

参数
MemberId群成员id
GroupId群聊id
message消息内容
QuoteId引用回复内容的消息id
返回
发送的消息id

在文件 Client.cpp398 行定义.

◆ SendTempMessage() [2/2]

MessageId_t Mirai::MiraiClient::SendTempMessage ( QQ_t  MemberId,
GID_t  GroupId,
MessageChain &&  message,
std::optional< MessageId_t QuoteId = std::nullopt 
) const

发送临时会话消息

参数
MemberId群成员id
GroupId群聊id
message消息内容
QuoteId引用回复内容的消息id
返回
发送的消息id

在文件 Client.cpp404 行定义.

◆ SendNudge()

void Mirai::MiraiClient::SendNudge ( const NudgeTarget target) const

发送头像戳一戳消息

参数
target戳一戳目标

在文件 Client.cpp410 行定义.

◆ NudgeFriend()

void Mirai::MiraiClient::NudgeFriend ( QQ_t  qq) const

发送好友戳一戳消息

参数
qq好友QQ

在文件 Client.cpp419 行定义.

◆ NudgeGroup()

void Mirai::MiraiClient::NudgeGroup ( QQ_t  MemberId,
GID_t  GroupId 
) const

发送群聊戳一戳消息

参数
MemberId戳一戳对象QQ
GroupId群聊id

在文件 Client.cpp424 行定义.

◆ NudgeStranger()

void Mirai::MiraiClient::NudgeStranger ( QQ_t  qq) const

发送陌生人戳一戳消息

参数
qq陌生人QQ

在文件 Client.cpp429 行定义.

◆ RecallFriendMessage()

void Mirai::MiraiClient::RecallFriendMessage ( MessageId_t  id,
QQ_t  qq 
) const

撤回好友消息

参数
id消息id
qq好友QQ

在文件 Client.cpp434 行定义.

◆ RecallGroupMessage()

void Mirai::MiraiClient::RecallGroupMessage ( MessageId_t  id,
GID_t  GroupId 
) const

撤回群聊消息

参数
id消息id
GroupId群聊id

在文件 Client.cpp439 行定义.

◆ GetRoamingFriendMessage()

std::vector< MessageChain > Mirai::MiraiClient::GetRoamingFriendMessage ( QQ_t  qq,
std::time_t  TimeStart = 0,
std::time_t  TimeEnd = std::numeric_limits<std::time_t>::max() 
) const

获取好友漫游消息

参数
qq好友QQ
TimeStart消息起始时间
TimeEnd消息结束时间
返回
std::vector<MessageChain>

在文件 Client.cpp444 行定义.

◆ GetGroupFileList()

std::vector< GroupFileInfo > Mirai::MiraiClient::GetGroupFileList ( GID_t  GroupId,
const FilePath dir = {},
int64_t  offset = 0,
int64_t  size = 0,
bool  withDownloadInfo = false 
) const

获取群文件列表

参数
GroupId群聊id
dir父文件夹路径,默认为根目录
offset分页偏移
size分页大小,默认为不分页(即返回所有结果)
withDownloadInfo是否附带下载地址
返回
std::vector<GroupFileInfo>

在文件 Client.cpp451 行定义.

◆ GetGroupFileInfo() [1/2]

GroupFileInfo Mirai::MiraiClient::GetGroupFileInfo ( GID_t  GroupId,
const FilePath dir,
bool  withDownloadInfo = false 
) const

获取群文件信息

参数
GroupId群聊id
dir群文件路径
withDownloadInfo是否附带下载地址
返回
GroupFileInfo

在文件 Client.cpp458 行定义.

◆ GetGroupFileInfo() [2/2]

void Mirai::MiraiClient::GetGroupFileInfo ( GID_t  GroupId,
GroupFileInfo file,
bool  withDownloadInfo = false 
) const

获取群文件信息

参数
GroupId群聊id
file群文件信息,会从中读取路径并把剩余信息填入
withDownloadInfo是否附带下载地址

在文件 Client.cpp463 行定义.

◆ CreateGroupFileDirectory()

GroupFileInfo Mirai::MiraiClient::CreateGroupFileDirectory ( GID_t  GroupId,
string  directory 
) const

创建群文件夹

目前QQ仅支持在根目录下创建文件夹,不许文件夹嵌套

参数
GroupId群聊id
directory文件夹命名
返回
新建的文件夹信息

在文件 Client.cpp468 行定义.

◆ RemoveGroupFile()

void Mirai::MiraiClient::RemoveGroupFile ( GID_t  GroupId,
const FilePath dir 
) const

删除群文件

参数
GroupId群聊id
dir群文件路径

在文件 Client.cpp473 行定义.

◆ MoveGroupFile()

void Mirai::MiraiClient::MoveGroupFile ( GID_t  GroupId,
const FilePath FileDir,
const FilePath MoveToDir 
) const

移动群文件

参数
GroupId群聊id
FileDir群文件路径
MoveToDir目标文件夹路径

在文件 Client.cpp478 行定义.

◆ RenameGroupFile()

void Mirai::MiraiClient::RenameGroupFile ( GID_t  GroupId,
const FilePath FileDir,
string  NewName 
) const

重命名群文件

参数
GroupId群聊id
FileDir群文件路径
NewName新文件名

在文件 Client.cpp484 行定义.

◆ UploadGroupFile() [1/3]

GroupFileInfo Mirai::MiraiClient::UploadGroupFile ( GID_t  GroupId,
string  UploadPath,
string  name,
string  content 
) const

上传群文件

参数
GroupId群聊id
UploadPath上传路径
name文件名称
content文件内容
返回
上传的群文件信息

在文件 Client.cpp490 行定义.

◆ UploadGroupFile() [2/3]

GroupFileInfo Mirai::MiraiClient::UploadGroupFile ( GID_t  GroupId,
string  UploadPath,
string  name,
std::istream &  file 
) const

上传群文件

参数
GroupId群聊id
UploadPath上传路径
name文件名称
file文件流
返回
上传的群文件信息

在文件 Client.cpp496 行定义.

◆ UploadGroupFile() [3/3]

GroupFileInfo Mirai::MiraiClient::UploadGroupFile ( GID_t  GroupId,
string  UploadPath,
string  name,
std::function< bool(size_t offset, std::ostream &sink, bool &finish)>  ContentProvider 
) const

上传群文件

Experimental: chunked data transfer is only supported in HTTP/1.1

参数
GroupId群聊id
UploadPath上传路径
name文件名称
ContentProvider文件内容,返回false表示取消请求
返回
上传的群文件信息

在文件 Client.cpp508 行定义.

◆ UploadFriendImage() [1/3]

FriendImage Mirai::MiraiClient::UploadFriendImage ( string  content) const

上传好友图片

参数
content图片文件内容(原始二进制,不是base64编码)
返回
FriendImage

在文件 Client.cpp516 行定义.

◆ UploadFriendImage() [2/3]

FriendImage Mirai::MiraiClient::UploadFriendImage ( std::istream &  file) const

上传好友图片

参数
file图片文件流
返回
FriendImage

在文件 Client.cpp521 行定义.

◆ UploadFriendImage() [3/3]

FriendImage Mirai::MiraiClient::UploadFriendImage ( std::function< bool(size_t offset, std::ostream &sink, bool &finish)>  ContentProvider) const

上传好友图片

Experimental: chunked data transfer is only supported in HTTP/1.1

参数
ContentProvider图片内容,返回false表示取消请求
返回
FriendImage

在文件 Client.cpp531 行定义.

◆ UploadGroupImage() [1/3]

GroupImage Mirai::MiraiClient::UploadGroupImage ( string  content) const

上传群聊图片

参数
content图片文件内容(原始二进制,不是base64编码)
返回
GroupImage

在文件 Client.cpp538 行定义.

◆ UploadGroupImage() [2/3]

GroupImage Mirai::MiraiClient::UploadGroupImage ( std::istream &  file) const

上传群聊图片

参数
file图片文件流
返回
GroupImage

在文件 Client.cpp543 行定义.

◆ UploadGroupImage() [3/3]

GroupImage Mirai::MiraiClient::UploadGroupImage ( std::function< bool(size_t offset, std::ostream &sink, bool &finish)>  ContentProvider) const

上传群聊图片

Experimental: chunked data transfer is only supported in HTTP/1.1

参数
ContentProvider图片内容,返回false表示取消请求
返回
GroupImage

在文件 Client.cpp553 行定义.

◆ UploadTempImage() [1/3]

TempImage Mirai::MiraiClient::UploadTempImage ( string  content) const

上传临时会话图片

参数
content图片文件内容(原始二进制,不是base64编码)
返回
TempImage

在文件 Client.cpp560 行定义.

◆ UploadTempImage() [2/3]

TempImage Mirai::MiraiClient::UploadTempImage ( std::istream &  file) const

上传临时会话图片

参数
file图片文件流
返回
TempImage

在文件 Client.cpp565 行定义.

◆ UploadTempImage() [3/3]

TempImage Mirai::MiraiClient::UploadTempImage ( std::function< bool(size_t offset, std::ostream &sink, bool &finish)>  ContentProvider) const

上传临时会话图片

Experimental: chunked data transfer is only supported in HTTP/1.1

参数
ContentProvider图片内容,返回false表示取消请求
返回
TempImage

在文件 Client.cpp576 行定义.

◆ UploadGroupAudio() [1/3]

GroupAudio Mirai::MiraiClient::UploadGroupAudio ( string  content) const

上传群聊语音

参数
content语音文件内容(原始二进制,不是base64编码)
返回
GroupAudio

在文件 Client.cpp582 行定义.

◆ UploadGroupAudio() [2/3]

GroupAudio Mirai::MiraiClient::UploadGroupAudio ( std::istream &  file) const

上传群聊语音

参数
file语音文件流
返回
GroupAudio

在文件 Client.cpp587 行定义.

◆ UploadGroupAudio() [3/3]

GroupAudio Mirai::MiraiClient::UploadGroupAudio ( std::function< bool(size_t offset, std::ostream &sink, bool &finish)>  ContentProvider) const

上传群聊语音

Experimental: chunked data transfer is only supported in HTTP/1.1

参数
ContentProvider语音内容,返回false表示取消请求
返回
GroupAudio

在文件 Client.cpp597 行定义.

◆ DeleteFriend()

void Mirai::MiraiClient::DeleteFriend ( QQ_t  qq) const

删除好友

参数
qq好友QQ

在文件 Client.cpp604 行定义.

◆ Mute() [1/2]

void Mirai::MiraiClient::Mute ( GID_t  GroupId,
QQ_t  member,
std::chrono::seconds  time 
) const

禁言群成员

参数
GroupId群聊id
member成员QQ
time禁言时间

在文件 Client.cpp609 行定义.

◆ Mute() [2/2]

void Mirai::MiraiClient::Mute ( const GroupMember member,
std::chrono::seconds  time 
) const

禁言群成员

参数
member群成员
time禁言时间

在文件 Client.cpp614 行定义.

◆ Unmute() [1/2]

void Mirai::MiraiClient::Unmute ( GID_t  GroupId,
QQ_t  member 
) const

解除群成员禁言

参数
GroupId群聊id
member成员QQ

在文件 Client.cpp619 行定义.

◆ Unmute() [2/2]

void Mirai::MiraiClient::Unmute ( const GroupMember member) const

解除群成员禁言

参数
member群成员

在文件 Client.cpp624 行定义.

◆ Kick() [1/2]

void Mirai::MiraiClient::Kick ( GID_t  GroupId,
QQ_t  member,
string  message,
bool  block = false 
) const

移除群成员

参数
GroupId群聊id
member成员QQ
message附带信息
block是否移除后拉黑

在文件 Client.cpp629 行定义.

◆ Kick() [2/2]

void Mirai::MiraiClient::Kick ( const GroupMember member,
string  message,
bool  block = false 
) const

移除群成员

参数
member群成员
message附带信息
block是否移除后拉黑

在文件 Client.cpp634 行定义.

◆ LeaveGroup()

void Mirai::MiraiClient::LeaveGroup ( GID_t  GroupId) const

退出群聊

参数
GroupId群聊id

在文件 Client.cpp639 行定义.

◆ MuteAll()

void Mirai::MiraiClient::MuteAll ( GID_t  GroupId) const

禁言全体成员

参数
GroupId群聊id

在文件 Client.cpp644 行定义.

◆ UnmuteAll()

void Mirai::MiraiClient::UnmuteAll ( GID_t  GroupId) const

解除全体禁言

参数
GroupId群聊id

在文件 Client.cpp649 行定义.

◆ SetEssence()

void Mirai::MiraiClient::SetEssence ( GID_t  GroupId,
MessageId_t  MessageId 
) const

设置群精华消息

参数
GroupId群聊id
MessageId消息id

在文件 Client.cpp654 行定义.

◆ GetGroupConfig()

GroupConfig Mirai::MiraiClient::GetGroupConfig ( GID_t  GroupId) const

获取群设置

参数
GroupId群聊id
返回
GroupConfig

在文件 Client.cpp660 行定义.

◆ SetGroupConfig()

void Mirai::MiraiClient::SetGroupConfig ( GID_t  GroupId,
string  name = "",
std::optional< bool >  AllowMemberInvite = std::nullopt 
) const

修改群设置

目前仅能修改群名称与是否允许邀请入群

参数
GroupId群聊id
name群聊名称,默认保持原设置
AllowMemberInvite是否允许邀请入群,默认保持原设置

在文件 Client.cpp665 行定义.

◆ GetMemberInfo()

GroupMember Mirai::MiraiClient::GetMemberInfo ( GID_t  GroupId,
QQ_t  member 
) const

获取群成员资料

参数
GroupId群聊id
member成员QQ
返回
GroupMember

在文件 Client.cpp670 行定义.

◆ SetMemberInfo()

void Mirai::MiraiClient::SetMemberInfo ( GID_t  GroupId,
QQ_t  member,
string  name = "",
string  title = "" 
) const

设置群成员资料

参数
GroupId群聊id
member成员QQ
name群名片
title群头衔

在文件 Client.cpp675 行定义.

◆ SetGroupAdmin()

void Mirai::MiraiClient::SetGroupAdmin ( GID_t  GroupId,
QQ_t  member,
bool  assign = true 
) const

设置群管理员

参数
GroupId群聊id
member成员QQ
assign设置管理员/撤销管理员

在文件 Client.cpp680 行定义.

◆ GetAnnouncementList()

std::vector< GroupAnnouncement > Mirai::MiraiClient::GetAnnouncementList ( GID_t  GroupId,
int64_t  offset = 0,
int64_t  size = 0 
) const

获取群公告列表

参数
GroupId群聊id
offset分页偏移
size分页大小,默认为不分页(即返回所有结果)
返回
std::vector<GroupAnnouncement>

在文件 Client.cpp686 行定义.

◆ PublishAnnouncement()

GroupAnnouncement Mirai::MiraiClient::PublishAnnouncement ( GID_t  GroupId,
string  content,
MiraiImage  cover = {},
bool  ToNewMember = false,
bool  pinned = false,
bool  ShowEditCard = false,
bool  ShowPopup = false,
bool  RequireConfirm = false 
) const

发布群公告

参数
GroupId群聊id
content公告内容
cover公告图片,传空值为不附带图片
ToNewMember是否发给新成员
pinned是否置顶
ShowEditCard是否引导群成员修改群名片
ShowPopup是否弹出公告
RequireConfirm是否需要群员确认
返回
发布的群公告

在文件 Client.cpp691 行定义.

◆ DeleteAnnouncement() [1/2]

void Mirai::MiraiClient::DeleteAnnouncement ( GID_t  GroupId,
string  fid 
) const

删除群公告

参数
GroupId群聊id
fid群公告id

在文件 Client.cpp699 行定义.

◆ DeleteAnnouncement() [2/2]

void Mirai::MiraiClient::DeleteAnnouncement ( const GroupAnnouncement announcement) const

删除群公告

参数
announcement群公告对象

在文件 Client.cpp704 行定义.

◆ RespNewFriendRequestEvent() [1/2]

void Mirai::MiraiClient::RespNewFriendRequestEvent ( int64_t  EventId,
QQ_t  FromId,
GID_t  GroupId,
NewFriendRequestOp  operation,
string  message 
) const

处理添加好友申请事件 NewFriendRequestEvent

参数
EventId事件id
FromId申请人qq
GroupId申请人来自的群聊id,可能为 0_gid
operation处理操作
message回复消息

在文件 Client.cpp710 行定义.

◆ RespNewFriendRequestEvent() [2/2]

void Mirai::MiraiClient::RespNewFriendRequestEvent ( const NewFriendRequestEvent event,
NewFriendRequestOp  operation,
string  message 
) const

处理添加好友申请事件 NewFriendRequestEvent

参数
event好友申请事件
operation处理操作
message回复消息

在文件 Client.cpp717 行定义.

◆ RespMemberJoinRequestEvent() [1/2]

void Mirai::MiraiClient::RespMemberJoinRequestEvent ( int64_t  EventId,
QQ_t  FromId,
GID_t  GroupId,
MemberJoinRequestOp  operation,
string  message 
) const

处理用户申请入群事件 MemberJoinRequestEvent

参数
EventId事件id
FromId申请人qq
GroupId群聊id
operation处理操作
message回复消息

在文件 Client.cpp724 行定义.

◆ RespMemberJoinRequestEvent() [2/2]

void Mirai::MiraiClient::RespMemberJoinRequestEvent ( const MemberJoinRequestEvent event,
MemberJoinRequestOp  operation,
string  message 
) const

处理用户申请入群事件 MemberJoinRequestEvent

参数
event用户申请入群事件
operation处理操作
message回复消息

在文件 Client.cpp731 行定义.

◆ RespBotInvitedJoinGroupRequestEvent() [1/2]

void Mirai::MiraiClient::RespBotInvitedJoinGroupRequestEvent ( int64_t  EventId,
QQ_t  FromId,
GID_t  GroupId,
BotInvitedJoinGroupRequestOp  operation,
string  message 
) const

处理Bot被邀请入群事件 BotInvitedJoinGroupRequestEvent

参数
EventId事件id
FromId申请人qq
GroupId群聊id
operation处理操作
message回复消息

在文件 Client.cpp738 行定义.

◆ RespBotInvitedJoinGroupRequestEvent() [2/2]

void Mirai::MiraiClient::RespBotInvitedJoinGroupRequestEvent ( const BotInvitedJoinGroupRequestEvent event,
BotInvitedJoinGroupRequestOp  operation,
string  message 
) const

处理Bot被邀请入群事件 BotInvitedJoinGroupRequestEvent

参数
eventBot被邀请入群事件
operation处理操作
message回复消息

在文件 Client.cpp746 行定义.

◆ RegisterCommand()

void Mirai::MiraiClient::RegisterCommand ( string  name,
std::vector< string alias,
string  usage,
string  description 
) const

注册指令

参数
name指令名称
alias指令别名
usage使用说明
description指令描述

在文件 Client.cpp755 行定义.

◆ ExecuteCommand() [1/2]

void Mirai::MiraiClient::ExecuteCommand ( const MessageChain command) const

执行指令

参数
command指令内容

在文件 Client.cpp761 行定义.

◆ ExecuteCommand() [2/2]

void Mirai::MiraiClient::ExecuteCommand ( MessageChain &&  command) const

执行指令

参数
command指令内容

在文件 Client.cpp765 行定义.

◆ CallAPI()

string Mirai::MiraiClient::CallAPI ( const string path,
const string method,
const string data 
) const

直接向mirai-api-http发送请求

备用方法,可用于hack新功能或提供临时替代,正常情况下不推荐使用

参数
path路径
method内容格式,可能是 "POST" "GET" 或subcommand等,取决于具体的Adaptor
data请求数据
返回
std::string

在文件 Client.cpp771 行定义.

◆ On() [3/6]

template<>
void Mirai::MiraiClient::On ( EventCallback< ClientConnectionEstablishedEvent callback)
inline

在文件 Client.hpp961 行定义.

◆ On() [4/6]

template<>
void Mirai::MiraiClient::On ( EventCallback< ClientConnectionErrorEvent callback)
inline

在文件 Client.hpp966 行定义.

◆ On() [5/6]

template<>
void Mirai::MiraiClient::On ( EventCallback< ClientConnectionClosedEvent callback)
inline

在文件 Client.hpp971 行定义.

◆ On() [6/6]

template<>
void Mirai::MiraiClient::On ( EventCallback< ClientParseErrorEvent callback)
inline

在文件 Client.hpp976 行定义.

类成员变量说明

◆ mtx_

std::shared_mutex Mirai::MiraiClient::mtx_
mutableprotected

在文件 Client.hpp108 行定义.

◆ SessionKey_

std::string Mirai::MiraiClient::SessionKey_ {}
protected

在文件 Client.hpp110 行定义.

◆ connected_

bool Mirai::MiraiClient::connected_ = false
protected

在文件 Client.hpp111 行定义.

◆ PoolSize_

size_t Mirai::MiraiClient::PoolSize_ = std::thread::hardware_concurrency()
protected

在文件 Client.hpp112 行定义.

◆ logger_

std::shared_ptr<ILogger> Mirai::MiraiClient::logger_ = std::make_shared<NullLogger>()
protected

在文件 Client.hpp114 行定义.

◆ adaptor_

std::unique_ptr<IAdaptor> Mirai::MiraiClient::adaptor_
protected

在文件 Client.hpp115 行定义.

◆ pool_

std::unique_ptr<Utils::ThreadPool> Mirai::MiraiClient::pool_
protected

在文件 Client.hpp116 行定义.

◆ ConnectionEstablishedCallback_

EventCallback<ClientConnectionEstablishedEvent> Mirai::MiraiClient::ConnectionEstablishedCallback_
protected

在文件 Client.hpp118 行定义.

◆ ConnectionClosedCallback_

EventCallback<ClientConnectionClosedEvent> Mirai::MiraiClient::ConnectionClosedCallback_
protected

在文件 Client.hpp119 行定义.

◆ ConnectionErrorCallback_

EventCallback<ClientConnectionErrorEvent> Mirai::MiraiClient::ConnectionErrorCallback_
protected

在文件 Client.hpp120 行定义.

◆ ParseErrorCallback_

EventCallback<ClientParseErrorEvent> Mirai::MiraiClient::ParseErrorCallback_
protected

在文件 Client.hpp121 行定义.

◆ EventHandlers_

std::unordered_map<EventTypes, EventHandler> Mirai::MiraiClient::EventHandlers_ {}
protected

在文件 Client.hpp124 行定义.


该类的文档由以下文件生成: