public class IcqHttpApi
extends java.lang.Object
限定符和类型 | 字段和说明 |
---|---|
protected BotAccount |
account |
protected PicqBotX |
bot |
构造器和说明 |
---|
IcqHttpApi(PicqBotX bot,
BotAccount account,
java.lang.String host,
int port)
构造一个 HttpApi 发送对象
|
限定符和类型 | 方法和说明 |
---|---|
RawReturnData |
approveGroupRequest(java.lang.String flag,
java.lang.String type)
同意加群请求/邀请
|
boolean |
canSendImage()
检查是否可以发送图片
|
boolean |
canSendRecord()
检查是否可以发送语音
|
void |
cleanDataDir()
清空所有数据文件夹
|
RawReturnData |
cleanDataDir(java.lang.String dataDir)
清空数据文件夹
|
RawReturnData |
cleanPluginLog()
清空插件日志
|
RawReturnData |
deleteMsg(long messageId)
撤回消息
|
ReturnData<RCookies> |
getCookies()
抢走酷Q的曲奇饼w
|
ReturnData<RCookies> |
getCookies(java.lang.String domain)
抢走酷Q的曲奇饼w
|
ReturnData<RCredentials> |
getCredentials()
抢走酷Q的曲奇饼并获取CSRF Token
|
ReturnData<RCsrfToken> |
getCsrfToken()
获取CSRF Token
|
ReturnListData<RFriend> |
getFriendList()
获取好友列表
|
ReturnListData<RFriendList> |
getFriendListUnstable()
获取好友列表
|
ReturnData<RGroupInfo> |
getGroupInfo(long groupId)
获取群信息
|
ReturnData<RGroupInfo> |
getGroupInfo(long groupId,
boolean noCache)
获取群信息
|
ReturnData<RGroupDetail> |
getGroupInfoUnstable(long groupId)
获取群信息
|
ReturnListData<RGroup> |
getGroupList()
获取群列表
|
ReturnData<RGroupMemberInfo> |
getGroupMemberInfo(long groupId,
long qq)
获取群成员信息, 默认不使用缓存
|
ReturnData<RGroupMemberInfo> |
getGroupMemberInfo(long groupId,
long qq,
boolean noCache)
获取群成员信息
|
ReturnListData<RGroupMemberInfo> |
getGroupMemberList(long groupId)
获取群成员列表
|
ReturnListData<RGroupNotice> |
getGroupNotices(long groupId)
获取一个群的所有公告
|
ReturnData<RFile> |
getImage(java.lang.String file)
获取图片文件完整路径
|
java.io.File |
getImageFile(java.lang.String file)
获取图片文件 (封装)
|
ReturnData<RLoginInfo> |
getLoginInfo()
获取登录号信息
|
ReturnData<RFile> |
getRecord(java.lang.String file,
java.lang.String format,
boolean fullPath)
获取语音文件
|
ReturnData<RStatus> |
getStatus()
获取插件运行状态
|
ReturnData<RStrangerInfo> |
getStrangerInfo(long qq)
获取陌生人信息, 默认不使用缓存
|
ReturnData<RStrangerInfo> |
getStrangerInfo(long qq,
boolean noCache)
获取陌生人信息
|
ReturnData<RVersionInfo> |
getVersionInfo()
获取酷 Q 及 HTTP API 插件的版本信息
|
ReturnData<RVipInfo> |
getVIPInfo(long qq)
获取用户VIP信息
|
java.lang.String |
makeUrl(HttpApiNode api)
生成URL
|
RawReturnData |
rejectGroupRequest(java.lang.String flag,
java.lang.String type,
java.lang.String reason)
拒绝加群请求/邀请
|
<T extends ReturnPojoBase> |
send(java.lang.Class<T> type,
HttpApiNode api,
java.lang.Object... params)
发送请求 封装
|
com.google.gson.JsonElement |
send(HttpApiNode api,
java.util.Map<java.lang.String,java.lang.Object> params)
发送请求
|
com.google.gson.JsonElement |
send(HttpApiNode api,
java.lang.Object... params)
发送请求 封装
|
<T extends ReturnPojoBase> |
send(java.lang.reflect.Type type,
HttpApiNode api,
java.util.Map<java.lang.String,java.lang.Object> params)
发送请求 封装
|
ReturnData<RMessageReturnData> |
sendDiscussMsg(long groupId,
java.lang.String message)
发送讨论组消息
|
ReturnData<RMessageReturnData> |
sendDiscussMsg(long groupId,
java.lang.String message,
boolean autoEscape)
发送讨论组消息
|
ReturnData<RMessageReturnData> |
sendGroupMsg(long groupId,
java.lang.String message)
发送群聊消息
|
ReturnData<RMessageReturnData> |
sendGroupMsg(long groupId,
java.lang.String message,
boolean autoEscape)
发送群聊消息
|
RawReturnData |
sendGroupNotice(long groupId,
java.lang.String title,
java.lang.String content)
发布群公告
|
RawReturnData |
sendLike(long qq,
long times)
发送好友赞
|
ReturnData<RMessageReturnData> |
sendPrivateMsg(long qq,
java.lang.String message)
发送私聊消息
|
ReturnData<RMessageReturnData> |
sendPrivateMsg(long qq,
java.lang.String message,
boolean autoEscape)
发送私聊消息
|
<T extends ReturnPojoBase> |
sendReturnList(java.lang.Class<T> type,
HttpApiNode api,
java.lang.Object... params)
发送请求 封装
|
<T extends ReturnPojoBase> |
sendReturnList(java.lang.reflect.Type type,
HttpApiNode api,
java.util.Map<java.lang.String,java.lang.Object> params)
发送请求 封装
|
RawReturnData |
sendReturnRaw(HttpApiNode api,
java.util.Map<java.lang.String,java.lang.Object> params)
发送请求 封装
|
RawReturnData |
sendReturnRaw(HttpApiNode api,
java.lang.Object... params)
发送请求 封装
|
RawReturnData |
setDiscussLeave(long discussId)
退出讨论组
|
RawReturnData |
setFriendAndRequest(java.lang.String flag,
boolean approve)
处理加好友请求
|
RawReturnData |
setFriendAndRequest(java.lang.String flag,
boolean approve,
java.lang.String remark)
处理加好友请求
|
RawReturnData |
setGroupAdmin(long groupId,
long qq,
boolean enable)
群组设置管理员
|
RawReturnData |
setGroupAndRequest(java.lang.String flag,
java.lang.String type,
boolean approve,
java.lang.String reason)
处理加群请求/邀请
|
RawReturnData |
setGroupAnonymous(long groupId,
boolean enable)
群组设置匿名
|
RawReturnData |
setGroupAnonymousBan(EventGroupMessage.Anonymous anonymous,
long groupId,
long duration)
群组匿名用户禁言
|
RawReturnData |
setGroupAnonymousBan(java.lang.String flag,
long groupId,
long duration)
群组匿名用户禁言
|
RawReturnData |
setGroupBan(long groupId,
long qq,
long duration)
群组单人禁言
|
RawReturnData |
setGroupCard(long groupId,
long qq,
java.lang.String card)
设置群名片 (群备注)
|
RawReturnData |
setGroupKick(long groupId,
long qq)
群组踢人
|
RawReturnData |
setGroupKick(long groupId,
long qq,
boolean rejectFurtherRequest)
群组踢人
|
RawReturnData |
setGroupLeave(long groupId)
退出群组
|
RawReturnData |
setGroupLeave(long groupId,
boolean dismiss)
退出群组
|
RawReturnData |
setGroupSpecialTitle(long groupId,
long qq,
java.lang.String specialTitle)
设置群组专属头衔
|
RawReturnData |
setGroupSpecialTitle(long groupId,
long qq,
java.lang.String specialTitle,
long duration)
设置群组专属头衔
|
RawReturnData |
setGroupWholeBan(long groupId,
boolean enable)
群组全员禁言
|
RawReturnData |
setRestartPlugin()
重启 HTTP API 插件
|
RawReturnData |
setRestartPlugin(int delay)
重启 HTTP API 插件
|
RawReturnData |
setRestartUnsafe()
重启酷Q, 并以当前登录号自动登陆 (需要勾选快速登录)
|
RawReturnData |
setRestartUnsafe(boolean cleanLog,
boolean cleanCache,
boolean cleanEvent)
重启酷Q, 并以当前登录号自动登陆 (需要勾选快速登录)
|
protected final PicqBotX bot
protected final BotAccount account
public IcqHttpApi(PicqBotX bot, BotAccount account, java.lang.String host, int port)
bot
- 机器人account
- 账号host
- 主机地址port
- 端口public java.lang.String makeUrl(HttpApiNode api)
api
- API节点public com.google.gson.JsonElement send(HttpApiNode api, java.util.Map<java.lang.String,java.lang.Object> params)
api
- API节点params
- 参数public com.google.gson.JsonElement send(HttpApiNode api, java.lang.Object... params)
api
- API节点params
- 参数public RawReturnData sendReturnRaw(HttpApiNode api, java.util.Map<java.lang.String,java.lang.Object> params)
api
- API节点params
- 参数public RawReturnData sendReturnRaw(HttpApiNode api, java.lang.Object... params)
api
- API节点params
- 参数public <T extends ReturnPojoBase> ReturnData<T> send(java.lang.reflect.Type type, HttpApiNode api, java.util.Map<java.lang.String,java.lang.Object> params)
T
- 返回值的类型type
- 返回数据类型api
- API节点params
- 参数public <T extends ReturnPojoBase> ReturnData<T> send(java.lang.Class<T> type, HttpApiNode api, java.lang.Object... params)
T
- 返回值的类型type
- 返回数据类型api
- API节点params
- 参数public <T extends ReturnPojoBase> ReturnListData<T> sendReturnList(java.lang.reflect.Type type, HttpApiNode api, java.util.Map<java.lang.String,java.lang.Object> params)
T
- 返回值的类型type
- 返回数据类型api
- API节点params
- 参数public <T extends ReturnPojoBase> ReturnListData<T> sendReturnList(java.lang.Class<T> type, HttpApiNode api, java.lang.Object... params)
T
- 返回值的类型type
- 返回数据类型api
- API节点params
- 参数public ReturnData<RMessageReturnData> sendPrivateMsg(long qq, java.lang.String message)
qq
- QQ号message
- 消息public ReturnData<RMessageReturnData> sendPrivateMsg(long qq, java.lang.String message, boolean autoEscape)
qq
- QQ号message
- 消息autoEscape
- 是否纯文本发送public ReturnData<RMessageReturnData> sendGroupMsg(long groupId, java.lang.String message)
groupId
- 群IDmessage
- 消息public ReturnData<RMessageReturnData> sendGroupMsg(long groupId, java.lang.String message, boolean autoEscape)
groupId
- 群IDmessage
- 消息autoEscape
- 是否纯文本发送public ReturnData<RMessageReturnData> sendDiscussMsg(long groupId, java.lang.String message)
groupId
- 讨论组IDmessage
- 消息public ReturnData<RMessageReturnData> sendDiscussMsg(long groupId, java.lang.String message, boolean autoEscape)
groupId
- 讨论组IDmessage
- 消息autoEscape
- 是否纯文本发送public RawReturnData deleteMsg(long messageId)
messageId
- 消息IDpublic RawReturnData sendLike(long qq, long times)
qq
- QQ号times
- 赞的次数,每个好友每天最多 10 次public RawReturnData sendGroupNotice(long groupId, java.lang.String title, java.lang.String content)
groupId
- 群号title
- 标题content
- 内容public RawReturnData setGroupKick(long groupId, long qq)
groupId
- 群号qq
- QQpublic RawReturnData setGroupKick(long groupId, long qq, boolean rejectFurtherRequest)
groupId
- 群号qq
- QQrejectFurtherRequest
- 拒绝这个人的加群请求public RawReturnData setGroupBan(long groupId, long qq, long duration)
groupId
- 群号qq
- QQduration
- 禁言时长,单位秒,0 表示取消禁言public RawReturnData setGroupAnonymousBan(java.lang.String flag, long groupId, long duration)
flag
- 要禁言的匿名用户的 flag (需从群消息上报的数据中获得)groupId
- 群号duration
- 禁言时长,单位秒,无法取消匿名用户禁言public RawReturnData setGroupAnonymousBan(EventGroupMessage.Anonymous anonymous, long groupId, long duration)
anonymous
- 要禁言的匿名用户的 Anonymous对象 (需从群消息上报的数据中获得)groupId
- 群号duration
- 禁言时长,单位秒,无法取消匿名用户禁言public RawReturnData setGroupWholeBan(long groupId, boolean enable)
groupId
- 群号enable
- 是否禁言public RawReturnData setGroupAdmin(long groupId, long qq, boolean enable)
groupId
- 群号qq
- 要设置管理员的 QQ 号enable
- true 为设置,false 为取消public RawReturnData setGroupAnonymous(long groupId, boolean enable)
groupId
- 群号enable
- 是否允许匿名聊天public RawReturnData setGroupCard(long groupId, long qq, java.lang.String card)
groupId
- 群号qq
- 要设置的 QQ 号card
- 群名片内容,不填或空字符串表示删除群名片public RawReturnData setGroupLeave(long groupId)
groupId
- 群号public RawReturnData setGroupLeave(long groupId, boolean dismiss)
groupId
- 群号dismiss
- 是否解散, 如果登录号是群主, 则仅在此项为 true 时能够解散public RawReturnData setGroupSpecialTitle(long groupId, long qq, java.lang.String specialTitle)
groupId
- 群号qq
- 要设置的QQ号specialTitle
- 专属头衔,不填或空字符串表示删除专属头衔public RawReturnData setGroupSpecialTitle(long groupId, long qq, java.lang.String specialTitle, long duration)
groupId
- 群号qq
- 要设置的QQ号specialTitle
- 专属头衔,不填或空字符串表示删除专属头衔duration
- 专属头衔有效期,单位秒,-1 表示永久,不过此项似乎没有效果,可能是只有某些特殊的时间长度有效,有待测试public RawReturnData setDiscussLeave(long discussId)
discussId
- 讨论组 ID (正常情况下看不到,需要从讨论组消息上报的数据中获得)public RawReturnData setFriendAndRequest(java.lang.String flag, boolean approve)
flag
- 加好友请求的 flag (需从上报的数据中获得)approve
- 是否同意请求public RawReturnData setFriendAndRequest(java.lang.String flag, boolean approve, java.lang.String remark)
flag
- 加好友请求的 flag (需从上报的数据中获得)approve
- 是否同意请求remark
- 添加后的好友备注 (仅在同意时有效)public RawReturnData setGroupAndRequest(java.lang.String flag, java.lang.String type, boolean approve, java.lang.String reason)
flag
- 加好友请求的 flag (需从上报的数据中获得)type
- add 或 invite,请求类型 (需要和上报消息中的 sub_type 字段相符)approve
- 是否同意请求/邀请reason
- 拒绝理由 (仅在拒绝时有效)public RawReturnData approveGroupRequest(java.lang.String flag, java.lang.String type)
flag
- 加好友请求的 flag (需从上报的数据中获得)type
- add 或 invite,请求类型 (需要和上报消息中的 sub_type 字段相符)public RawReturnData rejectGroupRequest(java.lang.String flag, java.lang.String type, java.lang.String reason)
flag
- 加好友请求的 flag (需从上报的数据中获得)type
- add 或 invite,请求类型 (需要和上报消息中的 sub_type 字段相符)reason
- 拒绝理由public RawReturnData setRestartPlugin()
public RawReturnData setRestartPlugin(int delay)
delay
- 要延迟的毫秒数, 如果默认情况下无法重启, 可以尝试设置延迟为 2000 左右public RawReturnData setRestartUnsafe()
public RawReturnData setRestartUnsafe(boolean cleanLog, boolean cleanCache, boolean cleanEvent)
cleanLog
- 是否在重启时清空酷Q的日志数据库 (logv1.db)cleanCache
- 是否在重启时清空酷Q的缓存数据库 (cache.db)cleanEvent
- 是否在重启时清空酷Q的事件数据库 (eventv2.db)public void cleanDataDir()
public RawReturnData cleanDataDir(java.lang.String dataDir)
dataDir
- 要清理的目录名, 支持 image, record, show, bfacepublic RawReturnData cleanPluginLog()
public ReturnData<RLoginInfo> getLoginInfo()
public ReturnData<RStrangerInfo> getStrangerInfo(long qq, boolean noCache)
qq
- QQ号noCache
- 是否不使用缓存 (使用缓存可能更新不及时,但响应更快)public ReturnData<RStrangerInfo> getStrangerInfo(long qq)
qq
- QQ号public ReturnData<RVipInfo> getVIPInfo(long qq)
qq
- QQ号public ReturnListData<RGroup> getGroupList()
public ReturnData<RGroupMemberInfo> getGroupMemberInfo(long groupId, long qq, boolean noCache)
groupId
- 群号qq
- QQ 号 (不可以是登录号)noCache
- 是否不使用缓存 (使用缓存可能更新不及时, 但响应更快)public ReturnData<RGroupMemberInfo> getGroupMemberInfo(long groupId, long qq)
groupId
- 群号qq
- QQ 号 (不可以是登录号)public ReturnData<RGroupDetail> getGroupInfoUnstable(long groupId)
groupId
- 群号public ReturnData<RGroupInfo> getGroupInfo(long groupId, boolean noCache)
groupId
- 群号noCache
- 是否不适用缓存public ReturnData<RGroupInfo> getGroupInfo(long groupId)
groupId
- 群号public ReturnListData<RGroupMemberInfo> getGroupMemberList(long groupId)
groupId
- 群号public ReturnListData<RFriendList> getFriendListUnstable()
public ReturnListData<RFriend> getFriendList()
public ReturnData<RFile> getRecord(java.lang.String file, java.lang.String format, boolean fullPath)
file
- 收到的语音文件名 (CQ码的file参数), 如 0B38145AA44505000B38145AA4450500.silkformat
- 要转换到的格式, 目前支持 mp3, amr, wma, m4a, spx, ogg, wav, flacfullPath
- 是否返回完整路径 (Windows环境下建议使用, Docker中不建议)public ReturnData<RFile> getImage(java.lang.String file)
file
- 收到的图片文件名 (CQ码的file参数), 如 6B4DE3DFD1BD271E3297859D41C530F5.jpgpublic java.io.File getImageFile(java.lang.String file)
file
- 收到的图片文件名 (CQ码的file参数), 如 6B4DE3DFD1BD271E3297859D41C530F5.jpgpublic ReturnListData<RGroupNotice> getGroupNotices(long groupId)
groupId
- 群IDpublic boolean canSendImage()
public boolean canSendRecord()
public ReturnData<RVersionInfo> getVersionInfo()
public ReturnData<RCookies> getCookies()
public ReturnData<RCookies> getCookies(java.lang.String domain)
domain
- 需要抢走曲奇的域名wpublic ReturnData<RCsrfToken> getCsrfToken()
public ReturnData<RCredentials> getCredentials()
public ReturnData<RStatus> getStatus()