diff --git a/README.md b/README.md index f7ff4bc..313f940 100644 --- a/README.md +++ b/README.md @@ -66,7 +66,7 @@ SDK提供多种可用的跨进程通信方案,开发者可以从中灵活选 ## 立马开始 -[点击查看帮助文档](http://www.newbe.pro) 开始编写第一个QQ机器人。 +[点击查看帮助文档](https://d.oo14.com/08ZI?v=v2) 开始编写第一个QQ机器人。 ### 快乐实践 @@ -78,14 +78,12 @@ SDK提供多种可用的跨进程通信方案,开发者可以从中灵活选 ## 版本 -- [版本变更情况](https://github.com/Newbe36524/Newbe.Mahua.Framework/blob/master/ReleaseNotes.md) - -| 包 | 版本 | 下载量 | 开发版 | 说明 | -| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------- | -| Newbe.Mahua.CQP.Asset | [![Newbe.Mahua.CQP.Asset.Version](https://img.shields.io/nuget/v/Newbe.Mahua.CQP.Asset.svg?style=flat-square)](https://www.nuget.org/packages/Newbe.Mahua.CQP.Asset/) | [![Newbe.Mahua.CQP.Asset.Download](https://img.shields.io/nuget/dt/Newbe.Mahua.CQP.Asset.svg?style=flat-square)](https://www.nuget.org/packages/Newbe.Mahua.CQP.Asset/) | [![Newbe.Mahua.CQP.Asset.Version.Pre](https://img.shields.io/nuget/vpre/Newbe.Mahua.CQP.Asset.svg?style=flat-square)](https://www.nuget.org/packages/Newbe.Mahua.CQP.Asset/) | CQP(酷Q)实现 | -| Newbe.Mahua.QQLight.Asset | [![Newbe.Mahua.QQLight.Asset.Version](https://img.shields.io/nuget/v/Newbe.Mahua.QQLight.Asset.svg?style=flat-square)](https://www.nuget.org/packages/Newbe.Mahua.QQLight.Asset/) | [![Newbe.Mahua.QQLight.Asset.Download](https://img.shields.io/nuget/dt/Newbe.Mahua.QQLight.Asset.svg?style=flat-square)](https://www.nuget.org/packages/Newbe.Mahua.QQLight.Asset/) | [![Newbe.Mahua.QQLight.Asset.Version.Pre](https://img.shields.io/nuget/vpre/Newbe.Mahua.QQLight.Asset.svg?style=flat-square)](https://www.nuget.org/packages/Newbe.Mahua.QQLight.Asset/) | QQLight实现 | -| Newbe.Mahua.CleverQQ.Asset | [![Newbe.Mahua.CleverQQ.Asset.Version](https://img.shields.io/nuget/v/Newbe.Mahua.CleverQQ.Asset.svg?style=flat-square)](https://www.nuget.org/packages/Newbe.Mahua.CleverQQ.Asset/) | [![Newbe.Mahua.CleverQQ.Asset.Download](https://img.shields.io/nuget/dt/Newbe.Mahua.CleverQQ.Asset.svg?style=flat-square)](https://www.nuget.org/packages/Newbe.Mahua.CleverQQ.Asset/) | [![Newbe.Mahua.CleverQQ.Asset.Version.Pre](https://img.shields.io/nuget/vpre/Newbe.Mahua.CleverQQ.Asset.svg?style=flat-square)](https://www.nuget.org/packages/Newbe.Mahua.CleverQQ.Asset/) | CleverQQ实现 | -| Newbe.Mahua.MPQ.Asset | [![Newbe.Mahua.MPQ.Asset.Version](https://img.shields.io/nuget/v/Newbe.Mahua.MPQ.Asset.svg?style=flat-square)](https://www.nuget.org/packages/Newbe.Mahua.MPQ.Asset/) | [![Newbe.Mahua.MPQ.Asset.Download](https://img.shields.io/nuget/dt/Newbe.Mahua.MPQ.Asset.svg?style=flat-square)](https://www.nuget.org/packages/Newbe.Mahua.MPQ.Asset/) | [![Newbe.Mahua.MPQ.Asset.Version.Pre](https://img.shields.io/nuget/vpre/Newbe.Mahua.MPQ.Asset.svg?style=flat-square)](https://www.nuget.org/packages/Newbe.Mahua.MPQ.Asset/) | MPQ(MyPcQQ)实现 | +| 包 | 版本 | 下载量 | 开发版 | 说明 | +| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------- | +| Newbe.Mahua.CQP.Asset | [![Newbe.Mahua.CQP.Asset.Version](https://img.shields.io/nuget/v/Newbe.Mahua.CQP.Asset.svg?style=flat-square)](https://www.nuget.org/packages/Newbe.Mahua.CQP.Asset/) | [![Newbe.Mahua.CQP.Asset.Download](https://img.shields.io/nuget/dt/Newbe.Mahua.CQP.Asset.svg?style=flat-square)](https://www.nuget.org/packages/Newbe.Mahua.CQP.Asset/) | [![Newbe.Mahua.CQP.Asset.Version.Pre](https://img.shields.io/nuget/vpre/Newbe.Mahua.CQP.Asset.svg?style=flat-square)](https://www.nuget.org/packages/Newbe.Mahua.CQP.Asset/) | CQP(酷Q)实现 | +| Newbe.Mahua.QQLight.Asset | [![Newbe.Mahua.QQLight.Asset.Version](https://img.shields.io/nuget/v/Newbe.Mahua.QQLight.Asset.svg?style=flat-square)](https://www.nuget.org/packages/Newbe.Mahua.QQLight.Asset/) | [![Newbe.Mahua.QQLight.Asset.Download](https://img.shields.io/nuget/dt/Newbe.Mahua.QQLight.Asset.svg?style=flat-square)](https://www.nuget.org/packages/Newbe.Mahua.QQLight.Asset/) | [![Newbe.Mahua.QQLight.Asset.Version.Pre](https://img.shields.io/nuget/vpre/Newbe.Mahua.QQLight.Asset.svg?style=flat-square)](https://www.nuget.org/packages/Newbe.Mahua.QQLight.Asset/) | QQLight实现 | +| Newbe.Mahua.MPQ.Asset | [![Newbe.Mahua.MPQ.Asset.Version](https://img.shields.io/nuget/v/Newbe.Mahua.MPQ.Asset.svg?style=flat-square)](https://www.nuget.org/packages/Newbe.Mahua.MPQ.Asset/) | [![Newbe.Mahua.MPQ.Asset.Download](https://img.shields.io/nuget/dt/Newbe.Mahua.MPQ.Asset.svg?style=flat-square)](https://www.nuget.org/packages/Newbe.Mahua.MPQ.Asset/) | [![Newbe.Mahua.MPQ.Asset.Version.Pre](https://img.shields.io/nuget/vpre/Newbe.Mahua.MPQ.Asset.svg?style=flat-square)](https://www.nuget.org/packages/Newbe.Mahua.MPQ.Asset/) | MPQ(MyPcQQ)实现 | +| Newbe.Mahua.CleverQQ.Asset | [![Newbe.Mahua.CleverQQ.Asset.Version](https://img.shields.io/nuget/v/Newbe.Mahua.CleverQQ.Asset.svg?style=flat-square)](https://www.nuget.org/packages/Newbe.Mahua.CleverQQ.Asset/) | [![Newbe.Mahua.CleverQQ.Asset.Download](https://img.shields.io/nuget/dt/Newbe.Mahua.CleverQQ.Asset.svg?style=flat-square)](https://www.nuget.org/packages/Newbe.Mahua.CleverQQ.Asset/) | [![Newbe.Mahua.CleverQQ.Asset.Version.Pre](https://img.shields.io/nuget/vpre/Newbe.Mahua.CleverQQ.Asset.svg?style=flat-square)](https://www.nuget.org/packages/Newbe.Mahua.CleverQQ.Asset/) | CleverQQ实现(已经停止维护) | ## Contributors diff --git a/ReleaseNotes.md b/ReleaseNotes.md deleted file mode 100644 index 2d57c1e..0000000 --- a/ReleaseNotes.md +++ /dev/null @@ -1,18 +0,0 @@ -# 版本变更情况 - -Newbe.Mahua 的版本号遵循语义化版本号的基本规则。其主要标记的是 Newbe.Mahua 对外提供的 API。 - -变更情况只记录主版本和次版本变化。版本号严格按照以下情况进行变更: - -- 当版本出现了与上一版本不兼容的情况,将变更主版本号 -- 当版本兼容上一版本,将变更次版本号 - -兼容,即对接的客户端不需要任何修改便可以使用最新版本内容。 - -兼容,不一定确保该项目本身的内部接口一定向前兼容。因此,如果开发者是通过 Fork 该项目自行构建的版本。那么即使在 Newbe.Mahua 对外接口兼容的情况下,也可能出现不兼容的内部变更。 - -## 2.0 - -采用跨进程通信方案,进而支持更多语言的对接需求。 - -初版,支持 HttpApi 的调用与回调。 \ No newline at end of file diff --git a/src/Directory.Build.props b/src/Directory.Build.props index 489be40..23996d9 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -1,6 +1,6 @@ - 2.3.0 + 2.4.0 Newbe Newbe diff --git a/src/Newbe.Mahua.CQP.Native/CqpApi.cs b/src/Newbe.Mahua.CQP.Native/CqpApi.cs index 59692af..68f96b3 100644 --- a/src/Newbe.Mahua.CQP.Native/CqpApi.cs +++ b/src/Newbe.Mahua.CQP.Native/CqpApi.cs @@ -6,721 +6,818 @@ namespace Newbe.Mahua.CQP.Native { public class CqpApi : ICqpApi { - /// - /// 发送好友消息 - /// - /// - /// 目标QQ - /// 消息内容 - /// - int ICqpApi.CQ_sendPrivateMsg([Description("")] int AuthCode, [Description("目标QQ")] long QQID, + /// + /// 发送好友消息 + /// + /// + /// 目标帐号 + /// 消息内容 + /// + int ICqpApi.CQ_sendPrivateMsg([Description("")] int AuthCode, [Description("目标帐号")] long Account, [Description("消息内容")] string msg) - { - return NativeMethods.CQ_sendPrivateMsg(AuthCode, QQID, msg); - } - - /// - /// 发送群消息 - /// - /// - /// 目标群 - /// 消息内容 - /// - int ICqpApi.CQ_sendGroupMsg([Description("")] int AuthCode, [Description("目标群")] long 群号, + => NativeMethods.CQ_sendPrivateMsg(AuthCode, Account, msg); + + /// + /// 发送群消息 + /// + /// + /// 目标群 + /// 消息内容 + /// + int ICqpApi.CQ_sendGroupMsg([Description("")] int AuthCode, [Description("目标群")] long 群号, [Description("消息内容")] string msg) - { - return NativeMethods.CQ_sendGroupMsg(AuthCode, 群号, msg); - } - - /// - /// 发送讨论组消息 - /// - /// - /// 目标讨论组 - /// 消息内容 - /// - int ICqpApi.CQ_sendDiscussMsg([Description("")] int AuthCode, [Description("目标讨论组")] long 讨论组号, + => NativeMethods.CQ_sendGroupMsg(AuthCode, 群号, msg); + + /// + /// 发送讨论组消息 + /// + /// + /// 目标讨论组 + /// 消息内容 + /// + int ICqpApi.CQ_sendDiscussMsg([Description("")] int AuthCode, [Description("目标讨论组")] long 讨论组号, [Description("消息内容")] string msg) - { - return NativeMethods.CQ_sendDiscussMsg(AuthCode, 讨论组号, msg); - } - - /// - /// 撤回消息 - /// - /// - /// 消息ID - /// - int ICqpApi.CQ_deleteMsg([Description("")] int AuthCode, [Description("消息ID")] long MsgId) - { - return NativeMethods.CQ_deleteMsg(AuthCode, MsgId); - } - - /// - /// 发送赞 - /// - /// - /// 目标QQ - /// 赞的次数,最多10次 - /// - int ICqpApi.CQ_sendLikeV2([Description("")] int AuthCode, [Description("目标QQ")] long QQID, + => NativeMethods.CQ_sendDiscussMsg(AuthCode, 讨论组号, msg); + + /// + /// 撤回消息 + /// + /// + /// 消息ID + /// + int ICqpApi.CQ_deleteMsg([Description("")] int AuthCode, [Description("消息ID")] long MsgId) + => NativeMethods.CQ_deleteMsg(AuthCode, MsgId); + + /// + /// 发送赞 + /// + /// + /// 目标帐号 + /// 赞的次数,最多10次 + /// + int ICqpApi.CQ_sendLikeV2([Description("")] int AuthCode, [Description("目标帐号")] long Account, [Description("赞的次数,最多10次")] int times) - { - return NativeMethods.CQ_sendLikeV2(AuthCode, QQID, times); - } - - /// - /// 取Cookies(慎用 - /// - /// - /// - string ICqpApi.CQ_getCookies([Description("")] int AuthCode) - { - return NativeMethods.CQ_getCookies(AuthCode); - } - - /// - /// 接收语音 - /// - /// - /// 收到消息中的语音文件名(file) - /// 应用所需的格式 - /// - string ICqpApi.CQ_getRecord([Description("")] int AuthCode, [Description("收到消息中的语音文件名(file)")] string file, + => NativeMethods.CQ_sendLikeV2(AuthCode, Account, times); + + /// + /// 取Cookies(慎用 + /// + /// + /// 目标域名,如 api.example.com + /// + string ICqpApi.CQ_getCookiesV2([Description("")] int AuthCode, [Description("目标域名,如 api.example.com")] + string domain) + => NativeMethods.CQ_getCookiesV2(AuthCode, domain); + + /// + /// 【已弃用】接收语音,并返回语音文件相对路径 + /// + /// + /// 收到消息中的语音文件名(file) + /// 应用所需的格式 + /// + string ICqpApi.CQ_getRecord([Description("")] int AuthCode, [Description("收到消息中的语音文件名(file)")] string file, [Description("应用所需的格式")] string outformat) - { - return NativeMethods.CQ_getRecord(AuthCode, file, outformat); - } - - /// - /// 取CsrfToken(慎用 - /// - /// - /// - int ICqpApi.CQ_getCsrfToken([Description("")] int AuthCode) - { - return NativeMethods.CQ_getCsrfToken(AuthCode); - } - - /// - /// 取应用目录 - /// - /// - /// - string ICqpApi.CQ_getAppDirectory([Description("")] int AuthCode) - { - return NativeMethods.CQ_getAppDirectory(AuthCode); - } - - /// - /// 取登录QQ - /// - /// - /// - long ICqpApi.CQ_getLoginQQ([Description("")] int AuthCode) - { - return NativeMethods.CQ_getLoginQQ(AuthCode); - } - - /// - /// 取登录昵称 - /// - /// - /// - string ICqpApi.CQ_getLoginNick([Description("")] int AuthCode) - { - return NativeMethods.CQ_getLoginNick(AuthCode); - } - - /// - /// 置群员移除 - /// - /// - /// 目标群 - /// 目标QQ - /// 如果为真,则“不再接收此人加群申请”,请慎用 - /// - int ICqpApi.CQ_setGroupKick([Description("")] int AuthCode, [Description("目标群")] long 群号, - [Description("目标QQ")] long QQID, [Description("如果为真,则“不再接收此人加群申请”,请慎用")] + => NativeMethods.CQ_getRecord(AuthCode, file, outformat); + + /// + /// 接收语音,并返回语音文件绝对路径 + /// + /// + /// 收到消息中的语音文件名(file) + /// 应用所需的格式 + /// + string ICqpApi.CQ_getRecordV2([Description("")] int AuthCode, [Description("收到消息中的语音文件名(file)")] string file, + [Description("应用所需的格式")] string outformat) + => NativeMethods.CQ_getRecordV2(AuthCode, file, outformat); + + /// + /// 接收图片,并返回图片文件绝对路径 + /// + /// + /// 收到消息中的图片文件名(file) + /// + string ICqpApi.CQ_getImage([Description("")] int AuthCode, [Description("收到消息中的图片文件名(file)")] string file) + => NativeMethods.CQ_getImage(AuthCode, file); + + /// + /// 是否支持发送图片,返回大于 0 为支持,等于 0 为不支持 + /// + /// + /// + int ICqpApi.CQ_canSendImage([Description("")] int AuthCode) + => NativeMethods.CQ_canSendImage(AuthCode); + + /// + /// 是否支持发送语音,返回大于 0 为支持,等于 0 为不支持 + /// + /// + /// + int ICqpApi.CQ_canSendRecord([Description("")] int AuthCode) + => NativeMethods.CQ_canSendRecord(AuthCode); + + /// + /// 取CsrfToken(慎用 + /// + /// + /// + int ICqpApi.CQ_getCsrfToken([Description("")] int AuthCode) + => NativeMethods.CQ_getCsrfToken(AuthCode); + + /// + /// 取应用目录 + /// + /// + /// + string ICqpApi.CQ_getAppDirectory([Description("")] int AuthCode) + => NativeMethods.CQ_getAppDirectory(AuthCode); + + /// + /// 取登录帐号 + /// + /// + /// + long ICqpApi.CQ_getLoginQQ([Description("")] int AuthCode) + => NativeMethods.CQ_getLoginQQ(AuthCode); + + /// + /// 取登录昵称 + /// + /// + /// + string ICqpApi.CQ_getLoginNick([Description("")] int AuthCode) + => NativeMethods.CQ_getLoginNick(AuthCode); + + /// + /// 置群员移除 + /// + /// + /// 目标群 + /// 目标帐号 + /// 如果为真,则“不再接收此人加群申请”,请慎用 + /// + int ICqpApi.CQ_setGroupKick([Description("")] int AuthCode, [Description("目标群")] long 群号, + [Description("目标帐号")] long Account, [Description("如果为真,则“不再接收此人加群申请”,请慎用")] bool 拒绝再加群) - { - return NativeMethods.CQ_setGroupKick(AuthCode, 群号, QQID, 拒绝再加群); - } - - /// - /// 置群员禁言 - /// - /// - /// 目标群 - /// 目标QQ - /// 禁言的时间,单位为秒。如果要解禁,这里填写0 - /// - int ICqpApi.CQ_setGroupBan([Description("")] int AuthCode, [Description("目标群")] long 群号, - [Description("目标QQ")] long QQID, [Description("禁言的时间,单位为秒。如果要解禁,这里填写0")] + => NativeMethods.CQ_setGroupKick(AuthCode, 群号, Account, 拒绝再加群); + + /// + /// 置群员禁言 + /// + /// + /// 目标群 + /// 目标帐号 + /// 禁言的时间,单位为秒。如果要解禁,这里填写0 + /// + int ICqpApi.CQ_setGroupBan([Description("")] int AuthCode, [Description("目标群")] long 群号, + [Description("目标帐号")] long Account, [Description("禁言的时间,单位为秒。如果要解禁,这里填写0")] long 禁言时间) - { - return NativeMethods.CQ_setGroupBan(AuthCode, 群号, QQID, 禁言时间); - } - - /// - /// 置群管理员 - /// - /// - /// 目标群 - /// 被设置的QQ - /// 真/设置管理员 假/取消管理员 - /// - int ICqpApi.CQ_setGroupAdmin([Description("")] int AuthCode, [Description("目标群")] long 群号, - [Description("被设置的QQ")] long QQID, [Description("真/设置管理员 假/取消管理员")] bool 成为管理员) - { - return NativeMethods.CQ_setGroupAdmin(AuthCode, 群号, QQID, 成为管理员); - } - - /// - /// 置群成员专属头衔 - /// - /// - /// 目标群 - /// 目标QQ - /// 如果要删除,这里填空 - /// 专属头衔有效期,单位为秒。如果永久有效,这里填写-1 - /// - int ICqpApi.CQ_setGroupSpecialTitle([Description("")] int AuthCode, [Description("目标群")] long 群号, - [Description("目标QQ")] long QQID, [Description("如果要删除,这里填空")] string 头衔, + => NativeMethods.CQ_setGroupBan(AuthCode, 群号, Account, 禁言时间); + + /// + /// 置群管理员 + /// + /// + /// 目标群 + /// 被设置的帐号 + /// 真/设置管理员 假/取消管理员 + /// + int ICqpApi.CQ_setGroupAdmin([Description("")] int AuthCode, [Description("目标群")] long 群号, + [Description("被设置的帐号")] long Account, [Description("真/设置管理员 假/取消管理员")] bool 成为管理员) + => NativeMethods.CQ_setGroupAdmin(AuthCode, 群号, Account, 成为管理员); + + /// + /// 置群成员专属头衔 + /// + /// + /// 目标群 + /// 目标帐号 + /// 如果要删除,这里填空 + /// 专属头衔有效期,单位为秒。如果永久有效,这里填写-1 + /// + int ICqpApi.CQ_setGroupSpecialTitle([Description("")] int AuthCode, [Description("目标群")] long 群号, + [Description("目标帐号")] long Account, [Description("如果要删除,这里填空")] string 头衔, [Description("专属头衔有效期,单位为秒。如果永久有效,这里填写-1")] long 过期时间) - { - return NativeMethods.CQ_setGroupSpecialTitle(AuthCode, 群号, QQID, 头衔, 过期时间); - } - - /// - /// 置全群禁言 - /// - /// - /// 目标群 - /// 真/开启 假/关闭 - /// - int ICqpApi.CQ_setGroupWholeBan([Description("")] int AuthCode, [Description("目标群")] long 群号, + => NativeMethods.CQ_setGroupSpecialTitle(AuthCode, 群号, Account, 头衔, 过期时间); + + /// + /// 置全群禁言 + /// + /// + /// 目标群 + /// 真/开启 假/关闭 + /// + int ICqpApi.CQ_setGroupWholeBan([Description("")] int AuthCode, [Description("目标群")] long 群号, [Description("真/开启 假/关闭")] bool 开启禁言) - { - return NativeMethods.CQ_setGroupWholeBan(AuthCode, 群号, 开启禁言); - } - - /// - /// 置匿名群员禁言 - /// - /// - /// 目标群 - /// 群消息事件收到的“匿名”参数 - /// 禁言的时间,单位为秒。不支持解禁 - /// - int ICqpApi.CQ_setGroupAnonymousBan([Description("")] int AuthCode, [Description("目标群")] long 群号, + => NativeMethods.CQ_setGroupWholeBan(AuthCode, 群号, 开启禁言); + + /// + /// 置匿名群员禁言 + /// + /// + /// 目标群 + /// 群消息事件收到的“匿名”参数 + /// 禁言的时间,单位为秒。不支持解禁 + /// + int ICqpApi.CQ_setGroupAnonymousBan([Description("")] int AuthCode, [Description("目标群")] long 群号, [Description("群消息事件收到的“匿名”参数")] string 匿名, [Description("禁言的时间,单位为秒。不支持解禁")] long 禁言时间) - { - return NativeMethods.CQ_setGroupAnonymousBan(AuthCode, 群号, 匿名, 禁言时间); - } - - /// - /// 置群匿名设置 - /// - /// - /// - /// - /// - int ICqpApi.CQ_setGroupAnonymous([Description("")] int AuthCode, [Description("")] long 群号, + => NativeMethods.CQ_setGroupAnonymousBan(AuthCode, 群号, 匿名, 禁言时间); + + /// + /// 置群匿名设置 + /// + /// + /// + /// + /// + int ICqpApi.CQ_setGroupAnonymous([Description("")] int AuthCode, [Description("")] long 群号, [Description("")] bool 开启匿名) - { - return NativeMethods.CQ_setGroupAnonymous(AuthCode, 群号, 开启匿名); - } - - /// - /// 置群成员名片 - /// - /// - /// 目标群 - /// 被设置的QQ - /// - /// - int ICqpApi.CQ_setGroupCard([Description("")] int AuthCode, [Description("目标群")] long 群号, - [Description("被设置的QQ")] long QQID, [Description("")] string 新名片_昵称) - { - return NativeMethods.CQ_setGroupCard(AuthCode, 群号, QQID, 新名片_昵称); - } - - /// - /// 置群退出 - /// - /// - /// 目标群 - /// 真/解散本群(群主) 假/退出本群(管理、群成员) - /// - int ICqpApi.CQ_setGroupLeave([Description("")] int AuthCode, [Description("目标群")] long 群号, + => NativeMethods.CQ_setGroupAnonymous(AuthCode, 群号, 开启匿名); + + /// + /// 置群成员名片 + /// + /// + /// 目标群 + /// 被设置的帐号 + /// + /// + int ICqpApi.CQ_setGroupCard([Description("")] int AuthCode, [Description("目标群")] long 群号, + [Description("被设置的帐号")] long Account, [Description("")] string 新名片_昵称) + => NativeMethods.CQ_setGroupCard(AuthCode, 群号, Account, 新名片_昵称); + + /// + /// 置群退出 + /// + /// + /// 目标群 + /// 真/解散本群(群主) 假/退出本群(管理、群成员) + /// + int ICqpApi.CQ_setGroupLeave([Description("")] int AuthCode, [Description("目标群")] long 群号, [Description("真/解散本群(群主) 假/退出本群(管理、群成员)")] bool 是否解散) - { - return NativeMethods.CQ_setGroupLeave(AuthCode, 群号, 是否解散); - } - - /// - /// 置讨论组退出 - /// - /// - /// 目标讨论组 - /// - int ICqpApi.CQ_setDiscussLeave([Description("")] int AuthCode, [Description("目标讨论组")] long 讨论组号) - { - return NativeMethods.CQ_setDiscussLeave(AuthCode, 讨论组号); - } - - /// - /// 置好友添加请求 - /// - /// - /// 请求事件收到的“反馈标识”参数 - /// #请求_通过 或 #请求_拒绝 - /// 添加后的好友备注 - /// - int ICqpApi.CQ_setFriendAddRequest([Description("")] int AuthCode, + => NativeMethods.CQ_setGroupLeave(AuthCode, 群号, 是否解散); + + /// + /// 置讨论组退出 + /// + /// + /// 目标讨论组 + /// + int ICqpApi.CQ_setDiscussLeave([Description("")] int AuthCode, [Description("目标讨论组")] long 讨论组号) + => NativeMethods.CQ_setDiscussLeave(AuthCode, 讨论组号); + + /// + /// 置好友添加请求 + /// + /// + /// 请求事件收到的“反馈标识”参数 + /// #请求_通过 或 #请求_拒绝 + /// 添加后的好友备注 + /// + int ICqpApi.CQ_setFriendAddRequest([Description("")] int AuthCode, [Description("请求事件收到的“反馈标识”参数")] string 请求反馈标识, [Description("#请求_通过 或 #请求_拒绝")] int 反馈类型, [Description("添加后的好友备注")] string 备注) - { - return NativeMethods.CQ_setFriendAddRequest(AuthCode, 请求反馈标识, 反馈类型, 备注); - } - - /// - /// 置群添加请求 - /// - /// - /// 请求事件收到的“反馈标识”参数 - /// 根据请求事件的子类型区分 #请求_群添加 或 #请求_群邀请 - /// #请求_通过 或 #请求_拒绝 - /// 操作理由,仅 #请求_群添加 且 #请求_拒绝 时可用 - /// - int ICqpApi.CQ_setGroupAddRequestV2([Description("")] int AuthCode, + => NativeMethods.CQ_setFriendAddRequest(AuthCode, 请求反馈标识, 反馈类型, 备注); + + /// + /// 置群添加请求 + /// + /// + /// 请求事件收到的“反馈标识”参数 + /// 根据请求事件的子类型区分 #请求_群添加 或 #请求_群邀请 + /// #请求_通过 或 #请求_拒绝 + /// 操作理由,仅 #请求_群添加 且 #请求_拒绝 时可用 + /// + int ICqpApi.CQ_setGroupAddRequestV2([Description("")] int AuthCode, [Description("请求事件收到的“反馈标识”参数")] string 请求反馈标识, [Description("根据请求事件的子类型区分 #请求_群添加 或 #请求_群邀请")] int 请求类型, [Description("#请求_通过 或 #请求_拒绝")] int 反馈类型, [Description("操作理由,仅 #请求_群添加 且 #请求_拒绝 时可用")] string 理由) - { - return NativeMethods.CQ_setGroupAddRequestV2(AuthCode, 请求反馈标识, 请求类型, 反馈类型, 理由); - } - - /// - /// 增加运行日志 - /// - /// - /// #Log_ 开头常量 - /// - /// - /// - int ICqpApi.CQ_addLog([Description("")] int AuthCode, [Description("#Log_ 开头常量")] int 优先级, + => NativeMethods.CQ_setGroupAddRequestV2(AuthCode, 请求反馈标识, 请求类型, 反馈类型, 理由); + + /// + /// 增加运行日志 + /// + /// + /// #Log_ 开头常量 + /// + /// + /// + int ICqpApi.CQ_addLog([Description("")] int AuthCode, [Description("#Log_ 开头常量")] int 优先级, [Description("")] string 类型, [Description("")] string 内容) - { - return NativeMethods.CQ_addLog(AuthCode, 优先级, 类型, 内容); - } - - /// - /// 置致命错误提示 - /// - /// - /// - /// - int ICqpApi.CQ_setFatal([Description("")] int AuthCode, [Description("")] string 错误信息) - { - return NativeMethods.CQ_setFatal(AuthCode, 错误信息); - } - - /// - /// 取群成员信息(支持缓存) - /// - /// - /// 目标QQ所在群 - /// 目标QQ - /// - /// - string ICqpApi.CQ_getGroupMemberInfoV2([Description("")] int AuthCode, [Description("目标QQ所在群")] long 群号, - [Description("目标QQ")] long QQID, [Description("")] bool 不使用缓存) - { - return NativeMethods.CQ_getGroupMemberInfoV2(AuthCode, 群号, QQID, 不使用缓存); - } - - /// - /// 取群成员列表 - /// - /// - /// 目标QQ所在群 - /// - string ICqpApi.CQ_getGroupMemberList([Description("")] int AuthCode, [Description("目标QQ所在群")] long 群号) - { - return NativeMethods.CQ_getGroupMemberList(AuthCode, 群号); - } - - /// - /// 取群列表 - /// - /// - /// - string ICqpApi.CQ_getGroupList([Description("")] int AuthCode) - { - return NativeMethods.CQ_getGroupList(AuthCode); - } - - /// - /// 取陌生人信息(支持缓存) - /// - /// - /// 目标QQ - /// - /// - string ICqpApi.CQ_getStrangerInfo([Description("")] int AuthCode, [Description("目标QQ")] long QQID, + => NativeMethods.CQ_addLog(AuthCode, 优先级, 类型, 内容); + + /// + /// 置致命错误提示 + /// + /// + /// + /// + int ICqpApi.CQ_setFatal([Description("")] int AuthCode, [Description("")] string 错误信息) + => NativeMethods.CQ_setFatal(AuthCode, 错误信息); + + /// + /// 取群成员信息(支持缓存) + /// + /// + /// 目标帐号所在群 + /// 目标帐号 + /// + /// + string ICqpApi.CQ_getGroupMemberInfoV2([Description("")] int AuthCode, [Description("目标帐号所在群")] long 群号, + [Description("目标帐号")] long Account, [Description("")] bool 不使用缓存) + => NativeMethods.CQ_getGroupMemberInfoV2(AuthCode, 群号, Account, 不使用缓存); + + /// + /// 取群成员列表 + /// + /// + /// 目标帐号所在群 + /// + string ICqpApi.CQ_getGroupMemberList([Description("")] int AuthCode, [Description("目标帐号所在群")] long 群号) + => NativeMethods.CQ_getGroupMemberList(AuthCode, 群号); + + /// + /// 取群列表 + /// + /// + /// + string ICqpApi.CQ_getGroupList([Description("")] int AuthCode) + => NativeMethods.CQ_getGroupList(AuthCode); + + /// + /// 取好友列表 + /// + /// + /// 保留参数,请传入“假” + /// + string ICqpApi.CQ_getFriendList([Description("")] int AuthCode, [Description("保留参数,请传入“假”")] bool reserved) + => NativeMethods.CQ_getFriendList(AuthCode, reserved); + + /// + /// 取陌生人信息(支持缓存) + /// + /// + /// 目标帐号 + /// + /// + string ICqpApi.CQ_getStrangerInfo([Description("")] int AuthCode, [Description("目标帐号")] long Account, [Description("")] bool 不使用缓存) - { - return NativeMethods.CQ_getStrangerInfo(AuthCode, QQID, 不使用缓存); - } + => NativeMethods.CQ_getStrangerInfo(AuthCode, Account, 不使用缓存); + + /// + /// 取群信息(支持缓存) + /// + /// + /// 目标群 + /// + /// + string ICqpApi.CQ_getGroupInfo([Description("")] int AuthCode, [Description("目标群")] long 群号, + [Description("")] bool 不使用缓存) + => NativeMethods.CQ_getGroupInfo(AuthCode, 群号, 不使用缓存); + + /// + /// + /// + /// 址 + /// 址 + /// + /// + /// 址 + /// 0 + /// 0 + /// + bool ICqpApi.CryptStringToBinaryA([Description("址")] string pszString, [Description("址")] int cchString, + [Description("")] int dwFlags, [Description("")] int pbBinary, [Description("址")] int pcbBinary, + [Description("0")] int pdwSkip, [Description("0")] int pdwFlags) + => NativeMethods.CryptStringToBinaryA(pszString, cchString, dwFlags, pbBinary, pcbBinary, pdwSkip, + pdwFlags); + + /// + /// + /// + /// 址 + /// 址 + /// + /// 址 + /// 址 + /// 0 + /// 0 + /// + bool ICqpApi.CryptStringToBinaryA([Description("址")] string pszString, [Description("址")] int cchString, + [Description("")] int dwFlags, [Description("址")] byte[] pbBinary, [Description("址")] int pcbBinary, + [Description("0")] int pdwSkip, [Description("0")] int pdwFlags) + => NativeMethods.CryptStringToBinaryA(pszString, cchString, dwFlags, pbBinary, pcbBinary, pdwSkip, + pdwFlags); private static class NativeMethods { - /// - /// 发送好友消息 - /// - /// - /// 目标QQ - /// 消息内容 - /// - [DllImport("CQP.dll")] - public static extern int CQ_sendPrivateMsg([Description("")] int AuthCode, [Description("目标QQ")] long QQID, - [Description("消息内容")] string msg); - - /// - /// 发送群消息 - /// - /// - /// 目标群 - /// 消息内容 - /// - [DllImport("CQP.dll")] + /// + /// 发送好友消息 + /// + /// + /// 目标帐号 + /// 消息内容 + /// + [DllImport("CQP.dll")] + public static extern int CQ_sendPrivateMsg([Description("")] int AuthCode, + [Description("目标帐号")] long Account, [Description("消息内容")] string msg); + + /// + /// 发送群消息 + /// + /// + /// 目标群 + /// 消息内容 + /// + [DllImport("CQP.dll")] public static extern int CQ_sendGroupMsg([Description("")] int AuthCode, [Description("目标群")] long 群号, [Description("消息内容")] string msg); - /// - /// 发送讨论组消息 - /// - /// - /// 目标讨论组 - /// 消息内容 - /// - [DllImport("CQP.dll")] + /// + /// 发送讨论组消息 + /// + /// + /// 目标讨论组 + /// 消息内容 + /// + [DllImport("CQP.dll")] public static extern int CQ_sendDiscussMsg([Description("")] int AuthCode, [Description("目标讨论组")] long 讨论组号, [Description("消息内容")] string msg); - /// - /// 撤回消息 - /// - /// - /// 消息ID - /// - [DllImport("CQP.dll")] + /// + /// 撤回消息 + /// + /// + /// 消息ID + /// + [DllImport("CQP.dll")] public static extern int CQ_deleteMsg([Description("")] int AuthCode, [Description("消息ID")] long MsgId); - /// - /// 发送赞 - /// - /// - /// 目标QQ - /// 赞的次数,最多10次 - /// - [DllImport("CQP.dll")] - public static extern int CQ_sendLikeV2([Description("")] int AuthCode, [Description("目标QQ")] long QQID, + /// + /// 发送赞 + /// + /// + /// 目标帐号 + /// 赞的次数,最多10次 + /// + [DllImport("CQP.dll")] + public static extern int CQ_sendLikeV2([Description("")] int AuthCode, [Description("目标帐号")] long Account, [Description("赞的次数,最多10次")] int times); - /// - /// 取Cookies(慎用 - /// - /// - /// - [DllImport("CQP.dll")] - public static extern string CQ_getCookies([Description("")] int AuthCode); - - /// - /// 接收语音 - /// - /// - /// 收到消息中的语音文件名(file) - /// 应用所需的格式 - /// - [DllImport("CQP.dll")] + /// + /// 取Cookies(慎用 + /// + /// + /// 目标域名,如 api.example.com + /// + [DllImport("CQP.dll")] + public static extern string CQ_getCookiesV2([Description("")] int AuthCode, + [Description("目标域名,如 api.example.com")] + string domain); + + /// + /// 【已弃用】接收语音,并返回语音文件相对路径 + /// + /// + /// 收到消息中的语音文件名(file) + /// 应用所需的格式 + /// + [DllImport("CQP.dll")] public static extern string CQ_getRecord([Description("")] int AuthCode, [Description("收到消息中的语音文件名(file)")] string file, [Description("应用所需的格式")] string outformat); - /// - /// 取CsrfToken(慎用 - /// - /// - /// - [DllImport("CQP.dll")] + /// + /// 接收语音,并返回语音文件绝对路径 + /// + /// + /// 收到消息中的语音文件名(file) + /// 应用所需的格式 + /// + [DllImport("CQP.dll")] + public static extern string CQ_getRecordV2([Description("")] int AuthCode, + [Description("收到消息中的语音文件名(file)")] string file, [Description("应用所需的格式")] string outformat); + + /// + /// 接收图片,并返回图片文件绝对路径 + /// + /// + /// 收到消息中的图片文件名(file) + /// + [DllImport("CQP.dll")] + public static extern string CQ_getImage([Description("")] int AuthCode, + [Description("收到消息中的图片文件名(file)")] string file); + + /// + /// 是否支持发送图片,返回大于 0 为支持,等于 0 为不支持 + /// + /// + /// + [DllImport("CQP.dll")] + public static extern int CQ_canSendImage([Description("")] int AuthCode); + + /// + /// 是否支持发送语音,返回大于 0 为支持,等于 0 为不支持 + /// + /// + /// + [DllImport("CQP.dll")] + public static extern int CQ_canSendRecord([Description("")] int AuthCode); + + /// + /// 取CsrfToken(慎用 + /// + /// + /// + [DllImport("CQP.dll")] public static extern int CQ_getCsrfToken([Description("")] int AuthCode); - /// - /// 取应用目录 - /// - /// - /// - [DllImport("CQP.dll")] + /// + /// 取应用目录 + /// + /// + /// + [DllImport("CQP.dll")] public static extern string CQ_getAppDirectory([Description("")] int AuthCode); - /// - /// 取登录QQ - /// - /// - /// - [DllImport("CQP.dll")] + /// + /// 取登录帐号 + /// + /// + /// + [DllImport("CQP.dll")] public static extern long CQ_getLoginQQ([Description("")] int AuthCode); - /// - /// 取登录昵称 - /// - /// - /// - [DllImport("CQP.dll")] + /// + /// 取登录昵称 + /// + /// + /// + [DllImport("CQP.dll")] public static extern string CQ_getLoginNick([Description("")] int AuthCode); - /// - /// 置群员移除 - /// - /// - /// 目标群 - /// 目标QQ - /// 如果为真,则“不再接收此人加群申请”,请慎用 - /// - [DllImport("CQP.dll")] + /// + /// 置群员移除 + /// + /// + /// 目标群 + /// 目标帐号 + /// 如果为真,则“不再接收此人加群申请”,请慎用 + /// + [DllImport("CQP.dll")] public static extern int CQ_setGroupKick([Description("")] int AuthCode, [Description("目标群")] long 群号, - [Description("目标QQ")] long QQID, [Description("如果为真,则“不再接收此人加群申请”,请慎用")] + [Description("目标帐号")] long Account, [Description("如果为真,则“不再接收此人加群申请”,请慎用")] bool 拒绝再加群); - /// - /// 置群员禁言 - /// - /// - /// 目标群 - /// 目标QQ - /// 禁言的时间,单位为秒。如果要解禁,这里填写0 - /// - [DllImport("CQP.dll")] + /// + /// 置群员禁言 + /// + /// + /// 目标群 + /// 目标帐号 + /// 禁言的时间,单位为秒。如果要解禁,这里填写0 + /// + [DllImport("CQP.dll")] public static extern int CQ_setGroupBan([Description("")] int AuthCode, [Description("目标群")] long 群号, - [Description("目标QQ")] long QQID, [Description("禁言的时间,单位为秒。如果要解禁,这里填写0")] + [Description("目标帐号")] long Account, [Description("禁言的时间,单位为秒。如果要解禁,这里填写0")] long 禁言时间); - /// - /// 置群管理员 - /// - /// - /// 目标群 - /// 被设置的QQ - /// 真/设置管理员 假/取消管理员 - /// - [DllImport("CQP.dll")] + /// + /// 置群管理员 + /// + /// + /// 目标群 + /// 被设置的帐号 + /// 真/设置管理员 假/取消管理员 + /// + [DllImport("CQP.dll")] public static extern int CQ_setGroupAdmin([Description("")] int AuthCode, [Description("目标群")] long 群号, - [Description("被设置的QQ")] long QQID, [Description("真/设置管理员 假/取消管理员")] bool 成为管理员); - - /// - /// 置群成员专属头衔 - /// - /// - /// 目标群 - /// 目标QQ - /// 如果要删除,这里填空 - /// 专属头衔有效期,单位为秒。如果永久有效,这里填写-1 - /// - [DllImport("CQP.dll")] + [Description("被设置的帐号")] long Account, [Description("真/设置管理员 假/取消管理员")] bool 成为管理员); + + /// + /// 置群成员专属头衔 + /// + /// + /// 目标群 + /// 目标帐号 + /// 如果要删除,这里填空 + /// 专属头衔有效期,单位为秒。如果永久有效,这里填写-1 + /// + [DllImport("CQP.dll")] public static extern int CQ_setGroupSpecialTitle([Description("")] int AuthCode, - [Description("目标群")] long 群号, [Description("目标QQ")] long QQID, [Description("如果要删除,这里填空")] string 头衔, + [Description("目标群")] long 群号, [Description("目标帐号")] long Account, [Description("如果要删除,这里填空")] string 头衔, [Description("专属头衔有效期,单位为秒。如果永久有效,这里填写-1")] long 过期时间); - /// - /// 置全群禁言 - /// - /// - /// 目标群 - /// 真/开启 假/关闭 - /// - [DllImport("CQP.dll")] + /// + /// 置全群禁言 + /// + /// + /// 目标群 + /// 真/开启 假/关闭 + /// + [DllImport("CQP.dll")] public static extern int CQ_setGroupWholeBan([Description("")] int AuthCode, [Description("目标群")] long 群号, [Description("真/开启 假/关闭")] bool 开启禁言); - /// - /// 置匿名群员禁言 - /// - /// - /// 目标群 - /// 群消息事件收到的“匿名”参数 - /// 禁言的时间,单位为秒。不支持解禁 - /// - [DllImport("CQP.dll")] + /// + /// 置匿名群员禁言 + /// + /// + /// 目标群 + /// 群消息事件收到的“匿名”参数 + /// 禁言的时间,单位为秒。不支持解禁 + /// + [DllImport("CQP.dll")] public static extern int CQ_setGroupAnonymousBan([Description("")] int AuthCode, [Description("目标群")] long 群号, [Description("群消息事件收到的“匿名”参数")] string 匿名, [Description("禁言的时间,单位为秒。不支持解禁")] long 禁言时间); - /// - /// 置群匿名设置 - /// - /// - /// - /// - /// - [DllImport("CQP.dll")] + /// + /// 置群匿名设置 + /// + /// + /// + /// + /// + [DllImport("CQP.dll")] public static extern int CQ_setGroupAnonymous([Description("")] int AuthCode, [Description("")] long 群号, [Description("")] bool 开启匿名); - /// - /// 置群成员名片 - /// - /// - /// 目标群 - /// 被设置的QQ - /// - /// - [DllImport("CQP.dll")] + /// + /// 置群成员名片 + /// + /// + /// 目标群 + /// 被设置的帐号 + /// + /// + [DllImport("CQP.dll")] public static extern int CQ_setGroupCard([Description("")] int AuthCode, [Description("目标群")] long 群号, - [Description("被设置的QQ")] long QQID, [Description("")] string 新名片_昵称); - - /// - /// 置群退出 - /// - /// - /// 目标群 - /// 真/解散本群(群主) 假/退出本群(管理、群成员) - /// - [DllImport("CQP.dll")] + [Description("被设置的帐号")] long Account, [Description("")] string 新名片_昵称); + + /// + /// 置群退出 + /// + /// + /// 目标群 + /// 真/解散本群(群主) 假/退出本群(管理、群成员) + /// + [DllImport("CQP.dll")] public static extern int CQ_setGroupLeave([Description("")] int AuthCode, [Description("目标群")] long 群号, [Description("真/解散本群(群主) 假/退出本群(管理、群成员)")] bool 是否解散); - /// - /// 置讨论组退出 - /// - /// - /// 目标讨论组 - /// - [DllImport("CQP.dll")] + /// + /// 置讨论组退出 + /// + /// + /// 目标讨论组 + /// + [DllImport("CQP.dll")] public static extern int CQ_setDiscussLeave([Description("")] int AuthCode, [Description("目标讨论组")] long 讨论组号); - /// - /// 置好友添加请求 - /// - /// - /// 请求事件收到的“反馈标识”参数 - /// #请求_通过 或 #请求_拒绝 - /// 添加后的好友备注 - /// - [DllImport("CQP.dll")] + /// + /// 置好友添加请求 + /// + /// + /// 请求事件收到的“反馈标识”参数 + /// #请求_通过 或 #请求_拒绝 + /// 添加后的好友备注 + /// + [DllImport("CQP.dll")] public static extern int CQ_setFriendAddRequest([Description("")] int AuthCode, [Description("请求事件收到的“反馈标识”参数")] string 请求反馈标识, [Description("#请求_通过 或 #请求_拒绝")] int 反馈类型, [Description("添加后的好友备注")] string 备注); - /// - /// 置群添加请求 - /// - /// - /// 请求事件收到的“反馈标识”参数 - /// 根据请求事件的子类型区分 #请求_群添加 或 #请求_群邀请 - /// #请求_通过 或 #请求_拒绝 - /// 操作理由,仅 #请求_群添加 且 #请求_拒绝 时可用 - /// - [DllImport("CQP.dll")] + /// + /// 置群添加请求 + /// + /// + /// 请求事件收到的“反馈标识”参数 + /// 根据请求事件的子类型区分 #请求_群添加 或 #请求_群邀请 + /// #请求_通过 或 #请求_拒绝 + /// 操作理由,仅 #请求_群添加 且 #请求_拒绝 时可用 + /// + [DllImport("CQP.dll")] public static extern int CQ_setGroupAddRequestV2([Description("")] int AuthCode, [Description("请求事件收到的“反馈标识”参数")] string 请求反馈标识, [Description("根据请求事件的子类型区分 #请求_群添加 或 #请求_群邀请")] int 请求类型, [Description("#请求_通过 或 #请求_拒绝")] int 反馈类型, [Description("操作理由,仅 #请求_群添加 且 #请求_拒绝 时可用")] string 理由); - /// - /// 增加运行日志 - /// - /// - /// #Log_ 开头常量 - /// - /// - /// - [DllImport("CQP.dll")] + /// + /// 增加运行日志 + /// + /// + /// #Log_ 开头常量 + /// + /// + /// + [DllImport("CQP.dll")] public static extern int CQ_addLog([Description("")] int AuthCode, [Description("#Log_ 开头常量")] int 优先级, [Description("")] string 类型, [Description("")] string 内容); - /// - /// 置致命错误提示 - /// - /// - /// - /// - [DllImport("CQP.dll")] + /// + /// 置致命错误提示 + /// + /// + /// + /// + [DllImport("CQP.dll")] public static extern int CQ_setFatal([Description("")] int AuthCode, [Description("")] string 错误信息); - /// - /// 取群成员信息(支持缓存) - /// - /// - /// 目标QQ所在群 - /// 目标QQ - /// - /// - [DllImport("CQP.dll")] + /// + /// 取群成员信息(支持缓存) + /// + /// + /// 目标帐号所在群 + /// 目标帐号 + /// + /// + [DllImport("CQP.dll")] public static extern string CQ_getGroupMemberInfoV2([Description("")] int AuthCode, - [Description("目标QQ所在群")] long 群号, [Description("目标QQ")] long QQID, [Description("")] bool 不使用缓存); - - /// - /// 取群成员列表 - /// - /// - /// 目标QQ所在群 - /// - [DllImport("CQP.dll")] + [Description("目标帐号所在群")] long 群号, [Description("目标帐号")] long Account, [Description("")] bool 不使用缓存); + + /// + /// 取群成员列表 + /// + /// + /// 目标帐号所在群 + /// + [DllImport("CQP.dll")] public static extern string CQ_getGroupMemberList([Description("")] int AuthCode, - [Description("目标QQ所在群")] long 群号); - - /// - /// 取群列表 - /// - /// - /// - [DllImport("CQP.dll")] + [Description("目标帐号所在群")] long 群号); + + /// + /// 取群列表 + /// + /// + /// + [DllImport("CQP.dll")] public static extern string CQ_getGroupList([Description("")] int AuthCode); - /// - /// 取陌生人信息(支持缓存) - /// - /// - /// 目标QQ - /// - /// - [DllImport("CQP.dll")] + /// + /// 取好友列表 + /// + /// + /// 保留参数,请传入“假” + /// + [DllImport("CQP.dll")] + public static extern string CQ_getFriendList([Description("")] int AuthCode, + [Description("保留参数,请传入“假”")] bool reserved); + + /// + /// 取陌生人信息(支持缓存) + /// + /// + /// 目标帐号 + /// + /// + [DllImport("CQP.dll")] public static extern string CQ_getStrangerInfo([Description("")] int AuthCode, - [Description("目标QQ")] long QQID, [Description("")] bool 不使用缓存); - - /// - /// - /// 址 - /// 址 - /// - /// - /// 址 - /// 0 - /// 0 - /// - [DllImport("CQP.dll")] + [Description("目标帐号")] long Account, [Description("")] bool 不使用缓存); + + /// + /// 取群信息(支持缓存) + /// + /// + /// 目标群 + /// + /// + [DllImport("CQP.dll")] + public static extern string CQ_getGroupInfo([Description("")] int AuthCode, [Description("目标群")] long 群号, + [Description("")] bool 不使用缓存); + + /// + /// + /// + /// 址 + /// 址 + /// + /// + /// 址 + /// 0 + /// 0 + /// + [DllImport("CQP.dll")] public static extern bool CryptStringToBinaryA([Description("址")] string pszString, [Description("址")] int cchString, [Description("")] int dwFlags, [Description("")] int pbBinary, [Description("址")] int pcbBinary, [Description("0")] int pdwSkip, [Description("0")] int pdwFlags); - /// - /// - /// 址 - /// 址 - /// - /// 址 - /// 址 - /// 0 - /// 0 - /// - [DllImport("CQP.dll")] + /// + /// + /// + /// 址 + /// 址 + /// + /// 址 + /// 址 + /// 0 + /// 0 + /// + [DllImport("CQP.dll")] public static extern bool CryptStringToBinaryA([Description("址")] string pszString, [Description("址")] int cchString, [Description("")] int dwFlags, [Description("址")] byte[] pbBinary, [Description("址")] int pcbBinary, [Description("0")] int pdwSkip, [Description("0")] int pdwFlags); diff --git a/src/Newbe.Mahua.CQP.Native/Newbe.Mahua.CQP.Native.csproj b/src/Newbe.Mahua.CQP.Native/Newbe.Mahua.CQP.Native.csproj index 47d322c..5b2c32d 100644 --- a/src/Newbe.Mahua.CQP.Native/Newbe.Mahua.CQP.Native.csproj +++ b/src/Newbe.Mahua.CQP.Native/Newbe.Mahua.CQP.Native.csproj @@ -55,8 +55,8 @@ 2 - - ..\packages\Autofac.4.9.1\lib\net45\Autofac.dll + + ..\packages\Autofac.4.9.4\lib\net45\Autofac.dll True diff --git a/src/Newbe.Mahua.CQP.Native/packages.config b/src/Newbe.Mahua.CQP.Native/packages.config index 47324c7..b1f1fe0 100644 --- a/src/Newbe.Mahua.CQP.Native/packages.config +++ b/src/Newbe.Mahua.CQP.Native/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/src/Newbe.Mahua.CQP/CqpMahuaApiHandler.cs b/src/Newbe.Mahua.CQP/CqpMahuaApiHandler.cs index ab95d73..c02c0f2 100644 --- a/src/Newbe.Mahua.CQP/CqpMahuaApiHandler.cs +++ b/src/Newbe.Mahua.CQP/CqpMahuaApiHandler.cs @@ -5,13 +5,12 @@ // this file is generate from tools, do not change this file -// generate time 2019/01/23 +// generate time 2019/12/15 namespace Newbe.Mahua.CQP { public class CqpMahuaApiHandler : IPlatformMahuaApiHandler { - private readonly IMahuaCenter _mahuaCenter; private readonly ICqpApi _cqpApi; private readonly ICqpAuthCodeContainer _cqpAuthCodeContainer; @@ -25,161 +24,227 @@ public CqpMahuaApiHandler( _cqpApi = cqpApi; _cqpAuthCodeContainer = cqpAuthCodeContainer; } + public Task Run(string typeCode, IReadOnlyDictionary data) { switch (typeCode) { case "CQ_sendPrivateMsg": var CQ_sendPrivateMsgResult = - _cqpApi.CQ_sendPrivateMsg(AuthCode: _cqpAuthCodeContainer.AuthCode, QQID: Convert.ToInt64(data["QQID"]), msg: data["msg"].ToString()); + _cqpApi.CQ_sendPrivateMsg(AuthCode: _cqpAuthCodeContainer.AuthCode, + Account: Convert.ToInt64(data["Account"]), msg: data["msg"].ToString()); return _mahuaCenter.HandleMahuaOutput(new CQ_sendPrivateMsgApiOut - { Result = CQ_sendPrivateMsgResult }); + {Result = CQ_sendPrivateMsgResult}); case "CQ_sendGroupMsg": var CQ_sendGroupMsgResult = - _cqpApi.CQ_sendGroupMsg(AuthCode: _cqpAuthCodeContainer.AuthCode, 群号: Convert.ToInt64(data["群号"]), msg: data["msg"].ToString()); + _cqpApi.CQ_sendGroupMsg(AuthCode: _cqpAuthCodeContainer.AuthCode, + 群号: Convert.ToInt64(data["群号"]), msg: data["msg"].ToString()); return _mahuaCenter.HandleMahuaOutput(new CQ_sendGroupMsgApiOut - { Result = CQ_sendGroupMsgResult }); + {Result = CQ_sendGroupMsgResult}); case "CQ_sendDiscussMsg": var CQ_sendDiscussMsgResult = - _cqpApi.CQ_sendDiscussMsg(AuthCode: _cqpAuthCodeContainer.AuthCode, 讨论组号: Convert.ToInt64(data["讨论组号"]), msg: data["msg"].ToString()); + _cqpApi.CQ_sendDiscussMsg(AuthCode: _cqpAuthCodeContainer.AuthCode, + 讨论组号: Convert.ToInt64(data["讨论组号"]), msg: data["msg"].ToString()); return _mahuaCenter.HandleMahuaOutput(new CQ_sendDiscussMsgApiOut - { Result = CQ_sendDiscussMsgResult }); + {Result = CQ_sendDiscussMsgResult}); case "CQ_deleteMsg": var CQ_deleteMsgResult = - _cqpApi.CQ_deleteMsg(AuthCode: _cqpAuthCodeContainer.AuthCode, MsgId: Convert.ToInt64(data["MsgId"])); + _cqpApi.CQ_deleteMsg(AuthCode: _cqpAuthCodeContainer.AuthCode, + MsgId: Convert.ToInt64(data["MsgId"])); return _mahuaCenter.HandleMahuaOutput(new CQ_deleteMsgApiOut - { Result = CQ_deleteMsgResult }); + {Result = CQ_deleteMsgResult}); case "CQ_sendLikeV2": var CQ_sendLikeV2Result = - _cqpApi.CQ_sendLikeV2(AuthCode: _cqpAuthCodeContainer.AuthCode, QQID: Convert.ToInt64(data["QQID"]), times: Convert.ToInt32(data["times"])); + _cqpApi.CQ_sendLikeV2(AuthCode: _cqpAuthCodeContainer.AuthCode, + Account: Convert.ToInt64(data["Account"]), times: Convert.ToInt32(data["times"])); return _mahuaCenter.HandleMahuaOutput(new CQ_sendLikeV2ApiOut - { Result = CQ_sendLikeV2Result }); - case "CQ_getCookies": - var CQ_getCookiesResult = - _cqpApi.CQ_getCookies(AuthCode: _cqpAuthCodeContainer.AuthCode); - return _mahuaCenter.HandleMahuaOutput(new CQ_getCookiesApiOut - { Result = CQ_getCookiesResult }); + {Result = CQ_sendLikeV2Result}); + case "CQ_getCookiesV2": + var CQ_getCookiesV2Result = + _cqpApi.CQ_getCookiesV2(AuthCode: _cqpAuthCodeContainer.AuthCode, + domain: data["domain"].ToString()); + return _mahuaCenter.HandleMahuaOutput(new CQ_getCookiesV2ApiOut + {Result = CQ_getCookiesV2Result}); case "CQ_getRecord": var CQ_getRecordResult = - _cqpApi.CQ_getRecord(AuthCode: _cqpAuthCodeContainer.AuthCode, file: data["file"].ToString(), outformat: data["outformat"].ToString()); + _cqpApi.CQ_getRecord(AuthCode: _cqpAuthCodeContainer.AuthCode, file: data["file"].ToString(), + outformat: data["outformat"].ToString()); return _mahuaCenter.HandleMahuaOutput(new CQ_getRecordApiOut - { Result = CQ_getRecordResult }); + {Result = CQ_getRecordResult}); + case "CQ_getRecordV2": + var CQ_getRecordV2Result = + _cqpApi.CQ_getRecordV2(AuthCode: _cqpAuthCodeContainer.AuthCode, file: data["file"].ToString(), + outformat: data["outformat"].ToString()); + return _mahuaCenter.HandleMahuaOutput(new CQ_getRecordV2ApiOut + {Result = CQ_getRecordV2Result}); + case "CQ_getImage": + var CQ_getImageResult = + _cqpApi.CQ_getImage(AuthCode: _cqpAuthCodeContainer.AuthCode, file: data["file"].ToString()); + return _mahuaCenter.HandleMahuaOutput(new CQ_getImageApiOut + {Result = CQ_getImageResult}); + case "CQ_canSendImage": + var CQ_canSendImageResult = + _cqpApi.CQ_canSendImage(AuthCode: _cqpAuthCodeContainer.AuthCode); + return _mahuaCenter.HandleMahuaOutput(new CQ_canSendImageApiOut + {Result = CQ_canSendImageResult}); + case "CQ_canSendRecord": + var CQ_canSendRecordResult = + _cqpApi.CQ_canSendRecord(AuthCode: _cqpAuthCodeContainer.AuthCode); + return _mahuaCenter.HandleMahuaOutput(new CQ_canSendRecordApiOut + {Result = CQ_canSendRecordResult}); case "CQ_getCsrfToken": var CQ_getCsrfTokenResult = - _cqpApi.CQ_getCsrfToken(AuthCode: _cqpAuthCodeContainer.AuthCode); + _cqpApi.CQ_getCsrfToken(AuthCode: _cqpAuthCodeContainer.AuthCode); return _mahuaCenter.HandleMahuaOutput(new CQ_getCsrfTokenApiOut - { Result = CQ_getCsrfTokenResult }); + {Result = CQ_getCsrfTokenResult}); case "CQ_getAppDirectory": var CQ_getAppDirectoryResult = - _cqpApi.CQ_getAppDirectory(AuthCode: _cqpAuthCodeContainer.AuthCode); + _cqpApi.CQ_getAppDirectory(AuthCode: _cqpAuthCodeContainer.AuthCode); return _mahuaCenter.HandleMahuaOutput(new CQ_getAppDirectoryApiOut - { Result = CQ_getAppDirectoryResult }); + {Result = CQ_getAppDirectoryResult}); case "CQ_getLoginQQ": var CQ_getLoginQQResult = - _cqpApi.CQ_getLoginQQ(AuthCode: _cqpAuthCodeContainer.AuthCode); + _cqpApi.CQ_getLoginQQ(AuthCode: _cqpAuthCodeContainer.AuthCode); return _mahuaCenter.HandleMahuaOutput(new CQ_getLoginQQApiOut - { Result = CQ_getLoginQQResult }); + {Result = CQ_getLoginQQResult}); case "CQ_getLoginNick": var CQ_getLoginNickResult = - _cqpApi.CQ_getLoginNick(AuthCode: _cqpAuthCodeContainer.AuthCode); + _cqpApi.CQ_getLoginNick(AuthCode: _cqpAuthCodeContainer.AuthCode); return _mahuaCenter.HandleMahuaOutput(new CQ_getLoginNickApiOut - { Result = CQ_getLoginNickResult }); + {Result = CQ_getLoginNickResult}); case "CQ_setGroupKick": var CQ_setGroupKickResult = - _cqpApi.CQ_setGroupKick(AuthCode: _cqpAuthCodeContainer.AuthCode, 群号: Convert.ToInt64(data["群号"]), QQID: Convert.ToInt64(data["QQID"]), 拒绝再加群: Convert.ToBoolean(data["拒绝再加群"])); + _cqpApi.CQ_setGroupKick(AuthCode: _cqpAuthCodeContainer.AuthCode, + 群号: Convert.ToInt64(data["群号"]), Account: Convert.ToInt64(data["Account"]), + 拒绝再加群: Convert.ToBoolean(data["拒绝再加群"])); return _mahuaCenter.HandleMahuaOutput(new CQ_setGroupKickApiOut - { Result = CQ_setGroupKickResult }); + {Result = CQ_setGroupKickResult}); case "CQ_setGroupBan": var CQ_setGroupBanResult = - _cqpApi.CQ_setGroupBan(AuthCode: _cqpAuthCodeContainer.AuthCode, 群号: Convert.ToInt64(data["群号"]), QQID: Convert.ToInt64(data["QQID"]), 禁言时间: Convert.ToInt64(data["禁言时间"])); + _cqpApi.CQ_setGroupBan(AuthCode: _cqpAuthCodeContainer.AuthCode, + 群号: Convert.ToInt64(data["群号"]), Account: Convert.ToInt64(data["Account"]), + 禁言时间: Convert.ToInt64(data["禁言时间"])); return _mahuaCenter.HandleMahuaOutput(new CQ_setGroupBanApiOut - { Result = CQ_setGroupBanResult }); + {Result = CQ_setGroupBanResult}); case "CQ_setGroupAdmin": var CQ_setGroupAdminResult = - _cqpApi.CQ_setGroupAdmin(AuthCode: _cqpAuthCodeContainer.AuthCode, 群号: Convert.ToInt64(data["群号"]), QQID: Convert.ToInt64(data["QQID"]), 成为管理员: Convert.ToBoolean(data["成为管理员"])); + _cqpApi.CQ_setGroupAdmin(AuthCode: _cqpAuthCodeContainer.AuthCode, + 群号: Convert.ToInt64(data["群号"]), Account: Convert.ToInt64(data["Account"]), + 成为管理员: Convert.ToBoolean(data["成为管理员"])); return _mahuaCenter.HandleMahuaOutput(new CQ_setGroupAdminApiOut - { Result = CQ_setGroupAdminResult }); + {Result = CQ_setGroupAdminResult}); case "CQ_setGroupSpecialTitle": var CQ_setGroupSpecialTitleResult = - _cqpApi.CQ_setGroupSpecialTitle(AuthCode: _cqpAuthCodeContainer.AuthCode, 群号: Convert.ToInt64(data["群号"]), QQID: Convert.ToInt64(data["QQID"]), 头衔: data["头衔"].ToString(), 过期时间: Convert.ToInt64(data["过期时间"])); + _cqpApi.CQ_setGroupSpecialTitle(AuthCode: _cqpAuthCodeContainer.AuthCode, + 群号: Convert.ToInt64(data["群号"]), Account: Convert.ToInt64(data["Account"]), + 头衔: data["头衔"].ToString(), 过期时间: Convert.ToInt64(data["过期时间"])); return _mahuaCenter.HandleMahuaOutput(new CQ_setGroupSpecialTitleApiOut - { Result = CQ_setGroupSpecialTitleResult }); + {Result = CQ_setGroupSpecialTitleResult}); case "CQ_setGroupWholeBan": var CQ_setGroupWholeBanResult = - _cqpApi.CQ_setGroupWholeBan(AuthCode: _cqpAuthCodeContainer.AuthCode, 群号: Convert.ToInt64(data["群号"]), 开启禁言: Convert.ToBoolean(data["开启禁言"])); + _cqpApi.CQ_setGroupWholeBan(AuthCode: _cqpAuthCodeContainer.AuthCode, + 群号: Convert.ToInt64(data["群号"]), 开启禁言: Convert.ToBoolean(data["开启禁言"])); return _mahuaCenter.HandleMahuaOutput(new CQ_setGroupWholeBanApiOut - { Result = CQ_setGroupWholeBanResult }); + {Result = CQ_setGroupWholeBanResult}); case "CQ_setGroupAnonymousBan": var CQ_setGroupAnonymousBanResult = - _cqpApi.CQ_setGroupAnonymousBan(AuthCode: _cqpAuthCodeContainer.AuthCode, 群号: Convert.ToInt64(data["群号"]), 匿名: data["匿名"].ToString(), 禁言时间: Convert.ToInt64(data["禁言时间"])); + _cqpApi.CQ_setGroupAnonymousBan(AuthCode: _cqpAuthCodeContainer.AuthCode, + 群号: Convert.ToInt64(data["群号"]), 匿名: data["匿名"].ToString(), + 禁言时间: Convert.ToInt64(data["禁言时间"])); return _mahuaCenter.HandleMahuaOutput(new CQ_setGroupAnonymousBanApiOut - { Result = CQ_setGroupAnonymousBanResult }); + {Result = CQ_setGroupAnonymousBanResult}); case "CQ_setGroupAnonymous": var CQ_setGroupAnonymousResult = - _cqpApi.CQ_setGroupAnonymous(AuthCode: _cqpAuthCodeContainer.AuthCode, 群号: Convert.ToInt64(data["群号"]), 开启匿名: Convert.ToBoolean(data["开启匿名"])); + _cqpApi.CQ_setGroupAnonymous(AuthCode: _cqpAuthCodeContainer.AuthCode, + 群号: Convert.ToInt64(data["群号"]), 开启匿名: Convert.ToBoolean(data["开启匿名"])); return _mahuaCenter.HandleMahuaOutput(new CQ_setGroupAnonymousApiOut - { Result = CQ_setGroupAnonymousResult }); + {Result = CQ_setGroupAnonymousResult}); case "CQ_setGroupCard": var CQ_setGroupCardResult = - _cqpApi.CQ_setGroupCard(AuthCode: _cqpAuthCodeContainer.AuthCode, 群号: Convert.ToInt64(data["群号"]), QQID: Convert.ToInt64(data["QQID"]), 新名片_昵称: data["新名片_昵称"].ToString()); + _cqpApi.CQ_setGroupCard(AuthCode: _cqpAuthCodeContainer.AuthCode, + 群号: Convert.ToInt64(data["群号"]), Account: Convert.ToInt64(data["Account"]), + 新名片_昵称: data["新名片_昵称"].ToString()); return _mahuaCenter.HandleMahuaOutput(new CQ_setGroupCardApiOut - { Result = CQ_setGroupCardResult }); + {Result = CQ_setGroupCardResult}); case "CQ_setGroupLeave": var CQ_setGroupLeaveResult = - _cqpApi.CQ_setGroupLeave(AuthCode: _cqpAuthCodeContainer.AuthCode, 群号: Convert.ToInt64(data["群号"]), 是否解散: Convert.ToBoolean(data["是否解散"])); + _cqpApi.CQ_setGroupLeave(AuthCode: _cqpAuthCodeContainer.AuthCode, + 群号: Convert.ToInt64(data["群号"]), 是否解散: Convert.ToBoolean(data["是否解散"])); return _mahuaCenter.HandleMahuaOutput(new CQ_setGroupLeaveApiOut - { Result = CQ_setGroupLeaveResult }); + {Result = CQ_setGroupLeaveResult}); case "CQ_setDiscussLeave": var CQ_setDiscussLeaveResult = - _cqpApi.CQ_setDiscussLeave(AuthCode: _cqpAuthCodeContainer.AuthCode, 讨论组号: Convert.ToInt64(data["讨论组号"])); + _cqpApi.CQ_setDiscussLeave(AuthCode: _cqpAuthCodeContainer.AuthCode, + 讨论组号: Convert.ToInt64(data["讨论组号"])); return _mahuaCenter.HandleMahuaOutput(new CQ_setDiscussLeaveApiOut - { Result = CQ_setDiscussLeaveResult }); + {Result = CQ_setDiscussLeaveResult}); case "CQ_setFriendAddRequest": var CQ_setFriendAddRequestResult = - _cqpApi.CQ_setFriendAddRequest(AuthCode: _cqpAuthCodeContainer.AuthCode, 请求反馈标识: data["请求反馈标识"].ToString(), 反馈类型: Convert.ToInt32(data["反馈类型"]), 备注: data["备注"].ToString()); + _cqpApi.CQ_setFriendAddRequest(AuthCode: _cqpAuthCodeContainer.AuthCode, + 请求反馈标识: data["请求反馈标识"].ToString(), 反馈类型: Convert.ToInt32(data["反馈类型"]), + 备注: data["备注"].ToString()); return _mahuaCenter.HandleMahuaOutput(new CQ_setFriendAddRequestApiOut - { Result = CQ_setFriendAddRequestResult }); + {Result = CQ_setFriendAddRequestResult}); case "CQ_setGroupAddRequestV2": var CQ_setGroupAddRequestV2Result = - _cqpApi.CQ_setGroupAddRequestV2(AuthCode: _cqpAuthCodeContainer.AuthCode, 请求反馈标识: data["请求反馈标识"].ToString(), 请求类型: Convert.ToInt32(data["请求类型"]), 反馈类型: Convert.ToInt32(data["反馈类型"]), 理由: data["理由"].ToString()); + _cqpApi.CQ_setGroupAddRequestV2(AuthCode: _cqpAuthCodeContainer.AuthCode, + 请求反馈标识: data["请求反馈标识"].ToString(), 请求类型: Convert.ToInt32(data["请求类型"]), + 反馈类型: Convert.ToInt32(data["反馈类型"]), 理由: data["理由"].ToString()); return _mahuaCenter.HandleMahuaOutput(new CQ_setGroupAddRequestV2ApiOut - { Result = CQ_setGroupAddRequestV2Result }); + {Result = CQ_setGroupAddRequestV2Result}); case "CQ_addLog": var CQ_addLogResult = - _cqpApi.CQ_addLog(AuthCode: _cqpAuthCodeContainer.AuthCode, 优先级: Convert.ToInt32(data["优先级"]), 类型: data["类型"].ToString(), 内容: data["内容"].ToString()); + _cqpApi.CQ_addLog(AuthCode: _cqpAuthCodeContainer.AuthCode, 优先级: Convert.ToInt32(data["优先级"]), + 类型: data["类型"].ToString(), 内容: data["内容"].ToString()); return _mahuaCenter.HandleMahuaOutput(new CQ_addLogApiOut - { Result = CQ_addLogResult }); + {Result = CQ_addLogResult}); case "CQ_setFatal": var CQ_setFatalResult = - _cqpApi.CQ_setFatal(AuthCode: _cqpAuthCodeContainer.AuthCode, 错误信息: data["错误信息"].ToString()); + _cqpApi.CQ_setFatal(AuthCode: _cqpAuthCodeContainer.AuthCode, 错误信息: data["错误信息"].ToString()); return _mahuaCenter.HandleMahuaOutput(new CQ_setFatalApiOut - { Result = CQ_setFatalResult }); + {Result = CQ_setFatalResult}); case "CQ_getGroupMemberInfoV2": var CQ_getGroupMemberInfoV2Result = - _cqpApi.CQ_getGroupMemberInfoV2(AuthCode: _cqpAuthCodeContainer.AuthCode, 群号: Convert.ToInt64(data["群号"]), QQID: Convert.ToInt64(data["QQID"]), 不使用缓存: Convert.ToBoolean(data["不使用缓存"])); + _cqpApi.CQ_getGroupMemberInfoV2(AuthCode: _cqpAuthCodeContainer.AuthCode, + 群号: Convert.ToInt64(data["群号"]), Account: Convert.ToInt64(data["Account"]), + 不使用缓存: Convert.ToBoolean(data["不使用缓存"])); return _mahuaCenter.HandleMahuaOutput(new CQ_getGroupMemberInfoV2ApiOut - { Result = CQ_getGroupMemberInfoV2Result }); + {Result = CQ_getGroupMemberInfoV2Result}); case "CQ_getGroupMemberList": var CQ_getGroupMemberListResult = - _cqpApi.CQ_getGroupMemberList(AuthCode: _cqpAuthCodeContainer.AuthCode, 群号: Convert.ToInt64(data["群号"])); + _cqpApi.CQ_getGroupMemberList(AuthCode: _cqpAuthCodeContainer.AuthCode, + 群号: Convert.ToInt64(data["群号"])); return _mahuaCenter.HandleMahuaOutput(new CQ_getGroupMemberListApiOut - { Result = CQ_getGroupMemberListResult }); + {Result = CQ_getGroupMemberListResult}); case "CQ_getGroupList": var CQ_getGroupListResult = - _cqpApi.CQ_getGroupList(AuthCode: _cqpAuthCodeContainer.AuthCode); + _cqpApi.CQ_getGroupList(AuthCode: _cqpAuthCodeContainer.AuthCode); return _mahuaCenter.HandleMahuaOutput(new CQ_getGroupListApiOut - { Result = CQ_getGroupListResult }); + {Result = CQ_getGroupListResult}); + case "CQ_getFriendList": + var CQ_getFriendListResult = + _cqpApi.CQ_getFriendList(AuthCode: _cqpAuthCodeContainer.AuthCode, + reserved: Convert.ToBoolean(data["reserved"])); + return _mahuaCenter.HandleMahuaOutput(new CQ_getFriendListApiOut + {Result = CQ_getFriendListResult}); case "CQ_getStrangerInfo": var CQ_getStrangerInfoResult = - _cqpApi.CQ_getStrangerInfo(AuthCode: _cqpAuthCodeContainer.AuthCode, QQID: Convert.ToInt64(data["QQID"]), 不使用缓存: Convert.ToBoolean(data["不使用缓存"])); + _cqpApi.CQ_getStrangerInfo(AuthCode: _cqpAuthCodeContainer.AuthCode, + Account: Convert.ToInt64(data["Account"]), 不使用缓存: Convert.ToBoolean(data["不使用缓存"])); return _mahuaCenter.HandleMahuaOutput(new CQ_getStrangerInfoApiOut - { Result = CQ_getStrangerInfoResult }); - + {Result = CQ_getStrangerInfoResult}); + case "CQ_getGroupInfo": + var CQ_getGroupInfoResult = + _cqpApi.CQ_getGroupInfo(AuthCode: _cqpAuthCodeContainer.AuthCode, + 群号: Convert.ToInt64(data["群号"]), 不使用缓存: Convert.ToBoolean(data["不使用缓存"])); + return _mahuaCenter.HandleMahuaOutput(new CQ_getGroupInfoApiOut + {Result = CQ_getGroupInfoResult}); default: throw new ArgumentOutOfRangeException(nameof(typeCode)); } } } + /// /// api out of method CQ_sendPrivateMsg /// @@ -188,6 +253,7 @@ public class CQ_sendPrivateMsgApiOut : CqpApiOutput public int Result { get; set; } public override string TypeCode => nameof(CQ_sendPrivateMsgApiOut); } + /// /// api out of method CQ_sendGroupMsg /// @@ -196,6 +262,7 @@ public class CQ_sendGroupMsgApiOut : CqpApiOutput public int Result { get; set; } public override string TypeCode => nameof(CQ_sendGroupMsgApiOut); } + /// /// api out of method CQ_sendDiscussMsg /// @@ -204,6 +271,7 @@ public class CQ_sendDiscussMsgApiOut : CqpApiOutput public int Result { get; set; } public override string TypeCode => nameof(CQ_sendDiscussMsgApiOut); } + /// /// api out of method CQ_deleteMsg /// @@ -212,6 +280,7 @@ public class CQ_deleteMsgApiOut : CqpApiOutput public int Result { get; set; } public override string TypeCode => nameof(CQ_deleteMsgApiOut); } + /// /// api out of method CQ_sendLikeV2 /// @@ -220,14 +289,16 @@ public class CQ_sendLikeV2ApiOut : CqpApiOutput public int Result { get; set; } public override string TypeCode => nameof(CQ_sendLikeV2ApiOut); } + /// - /// api out of method CQ_getCookies + /// api out of method CQ_getCookiesV2 /// - public class CQ_getCookiesApiOut : CqpApiOutput + public class CQ_getCookiesV2ApiOut : CqpApiOutput { public string Result { get; set; } - public override string TypeCode => nameof(CQ_getCookiesApiOut); + public override string TypeCode => nameof(CQ_getCookiesV2ApiOut); } + /// /// api out of method CQ_getRecord /// @@ -236,6 +307,43 @@ public class CQ_getRecordApiOut : CqpApiOutput public string Result { get; set; } public override string TypeCode => nameof(CQ_getRecordApiOut); } + + /// + /// api out of method CQ_getRecordV2 + /// + public class CQ_getRecordV2ApiOut : CqpApiOutput + { + public string Result { get; set; } + public override string TypeCode => nameof(CQ_getRecordV2ApiOut); + } + + /// + /// api out of method CQ_getImage + /// + public class CQ_getImageApiOut : CqpApiOutput + { + public string Result { get; set; } + public override string TypeCode => nameof(CQ_getImageApiOut); + } + + /// + /// api out of method CQ_canSendImage + /// + public class CQ_canSendImageApiOut : CqpApiOutput + { + public int Result { get; set; } + public override string TypeCode => nameof(CQ_canSendImageApiOut); + } + + /// + /// api out of method CQ_canSendRecord + /// + public class CQ_canSendRecordApiOut : CqpApiOutput + { + public int Result { get; set; } + public override string TypeCode => nameof(CQ_canSendRecordApiOut); + } + /// /// api out of method CQ_getCsrfToken /// @@ -244,6 +352,7 @@ public class CQ_getCsrfTokenApiOut : CqpApiOutput public int Result { get; set; } public override string TypeCode => nameof(CQ_getCsrfTokenApiOut); } + /// /// api out of method CQ_getAppDirectory /// @@ -252,6 +361,7 @@ public class CQ_getAppDirectoryApiOut : CqpApiOutput public string Result { get; set; } public override string TypeCode => nameof(CQ_getAppDirectoryApiOut); } + /// /// api out of method CQ_getLoginQQ /// @@ -260,6 +370,7 @@ public class CQ_getLoginQQApiOut : CqpApiOutput public long Result { get; set; } public override string TypeCode => nameof(CQ_getLoginQQApiOut); } + /// /// api out of method CQ_getLoginNick /// @@ -268,6 +379,7 @@ public class CQ_getLoginNickApiOut : CqpApiOutput public string Result { get; set; } public override string TypeCode => nameof(CQ_getLoginNickApiOut); } + /// /// api out of method CQ_setGroupKick /// @@ -276,6 +388,7 @@ public class CQ_setGroupKickApiOut : CqpApiOutput public int Result { get; set; } public override string TypeCode => nameof(CQ_setGroupKickApiOut); } + /// /// api out of method CQ_setGroupBan /// @@ -284,6 +397,7 @@ public class CQ_setGroupBanApiOut : CqpApiOutput public int Result { get; set; } public override string TypeCode => nameof(CQ_setGroupBanApiOut); } + /// /// api out of method CQ_setGroupAdmin /// @@ -292,6 +406,7 @@ public class CQ_setGroupAdminApiOut : CqpApiOutput public int Result { get; set; } public override string TypeCode => nameof(CQ_setGroupAdminApiOut); } + /// /// api out of method CQ_setGroupSpecialTitle /// @@ -300,6 +415,7 @@ public class CQ_setGroupSpecialTitleApiOut : CqpApiOutput public int Result { get; set; } public override string TypeCode => nameof(CQ_setGroupSpecialTitleApiOut); } + /// /// api out of method CQ_setGroupWholeBan /// @@ -308,6 +424,7 @@ public class CQ_setGroupWholeBanApiOut : CqpApiOutput public int Result { get; set; } public override string TypeCode => nameof(CQ_setGroupWholeBanApiOut); } + /// /// api out of method CQ_setGroupAnonymousBan /// @@ -316,6 +433,7 @@ public class CQ_setGroupAnonymousBanApiOut : CqpApiOutput public int Result { get; set; } public override string TypeCode => nameof(CQ_setGroupAnonymousBanApiOut); } + /// /// api out of method CQ_setGroupAnonymous /// @@ -324,6 +442,7 @@ public class CQ_setGroupAnonymousApiOut : CqpApiOutput public int Result { get; set; } public override string TypeCode => nameof(CQ_setGroupAnonymousApiOut); } + /// /// api out of method CQ_setGroupCard /// @@ -332,6 +451,7 @@ public class CQ_setGroupCardApiOut : CqpApiOutput public int Result { get; set; } public override string TypeCode => nameof(CQ_setGroupCardApiOut); } + /// /// api out of method CQ_setGroupLeave /// @@ -340,6 +460,7 @@ public class CQ_setGroupLeaveApiOut : CqpApiOutput public int Result { get; set; } public override string TypeCode => nameof(CQ_setGroupLeaveApiOut); } + /// /// api out of method CQ_setDiscussLeave /// @@ -348,6 +469,7 @@ public class CQ_setDiscussLeaveApiOut : CqpApiOutput public int Result { get; set; } public override string TypeCode => nameof(CQ_setDiscussLeaveApiOut); } + /// /// api out of method CQ_setFriendAddRequest /// @@ -356,6 +478,7 @@ public class CQ_setFriendAddRequestApiOut : CqpApiOutput public int Result { get; set; } public override string TypeCode => nameof(CQ_setFriendAddRequestApiOut); } + /// /// api out of method CQ_setGroupAddRequestV2 /// @@ -364,6 +487,7 @@ public class CQ_setGroupAddRequestV2ApiOut : CqpApiOutput public int Result { get; set; } public override string TypeCode => nameof(CQ_setGroupAddRequestV2ApiOut); } + /// /// api out of method CQ_addLog /// @@ -372,6 +496,7 @@ public class CQ_addLogApiOut : CqpApiOutput public int Result { get; set; } public override string TypeCode => nameof(CQ_addLogApiOut); } + /// /// api out of method CQ_setFatal /// @@ -380,6 +505,7 @@ public class CQ_setFatalApiOut : CqpApiOutput public int Result { get; set; } public override string TypeCode => nameof(CQ_setFatalApiOut); } + /// /// api out of method CQ_getGroupMemberInfoV2 /// @@ -388,6 +514,7 @@ public class CQ_getGroupMemberInfoV2ApiOut : CqpApiOutput public string Result { get; set; } public override string TypeCode => nameof(CQ_getGroupMemberInfoV2ApiOut); } + /// /// api out of method CQ_getGroupMemberList /// @@ -396,6 +523,7 @@ public class CQ_getGroupMemberListApiOut : CqpApiOutput public string Result { get; set; } public override string TypeCode => nameof(CQ_getGroupMemberListApiOut); } + /// /// api out of method CQ_getGroupList /// @@ -404,6 +532,16 @@ public class CQ_getGroupListApiOut : CqpApiOutput public string Result { get; set; } public override string TypeCode => nameof(CQ_getGroupListApiOut); } + + /// + /// api out of method CQ_getFriendList + /// + public class CQ_getFriendListApiOut : CqpApiOutput + { + public string Result { get; set; } + public override string TypeCode => nameof(CQ_getFriendListApiOut); + } + /// /// api out of method CQ_getStrangerInfo /// @@ -412,4 +550,13 @@ public class CQ_getStrangerInfoApiOut : CqpApiOutput public string Result { get; set; } public override string TypeCode => nameof(CQ_getStrangerInfoApiOut); } -} + + /// + /// api out of method CQ_getGroupInfo + /// + public class CQ_getGroupInfoApiOut : CqpApiOutput + { + public string Result { get; set; } + public override string TypeCode => nameof(CQ_getGroupInfoApiOut); + } +} \ No newline at end of file diff --git a/src/Newbe.Mahua.DevJobs.Tests/Newbe.Mahua.DevJobs.Tests.csproj b/src/Newbe.Mahua.DevJobs.Tests/Newbe.Mahua.DevJobs.Tests.csproj index 809675a..b112d0a 100644 --- a/src/Newbe.Mahua.DevJobs.Tests/Newbe.Mahua.DevJobs.Tests.csproj +++ b/src/Newbe.Mahua.DevJobs.Tests/Newbe.Mahua.DevJobs.Tests.csproj @@ -7,8 +7,8 @@ - - + + diff --git a/src/Newbe.Mahua.DevJobs/Jobs/HttpApiInputControllers/CqpJob.cs b/src/Newbe.Mahua.DevJobs/Jobs/HttpApiInputControllers/CqpJob.cs index bd4556f..6eb79fc 100644 --- a/src/Newbe.Mahua.DevJobs/Jobs/HttpApiInputControllers/CqpJob.cs +++ b/src/Newbe.Mahua.DevJobs/Jobs/HttpApiInputControllers/CqpJob.cs @@ -7,15 +7,18 @@ namespace Newbe.Mahua.NativeApiClassfy.Jobs.HttpApiInputControllers { public class CqpJob : IJob { + private readonly ISourceFileProvider _sourceFileProvider; private readonly INativeApiInfoProvider _nativeApiInfoProvider; private readonly IHttpApiInputModelsGenerator _httpApiInputModelsGenerator; public CqpJob( INativeApiInfoProvider nativeApiInfoProvider, - IHttpApiInputModelsGenerator httpApiInputModelsGenerator) + IHttpApiInputModelsGenerator httpApiInputModelsGenerator, + ISourceFileProvider sourceFileProvider) { _nativeApiInfoProvider = nativeApiInfoProvider; _httpApiInputModelsGenerator = httpApiInputModelsGenerator; + _sourceFileProvider = sourceFileProvider; } public Task Run() @@ -28,7 +31,9 @@ public Task Run() SkipProperties = new[] {"AuthCode"}, }); var code = CodeFormatter.FormatCode(nativeApiIn); - File.WriteAllText("../Newbe.Mahua.InputReceivers.HttpApi/Services/Controllers/CqpController.cs", + var filename = Path.Combine(_sourceFileProvider.GetBasePath(), + "Newbe.Mahua.InputReceivers.HttpApi/Services/Controllers/CqpController.cs"); + File.WriteAllText(filename, code, Encoding.UTF8); return Task.CompletedTask; diff --git a/src/Newbe.Mahua.DevJobs/Jobs/HttpApiInputControllers/MpqJob.cs b/src/Newbe.Mahua.DevJobs/Jobs/HttpApiInputControllers/MpqJob.cs index b0b39e0..f3d4494 100644 --- a/src/Newbe.Mahua.DevJobs/Jobs/HttpApiInputControllers/MpqJob.cs +++ b/src/Newbe.Mahua.DevJobs/Jobs/HttpApiInputControllers/MpqJob.cs @@ -7,15 +7,18 @@ namespace Newbe.Mahua.NativeApiClassfy.Jobs.HttpApiInputControllers { public class MpqJob : IJob { + private readonly ISourceFileProvider _sourceFileProvider; private readonly INativeApiInfoProvider _nativeApiInfoProvider; private readonly IHttpApiInputModelsGenerator _httpApiInputModelsGenerator; public MpqJob( IHttpApiInputModelsGenerator httpApiInputModelsGenerator, - INativeApiInfoProvider nativeApiInfoProvider) + INativeApiInfoProvider nativeApiInfoProvider, + ISourceFileProvider sourceFileProvider) { _httpApiInputModelsGenerator = httpApiInputModelsGenerator; _nativeApiInfoProvider = nativeApiInfoProvider; + _sourceFileProvider = sourceFileProvider; } public Task Run() @@ -27,7 +30,9 @@ public Task Run() MahuaPlatform = MahuaPlatform.Mpq }); var code = CodeFormatter.FormatCode(nativeApiIn); - File.WriteAllText("../Newbe.Mahua.InputReceivers.HttpApi/Services/Controllers/MpqController.cs", + var filename = Path.Combine(_sourceFileProvider.GetBasePath(), + "Newbe.Mahua.InputReceivers.HttpApi/Services/Controllers/MpqController.cs"); + File.WriteAllText(filename, code, Encoding.UTF8); diff --git a/src/Newbe.Mahua.DevJobs/Jobs/HttpApiInputControllers/QQLightJob.cs b/src/Newbe.Mahua.DevJobs/Jobs/HttpApiInputControllers/QQLightJob.cs index be7e9cc..a0b021e 100644 --- a/src/Newbe.Mahua.DevJobs/Jobs/HttpApiInputControllers/QQLightJob.cs +++ b/src/Newbe.Mahua.DevJobs/Jobs/HttpApiInputControllers/QQLightJob.cs @@ -7,15 +7,18 @@ namespace Newbe.Mahua.NativeApiClassfy.Jobs.HttpApiInputControllers { public class QQLightJob : IJob { + private readonly ISourceFileProvider _sourceFileProvider; private readonly INativeApiInfoProvider _nativeApiInfoProvider; private readonly IHttpApiInputModelsGenerator _httpApiInputModelsGenerator; public QQLightJob( IHttpApiInputModelsGenerator httpApiInputModelsGenerator, - INativeApiInfoProvider nativeApiInfoProvider) + INativeApiInfoProvider nativeApiInfoProvider, + ISourceFileProvider sourceFileProvider) { _httpApiInputModelsGenerator = httpApiInputModelsGenerator; _nativeApiInfoProvider = nativeApiInfoProvider; + _sourceFileProvider = sourceFileProvider; } public Task Run() @@ -28,9 +31,12 @@ public Task Run() SkipProperties = new[] {"AuthCode"}, }); var code = CodeFormatter.FormatCode(nativeApiIn); - File.WriteAllText("../Newbe.Mahua.InputReceivers.HttpApi/Services/Controllers/QQLightController.cs", + var filename = Path.Combine(_sourceFileProvider.GetBasePath(), + "Newbe.Mahua.InputReceivers.HttpApi/Services/Controllers/QQLightController.cs"); + File.WriteAllText(filename, code, Encoding.UTF8); + return Task.CompletedTask; } } diff --git a/src/Newbe.Mahua.DevJobs/Jobs/PlatformApIHandlers/CqpJob.cs b/src/Newbe.Mahua.DevJobs/Jobs/PlatformApIHandlers/CqpJob.cs index 6b82f3e..8bbe08a 100644 --- a/src/Newbe.Mahua.DevJobs/Jobs/PlatformApIHandlers/CqpJob.cs +++ b/src/Newbe.Mahua.DevJobs/Jobs/PlatformApIHandlers/CqpJob.cs @@ -7,15 +7,18 @@ namespace Newbe.Mahua.NativeApiClassfy.Jobs.PlatformApIHandlers { public class CqpJob : IJob { + private readonly ISourceFileProvider _sourceFileProvider; private readonly IApiHandlerGenerator _apiHandlerGenerator; private readonly INativeApiInfoProvider _nativeApiInfoProvider; public CqpJob( IApiHandlerGenerator apiHandlerGenerator, - INativeApiInfoProvider nativeApiInfoProvider) + INativeApiInfoProvider nativeApiInfoProvider, + ISourceFileProvider sourceFileProvider) { _apiHandlerGenerator = apiHandlerGenerator; _nativeApiInfoProvider = nativeApiInfoProvider; + _sourceFileProvider = sourceFileProvider; } public Task Run() @@ -30,9 +33,12 @@ public Task Run() AuthCodeContainerInterfaceName = "ICqpAuthCodeContainer", }); - File.WriteAllText("../Newbe.Mahua.CQP/CqpMahuaApiHandler.cs", + var filename = Path.Combine(_sourceFileProvider.GetBasePath(), + "Newbe.Mahua.CQP/CqpMahuaApiHandler.cs"); + File.WriteAllText(filename, CodeFormatter.FormatCode(apiHandler), Encoding.UTF8); + return Task.CompletedTask; } } diff --git a/src/Newbe.Mahua.DevJobs/Jobs/PlatformApIHandlers/MpqJob.cs b/src/Newbe.Mahua.DevJobs/Jobs/PlatformApIHandlers/MpqJob.cs index 5ad7d1e..47857ef 100644 --- a/src/Newbe.Mahua.DevJobs/Jobs/PlatformApIHandlers/MpqJob.cs +++ b/src/Newbe.Mahua.DevJobs/Jobs/PlatformApIHandlers/MpqJob.cs @@ -7,15 +7,18 @@ namespace Newbe.Mahua.NativeApiClassfy.Jobs.PlatformApIHandlers { public class MpqJob : IJob { + private readonly ISourceFileProvider _sourceFileProvider; private readonly IApiHandlerGenerator _apiHandlerGenerator; private readonly INativeApiInfoProvider _nativeApiInfoProvider; public MpqJob( IApiHandlerGenerator apiHandlerGenerator, - INativeApiInfoProvider nativeApiInfoProvider) + INativeApiInfoProvider nativeApiInfoProvider, + ISourceFileProvider sourceFileProvider) { _apiHandlerGenerator = apiHandlerGenerator; _nativeApiInfoProvider = nativeApiInfoProvider; + _sourceFileProvider = sourceFileProvider; } public Task Run() @@ -23,13 +26,15 @@ public Task Run() var nativeApiInfo = _nativeApiInfoProvider.Get(MahuaPlatform.Mpq); var apiHandler = _apiHandlerGenerator.Generate(new ApiHandlerGeneratorInput { - Namespace = "Newbe.Mahua.QQLight", + Namespace = "Newbe.Mahua.Mpq", NativeApiInfo = nativeApiInfo, - ApiOutBaseName = "QQLightApiOutput", - ApiHandlerClassName = "QQLightMahuaApiHandler", + ApiOutBaseName = "MpqApiOutput", + ApiHandlerClassName = "MpqMahuaApiHandler", }); - File.WriteAllText("../Newbe.Mahua.QQLight/QQLightMahuaApiHandler.cs", + var filename = Path.Combine(_sourceFileProvider.GetBasePath(), + "Newbe.Mahua.MPQ/MpqMahuaApiHandler.cs"); + File.WriteAllText(filename, CodeFormatter.FormatCode(apiHandler), Encoding.UTF8); return Task.CompletedTask; diff --git a/src/Newbe.Mahua.DevJobs/Jobs/PlatformApIHandlers/QQLightJob.cs b/src/Newbe.Mahua.DevJobs/Jobs/PlatformApIHandlers/QQLightJob.cs index 11a0ce9..50582c2 100644 --- a/src/Newbe.Mahua.DevJobs/Jobs/PlatformApIHandlers/QQLightJob.cs +++ b/src/Newbe.Mahua.DevJobs/Jobs/PlatformApIHandlers/QQLightJob.cs @@ -7,13 +7,16 @@ namespace Newbe.Mahua.NativeApiClassfy.Jobs.PlatformApIHandlers { public class QQLightJob : IJob { + private readonly ISourceFileProvider _sourceFileProvider; private readonly IApiHandlerGenerator _apiHandlerGenerator; private readonly INativeApiInfoProvider _nativeApiInfoProvider; public QQLightJob( + ISourceFileProvider sourceFileProvider, IApiHandlerGenerator apiHandlerGenerator, INativeApiInfoProvider nativeApiInfoProvider) { + _sourceFileProvider = sourceFileProvider; _apiHandlerGenerator = apiHandlerGenerator; _nativeApiInfoProvider = nativeApiInfoProvider; } @@ -30,7 +33,9 @@ public Task Run() AuthCodeContainerInterfaceName = "IQqLightAuthCodeContainer", }); - File.WriteAllText("../Newbe.Mahua.QQLight/QQLightMahuaApiHandler.cs", + var filename = Path.Combine(_sourceFileProvider.GetBasePath(), + "Newbe.Mahua.QQLight/QQLightMahuaApiHandler.cs"); + File.WriteAllText(filename, CodeFormatter.FormatCode(apiHandler), Encoding.UTF8); return Task.CompletedTask; diff --git a/src/Newbe.Mahua.DevJobs/Newbe.Mahua.DevJobs.csproj b/src/Newbe.Mahua.DevJobs/Newbe.Mahua.DevJobs.csproj index 7479eda..162974c 100644 --- a/src/Newbe.Mahua.DevJobs/Newbe.Mahua.DevJobs.csproj +++ b/src/Newbe.Mahua.DevJobs/Newbe.Mahua.DevJobs.csproj @@ -4,6 +4,7 @@ Exe net461 Newbe.Mahua.NativeApiClassfy + false diff --git a/src/Newbe.Mahua.DevJobs/Program.cs b/src/Newbe.Mahua.DevJobs/Program.cs index 4f45239..ba12aa2 100644 --- a/src/Newbe.Mahua.DevJobs/Program.cs +++ b/src/Newbe.Mahua.DevJobs/Program.cs @@ -30,6 +30,11 @@ private static Task Main(string[] args) .As() .SingleInstance(); + var sourceFileProvider = new SourceFileProvider("D:/Repo/newbe/Newbe.Mahua.Framework/src"); + builder.RegisterInstance(sourceFileProvider) + .AsImplementedInterfaces() + .SingleInstance(); + foreach (var jobType in typeof(Program).Assembly.GetTypes() .Where(x => x.GetInterface(nameof(IJob)) != null)) { diff --git a/src/Newbe.Mahua.DevJobs/Services/ISourceFileProvider.cs b/src/Newbe.Mahua.DevJobs/Services/ISourceFileProvider.cs new file mode 100644 index 0000000..660e2d2 --- /dev/null +++ b/src/Newbe.Mahua.DevJobs/Services/ISourceFileProvider.cs @@ -0,0 +1,7 @@ +namespace Newbe.Mahua.NativeApiClassfy.Services +{ + public interface ISourceFileProvider + { + string GetBasePath(); + } +} \ No newline at end of file diff --git a/src/Newbe.Mahua.DevJobs/Services/Impl/NativeApiInfoProvider.cs b/src/Newbe.Mahua.DevJobs/Services/Impl/NativeApiInfoProvider.cs index b66511b..da6d44a 100644 --- a/src/Newbe.Mahua.DevJobs/Services/Impl/NativeApiInfoProvider.cs +++ b/src/Newbe.Mahua.DevJobs/Services/Impl/NativeApiInfoProvider.cs @@ -6,11 +6,14 @@ namespace Newbe.Mahua.NativeApiClassfy.Services.Impl { public class NativeApiInfoProvider : INativeApiInfoProvider { + private readonly ISourceFileProvider _sourceFileProvider; private readonly INativeApiInfoResolver _nativeApiInfoResolver; public NativeApiInfoProvider( + ISourceFileProvider sourceFileProvider, INativeApiInfoResolver nativeApiInfoResolver) { + _sourceFileProvider = sourceFileProvider; _nativeApiInfoResolver = nativeApiInfoResolver; } @@ -25,21 +28,18 @@ public NativeApiInfo Get(MahuaPlatform mahuaPlatform) private NativeApiInfo ResolveNativeApiInfo(MahuaPlatform mahuaPlatform) { - string filename; - switch (mahuaPlatform) + var basePath = _sourceFileProvider.GetBasePath(); + var filePath = mahuaPlatform switch { - case MahuaPlatform.Cqp: - filename = "../Newbe.Mahua/NativeApi/ICqpApi.cs"; - break; - case MahuaPlatform.Mpq: - filename = "../Newbe.Mahua/NativeApi/IMpqApi.cs"; - break; - case MahuaPlatform.QQLight: - filename = "../Newbe.Mahua/NativeApi/IQQLightApi.cs"; - break; - default: - throw new ArgumentOutOfRangeException(nameof(mahuaPlatform), mahuaPlatform, null); - } + MahuaPlatform.Cqp => "Newbe.Mahua/NativeApi/ICqpApi.cs", + MahuaPlatform.Mpq => "Newbe.Mahua/NativeApi/IMpqApi.cs", + MahuaPlatform.QQLight => "Newbe.Mahua/NativeApi/IQQLightApi.cs", + MahuaPlatform.Amanda => throw new NotSupportedException(), + MahuaPlatform.CleverQQ => throw new NotSupportedException(), + _ => throw new ArgumentOutOfRangeException(nameof(mahuaPlatform), mahuaPlatform, null) + }; + + var filename = Path.Combine(basePath, filePath); var apiSourceFile = File.ReadAllText(filename); var nativeApiInfo = _nativeApiInfoResolver.GetMahuaApiInfo(apiSourceFile); diff --git a/src/Newbe.Mahua.DevJobs/Services/SourceFileProvider.cs b/src/Newbe.Mahua.DevJobs/Services/SourceFileProvider.cs new file mode 100644 index 0000000..d0b9c6c --- /dev/null +++ b/src/Newbe.Mahua.DevJobs/Services/SourceFileProvider.cs @@ -0,0 +1,18 @@ +namespace Newbe.Mahua.NativeApiClassfy.Services +{ + public class SourceFileProvider : ISourceFileProvider + { + private readonly string _basePath; + + public SourceFileProvider( + string basePath) + { + _basePath = basePath; + } + + public string GetBasePath() + { + return _basePath; + } + } +} \ No newline at end of file diff --git a/src/Newbe.Mahua.InputReceivers.HttpApi/Newbe.Mahua.InputReceivers.HttpApi.csproj b/src/Newbe.Mahua.InputReceivers.HttpApi/Newbe.Mahua.InputReceivers.HttpApi.csproj index fbae717..f2f2fd1 100644 --- a/src/Newbe.Mahua.InputReceivers.HttpApi/Newbe.Mahua.InputReceivers.HttpApi.csproj +++ b/src/Newbe.Mahua.InputReceivers.HttpApi/Newbe.Mahua.InputReceivers.HttpApi.csproj @@ -9,7 +9,7 @@ - + diff --git a/src/Newbe.Mahua.InputReceivers.HttpApi/Services/Controllers/CqpController.cs b/src/Newbe.Mahua.InputReceivers.HttpApi/Services/Controllers/CqpController.cs index 9c60dec..9012423 100644 --- a/src/Newbe.Mahua.InputReceivers.HttpApi/Services/Controllers/CqpController.cs +++ b/src/Newbe.Mahua.InputReceivers.HttpApi/Services/Controllers/CqpController.cs @@ -5,7 +5,7 @@ // this file is generate from tools, do not change this file -// generate time 2019/01/23 +// generate time 2019/12/15 namespace Newbe.Mahua.InputReceivers.HttpApi.Services.Controllers.Cqp { @@ -32,7 +32,7 @@ public Task CQ_sendPrivateMsg([FromBody] CqpCQ_sendPrivateMsgHttpInput input) MahuaPlatform = MahuaPlatform.Cqp, Data = new ReadOnlyDictionary(new Dictionary { -{nameof(input.QQID), input.QQID}, +{nameof(input.Account), input.Account}, {nameof(input.msg), input.msg}, } ) @@ -46,9 +46,9 @@ public Task CQ_sendPrivateMsg([FromBody] CqpCQ_sendPrivateMsgHttpInput input) public class CqpCQ_sendPrivateMsgHttpInput { /// - /// 目标QQ + /// 目标帐号 /// - public long QQID { get; set; } + public long Account { get; set; } /// /// 消息内容 /// @@ -163,7 +163,7 @@ public Task CQ_sendLikeV2([FromBody] CqpCQ_sendLikeV2HttpInput input) MahuaPlatform = MahuaPlatform.Cqp, Data = new ReadOnlyDictionary(new Dictionary { -{nameof(input.QQID), input.QQID}, +{nameof(input.Account), input.Account}, {nameof(input.times), input.times}, } ) @@ -177,9 +177,9 @@ public Task CQ_sendLikeV2([FromBody] CqpCQ_sendLikeV2HttpInput input) public class CqpCQ_sendLikeV2HttpInput { /// - /// 目标QQ + /// 目标帐号 /// - public long QQID { get; set; } + public long Account { get; set; } /// /// 赞的次数,最多10次 /// @@ -188,16 +188,17 @@ public class CqpCQ_sendLikeV2HttpInput /// /// 取Cookies(慎用 /// - [HttpPost("CQ_getCookies")] - public Task CQ_getCookies([FromBody] CqpCQ_getCookiesHttpInput input) + [HttpPost("CQ_getCookiesV2")] + public Task CQ_getCookiesV2([FromBody] CqpCQ_getCookiesV2HttpInput input) { var httpInput = new HttpInput { - TypeCode = nameof(CQ_getCookies), + TypeCode = nameof(CQ_getCookiesV2), MahuaPlatform = MahuaPlatform.Cqp, Data = new ReadOnlyDictionary(new Dictionary - { - } +{ +{nameof(input.domain), input.domain}, +} ) } ; @@ -206,11 +207,15 @@ public Task CQ_getCookies([FromBody] CqpCQ_getCookiesHttpInput input) /// /// 取Cookies(慎用 /// - public class CqpCQ_getCookiesHttpInput + public class CqpCQ_getCookiesV2HttpInput { + /// + /// 目标域名,如 api.example.com + /// + public string domain { get; set; } } /// - /// 接收语音 + /// 【已弃用】接收语音,并返回语音文件相对路径 /// [HttpPost("CQ_getRecord")] public Task CQ_getRecord([FromBody] CqpCQ_getRecordHttpInput input) @@ -230,7 +235,7 @@ public Task CQ_getRecord([FromBody] CqpCQ_getRecordHttpInput input) return _mahuaCenter.HandleMahuaInput(httpInput); } /// - /// 接收语音 + /// 【已弃用】接收语音,并返回语音文件相对路径 /// public class CqpCQ_getRecordHttpInput { @@ -244,6 +249,117 @@ public class CqpCQ_getRecordHttpInput public string outformat { get; set; } } /// + /// 接收语音,并返回语音文件绝对路径 + /// + [HttpPost("CQ_getRecordV2")] + public Task CQ_getRecordV2([FromBody] CqpCQ_getRecordV2HttpInput input) + { + var httpInput = new HttpInput + { + TypeCode = nameof(CQ_getRecordV2), + MahuaPlatform = MahuaPlatform.Cqp, + Data = new ReadOnlyDictionary(new Dictionary +{ +{nameof(input.file), input.file}, +{nameof(input.outformat), input.outformat}, +} + ) + } + ; + return _mahuaCenter.HandleMahuaInput(httpInput); + } + /// + /// 接收语音,并返回语音文件绝对路径 + /// + public class CqpCQ_getRecordV2HttpInput + { + /// + /// 收到消息中的语音文件名(file) + /// + public string file { get; set; } + /// + /// 应用所需的格式 + /// + public string outformat { get; set; } + } + /// + /// 接收图片,并返回图片文件绝对路径 + /// + [HttpPost("CQ_getImage")] + public Task CQ_getImage([FromBody] CqpCQ_getImageHttpInput input) + { + var httpInput = new HttpInput + { + TypeCode = nameof(CQ_getImage), + MahuaPlatform = MahuaPlatform.Cqp, + Data = new ReadOnlyDictionary(new Dictionary +{ +{nameof(input.file), input.file}, +} + ) + } + ; + return _mahuaCenter.HandleMahuaInput(httpInput); + } + /// + /// 接收图片,并返回图片文件绝对路径 + /// + public class CqpCQ_getImageHttpInput + { + /// + /// 收到消息中的图片文件名(file) + /// + public string file { get; set; } + } + /// + /// 是否支持发送图片,返回大于 0 为支持,等于 0 为不支持 + /// + [HttpPost("CQ_canSendImage")] + public Task CQ_canSendImage([FromBody] CqpCQ_canSendImageHttpInput input) + { + var httpInput = new HttpInput + { + TypeCode = nameof(CQ_canSendImage), + MahuaPlatform = MahuaPlatform.Cqp, + Data = new ReadOnlyDictionary(new Dictionary + { + } + ) + } + ; + return _mahuaCenter.HandleMahuaInput(httpInput); + } + /// + /// 是否支持发送图片,返回大于 0 为支持,等于 0 为不支持 + /// + public class CqpCQ_canSendImageHttpInput + { + } + /// + /// 是否支持发送语音,返回大于 0 为支持,等于 0 为不支持 + /// + [HttpPost("CQ_canSendRecord")] + public Task CQ_canSendRecord([FromBody] CqpCQ_canSendRecordHttpInput input) + { + var httpInput = new HttpInput + { + TypeCode = nameof(CQ_canSendRecord), + MahuaPlatform = MahuaPlatform.Cqp, + Data = new ReadOnlyDictionary(new Dictionary + { + } + ) + } + ; + return _mahuaCenter.HandleMahuaInput(httpInput); + } + /// + /// 是否支持发送语音,返回大于 0 为支持,等于 0 为不支持 + /// + public class CqpCQ_canSendRecordHttpInput + { + } + /// /// 取CsrfToken(慎用 /// [HttpPost("CQ_getCsrfToken")] @@ -292,7 +408,7 @@ public class CqpCQ_getAppDirectoryHttpInput { } /// - /// 取登录QQ + /// 取登录帐号 /// [HttpPost("CQ_getLoginQQ")] public Task CQ_getLoginQQ([FromBody] CqpCQ_getLoginQQHttpInput input) @@ -310,7 +426,7 @@ public Task CQ_getLoginQQ([FromBody] CqpCQ_getLoginQQHttpInput input) return _mahuaCenter.HandleMahuaInput(httpInput); } /// - /// 取登录QQ + /// 取登录帐号 /// public class CqpCQ_getLoginQQHttpInput { @@ -352,7 +468,7 @@ public Task CQ_setGroupKick([FromBody] CqpCQ_setGroupKickHttpInput input) Data = new ReadOnlyDictionary(new Dictionary { {nameof(input.群号), input.群号}, -{nameof(input.QQID), input.QQID}, +{nameof(input.Account), input.Account}, {nameof(input.拒绝再加群), input.拒绝再加群}, } ) @@ -370,9 +486,9 @@ public class CqpCQ_setGroupKickHttpInput /// public long 群号 { get; set; } /// - /// 目标QQ + /// 目标帐号 /// - public long QQID { get; set; } + public long Account { get; set; } /// /// 如果为真,则“不再接收此人加群申请”,请慎用 /// @@ -391,7 +507,7 @@ public Task CQ_setGroupBan([FromBody] CqpCQ_setGroupBanHttpInput input) Data = new ReadOnlyDictionary(new Dictionary { {nameof(input.群号), input.群号}, -{nameof(input.QQID), input.QQID}, +{nameof(input.Account), input.Account}, {nameof(input.禁言时间), input.禁言时间}, } ) @@ -409,9 +525,9 @@ public class CqpCQ_setGroupBanHttpInput /// public long 群号 { get; set; } /// - /// 目标QQ + /// 目标帐号 /// - public long QQID { get; set; } + public long Account { get; set; } /// /// 禁言的时间,单位为秒。如果要解禁,这里填写0 /// @@ -430,7 +546,7 @@ public Task CQ_setGroupAdmin([FromBody] CqpCQ_setGroupAdminHttpInput input) Data = new ReadOnlyDictionary(new Dictionary { {nameof(input.群号), input.群号}, -{nameof(input.QQID), input.QQID}, +{nameof(input.Account), input.Account}, {nameof(input.成为管理员), input.成为管理员}, } ) @@ -448,9 +564,9 @@ public class CqpCQ_setGroupAdminHttpInput /// public long 群号 { get; set; } /// - /// 被设置的QQ + /// 被设置的帐号 /// - public long QQID { get; set; } + public long Account { get; set; } /// /// 真/设置管理员 假/取消管理员 /// @@ -469,7 +585,7 @@ public Task CQ_setGroupSpecialTitle([FromBody] CqpCQ_setGroupSpecialTitleHttpInp Data = new ReadOnlyDictionary(new Dictionary { {nameof(input.群号), input.群号}, -{nameof(input.QQID), input.QQID}, +{nameof(input.Account), input.Account}, {nameof(input.头衔), input.头衔}, {nameof(input.过期时间), input.过期时间}, } @@ -488,9 +604,9 @@ public class CqpCQ_setGroupSpecialTitleHttpInput /// public long 群号 { get; set; } /// - /// 目标QQ + /// 目标帐号 /// - public long QQID { get; set; } + public long Account { get; set; } /// /// 如果要删除,这里填空 /// @@ -620,7 +736,7 @@ public Task CQ_setGroupCard([FromBody] CqpCQ_setGroupCardHttpInput input) Data = new ReadOnlyDictionary(new Dictionary { {nameof(input.群号), input.群号}, -{nameof(input.QQID), input.QQID}, +{nameof(input.Account), input.Account}, {nameof(input.新名片_昵称), input.新名片_昵称}, } ) @@ -638,9 +754,9 @@ public class CqpCQ_setGroupCardHttpInput /// public long 群号 { get; set; } /// - /// 被设置的QQ + /// 被设置的帐号 /// - public long QQID { get; set; } + public long Account { get; set; } /// /// /// @@ -873,7 +989,7 @@ public Task CQ_getGroupMemberInfoV2([FromBody] CqpCQ_getGroupMemberInfoV2HttpInp Data = new ReadOnlyDictionary(new Dictionary { {nameof(input.群号), input.群号}, -{nameof(input.QQID), input.QQID}, +{nameof(input.Account), input.Account}, {nameof(input.不使用缓存), input.不使用缓存}, } ) @@ -887,13 +1003,13 @@ public Task CQ_getGroupMemberInfoV2([FromBody] CqpCQ_getGroupMemberInfoV2HttpInp public class CqpCQ_getGroupMemberInfoV2HttpInput { /// - /// 目标QQ所在群 + /// 目标帐号所在群 /// public long 群号 { get; set; } /// - /// 目标QQ + /// 目标帐号 /// - public long QQID { get; set; } + public long Account { get; set; } /// /// /// @@ -924,7 +1040,7 @@ public Task CQ_getGroupMemberList([FromBody] CqpCQ_getGroupMemberListHttpInput i public class CqpCQ_getGroupMemberListHttpInput { /// - /// 目标QQ所在群 + /// 目标帐号所在群 /// public long 群号 { get; set; } } @@ -953,6 +1069,35 @@ public class CqpCQ_getGroupListHttpInput { } /// + /// 取好友列表 + /// + [HttpPost("CQ_getFriendList")] + public Task CQ_getFriendList([FromBody] CqpCQ_getFriendListHttpInput input) + { + var httpInput = new HttpInput + { + TypeCode = nameof(CQ_getFriendList), + MahuaPlatform = MahuaPlatform.Cqp, + Data = new ReadOnlyDictionary(new Dictionary +{ +{nameof(input.reserved), input.reserved}, +} + ) + } + ; + return _mahuaCenter.HandleMahuaInput(httpInput); + } + /// + /// 取好友列表 + /// + public class CqpCQ_getFriendListHttpInput + { + /// + /// 保留参数,请传入“假” + /// + public bool reserved { get; set; } + } + /// /// 取陌生人信息(支持缓存) /// [HttpPost("CQ_getStrangerInfo")] @@ -964,7 +1109,7 @@ public Task CQ_getStrangerInfo([FromBody] CqpCQ_getStrangerInfoHttpInput input) MahuaPlatform = MahuaPlatform.Cqp, Data = new ReadOnlyDictionary(new Dictionary { -{nameof(input.QQID), input.QQID}, +{nameof(input.Account), input.Account}, {nameof(input.不使用缓存), input.不使用缓存}, } ) @@ -978,9 +1123,43 @@ public Task CQ_getStrangerInfo([FromBody] CqpCQ_getStrangerInfoHttpInput input) public class CqpCQ_getStrangerInfoHttpInput { /// - /// 目标QQ + /// 目标帐号 + /// + public long Account { get; set; } + /// + /// /// - public long QQID { get; set; } + public bool 不使用缓存 { get; set; } + } + /// + /// 取群信息(支持缓存) + /// + [HttpPost("CQ_getGroupInfo")] + public Task CQ_getGroupInfo([FromBody] CqpCQ_getGroupInfoHttpInput input) + { + var httpInput = new HttpInput + { + TypeCode = nameof(CQ_getGroupInfo), + MahuaPlatform = MahuaPlatform.Cqp, + Data = new ReadOnlyDictionary(new Dictionary +{ +{nameof(input.群号), input.群号}, +{nameof(input.不使用缓存), input.不使用缓存}, +} + ) + } + ; + return _mahuaCenter.HandleMahuaInput(httpInput); + } + /// + /// 取群信息(支持缓存) + /// + public class CqpCQ_getGroupInfoHttpInput + { + /// + /// 目标群 + /// + public long 群号 { get; set; } /// /// /// diff --git a/src/Newbe.Mahua.InputReceivers.HttpApi/Services/Controllers/MpqController.cs b/src/Newbe.Mahua.InputReceivers.HttpApi/Services/Controllers/MpqController.cs index dc9b144..bdf26c9 100644 --- a/src/Newbe.Mahua.InputReceivers.HttpApi/Services/Controllers/MpqController.cs +++ b/src/Newbe.Mahua.InputReceivers.HttpApi/Services/Controllers/MpqController.cs @@ -5,7 +5,7 @@ // this file is generate from tools, do not change this file -// generate time 2019/01/23 +// generate time 2019/12/15 namespace Newbe.Mahua.InputReceivers.HttpApi.Services.Controllers.Mpq { @@ -471,6 +471,45 @@ public class MpqApi_ShutupHttpInput public int 时长 { get; set; } } /// + /// 根据群号+QQ判断指定群员是否被禁言 获取失败的情况下亦会返回假 + /// + [HttpPost("Api_IsShutup")] + public Task Api_IsShutup([FromBody] MpqApi_IsShutupHttpInput input) + { + var httpInput = new HttpInput + { + TypeCode = nameof(Api_IsShutup), + MahuaPlatform = MahuaPlatform.Mpq, + Data = new ReadOnlyDictionary(new Dictionary +{ +{nameof(input.响应的QQ), input.响应的QQ}, +{nameof(input.群号), input.群号}, +{nameof(input.QQ), input.QQ}, +} + ) + } + ; + return _mahuaCenter.HandleMahuaInput(httpInput); + } + /// + /// 根据群号+QQ判断指定群员是否被禁言 获取失败的情况下亦会返回假 + /// + public class MpqApi_IsShutupHttpInput + { + /// + /// + /// + public string 响应的QQ { get; set; } + /// + /// 欲判断对象所在群. + /// + public string 群号 { get; set; } + /// + /// 欲判断对象 + /// + public string QQ { get; set; } + } + /// /// 发群公告` /// [HttpPost("Api_SetNotice")] @@ -2348,6 +2387,60 @@ public class MpqApi_SendMusicHttpInput /// /// ` /// + [HttpPost("Api_SendXml")] + public Task Api_SendXml([FromBody] MpqApi_SendXmlHttpInput input) + { + var httpInput = new HttpInput + { + TypeCode = nameof(Api_SendXml), + MahuaPlatform = MahuaPlatform.Mpq, + Data = new ReadOnlyDictionary(new Dictionary +{ +{nameof(input.响应的QQ), input.响应的QQ}, +{nameof(input.收信对象类型), input.收信对象类型}, +{nameof(input.收信对象所属群_讨论组), input.收信对象所属群_讨论组}, +{nameof(input.收信对象QQ), input.收信对象QQ}, +{nameof(input.ObjectMsg), input.ObjectMsg}, +{nameof(input.结构子类型), input.结构子类型}, +} + ) + } + ; + return _mahuaCenter.HandleMahuaInput(httpInput); + } + /// + /// ` + /// + public class MpqApi_SendXmlHttpInput + { + /// + /// + /// + public string 响应的QQ { get; set; } + /// + /// 同Api_SendMsg 1好友 2群 3讨论组 4群临时会话 5讨论组临时会话 + /// + public int 收信对象类型 { get; set; } + /// + /// 发群内、临时会话必填 好友可不填 + /// + public string 收信对象所属群_讨论组 { get; set; } + /// + /// 临时会话、好友必填 发至群内可不填 + /// + public string 收信对象QQ { get; set; } + /// + /// + /// + public string ObjectMsg { get; set; } + /// + /// 00 基本 02 点歌 其他不明 + /// + public int 结构子类型 { get; set; } + } + /// + /// ` + /// [HttpPost("Api_SendObjectMsg")] public Task Api_SendObjectMsg([FromBody] MpqApi_SendObjectMsgHttpInput input) { @@ -2433,5 +2526,907 @@ public class MpqApi_IsFriendHttpInput /// public string 对象QQ { get; set; } } + /// + /// 主动加好友 成功返回真 失败返回假 当对象设置需要正确回答问题或不允许任何人添加时无条件失败 + /// + [HttpPost("Api_AddFriend")] + public Task Api_AddFriend([FromBody] MpqApi_AddFriendHttpInput input) + { + var httpInput = new HttpInput + { + TypeCode = nameof(Api_AddFriend), + MahuaPlatform = MahuaPlatform.Mpq, + Data = new ReadOnlyDictionary(new Dictionary +{ +{nameof(input.响应的QQ), input.响应的QQ}, +{nameof(input.对象QQ), input.对象QQ}, +{nameof(input.附加理由), input.附加理由}, +} + ) + } + ; + return _mahuaCenter.HandleMahuaInput(httpInput); + } + /// + /// 主动加好友 成功返回真 失败返回假 当对象设置需要正确回答问题或不允许任何人添加时无条件失败 + /// + public class MpqApi_AddFriendHttpInput + { + /// + /// 机器人QQ + /// + public string 响应的QQ { get; set; } + /// + /// 加谁 + /// + public string 对象QQ { get; set; } + /// + /// 加好友提交的理由 + /// + public string 附加理由 { get; set; } + } + /// + /// 无参 用于插件自身请求禁用插件自身 + /// + [HttpPost("Api_SelfDisable")] + public Task Api_SelfDisable([FromBody] MpqApi_SelfDisableHttpInput input) + { + var httpInput = new HttpInput + { + TypeCode = nameof(Api_SelfDisable), + MahuaPlatform = MahuaPlatform.Mpq, + Data = new ReadOnlyDictionary(new Dictionary + { + } + ) + } + ; + return _mahuaCenter.HandleMahuaInput(httpInput); + } + /// + /// 无参 用于插件自身请求禁用插件自身 + /// + public class MpqApi_SelfDisableHttpInput + { + } + /// + /// 取协议客户端类型常量 失败返回0 + /// + [HttpPost("Api_GetClientType")] + public Task Api_GetClientType([FromBody] MpqApi_GetClientTypeHttpInput input) + { + var httpInput = new HttpInput + { + TypeCode = nameof(Api_GetClientType), + MahuaPlatform = MahuaPlatform.Mpq, + Data = new ReadOnlyDictionary(new Dictionary + { + } + ) + } + ; + return _mahuaCenter.HandleMahuaInput(httpInput); + } + /// + /// 取协议客户端类型常量 失败返回0 + /// + public class MpqApi_GetClientTypeHttpInput + { + } + /// + /// 取协议客户端版本号常量 失败返回0 + /// + [HttpPost("Api_GetClientVer")] + public Task Api_GetClientVer([FromBody] MpqApi_GetClientVerHttpInput input) + { + var httpInput = new HttpInput + { + TypeCode = nameof(Api_GetClientVer), + MahuaPlatform = MahuaPlatform.Mpq, + Data = new ReadOnlyDictionary(new Dictionary + { + } + ) + } + ; + return _mahuaCenter.HandleMahuaInput(httpInput); + } + /// + /// 取协议客户端版本号常量 失败返回0 + /// + public class MpqApi_GetClientVerHttpInput + { + } + /// + /// 取协议客户端公开版本号常量 失败返回0 + /// + [HttpPost("Api_GetPubNo")] + public Task Api_GetPubNo([FromBody] MpqApi_GetPubNoHttpInput input) + { + var httpInput = new HttpInput + { + TypeCode = nameof(Api_GetPubNo), + MahuaPlatform = MahuaPlatform.Mpq, + Data = new ReadOnlyDictionary(new Dictionary + { + } + ) + } + ; + return _mahuaCenter.HandleMahuaInput(httpInput); + } + /// + /// 取协议客户端公开版本号常量 失败返回0 + /// + public class MpqApi_GetPubNoHttpInput + { + } + /// + /// 取协议客户端主版本号常量 失败返回0 + /// + [HttpPost("Api_GetMainVer")] + public Task Api_GetMainVer([FromBody] MpqApi_GetMainVerHttpInput input) + { + var httpInput = new HttpInput + { + TypeCode = nameof(Api_GetMainVer), + MahuaPlatform = MahuaPlatform.Mpq, + Data = new ReadOnlyDictionary(new Dictionary + { + } + ) + } + ; + return _mahuaCenter.HandleMahuaInput(httpInput); + } + /// + /// 取协议客户端主版本号常量 失败返回0 + /// + public class MpqApi_GetMainVerHttpInput + { + } + /// + /// 取协议客户端通信模块(TXSSO)版本号常量 失败返回0 + /// + [HttpPost("Api_GetTXSSOVer")] + public Task Api_GetTXSSOVer([FromBody] MpqApi_GetTXSSOVerHttpInput input) + { + var httpInput = new HttpInput + { + TypeCode = nameof(Api_GetTXSSOVer), + MahuaPlatform = MahuaPlatform.Mpq, + Data = new ReadOnlyDictionary(new Dictionary + { + } + ) + } + ; + return _mahuaCenter.HandleMahuaInput(httpInput); + } + /// + /// 取协议客户端通信模块(TXSSO)版本号常量 失败返回0 + /// + public class MpqApi_GetTXSSOVerHttpInput + { + } + /// + /// 通过音频、语音guid取得下载连接 + /// + [HttpPost("Api_GuidGetVoiceLink")] + public Task Api_GuidGetVoiceLink([FromBody] MpqApi_GuidGetVoiceLinkHttpInput input) + { + var httpInput = new HttpInput + { + TypeCode = nameof(Api_GuidGetVoiceLink), + MahuaPlatform = MahuaPlatform.Mpq, + Data = new ReadOnlyDictionary(new Dictionary +{ +{nameof(input.响应的QQ), input.响应的QQ}, +{nameof(input.GUID), input.GUID}, +} + ) + } + ; + return _mahuaCenter.HandleMahuaInput(httpInput); + } + /// + /// 通过音频、语音guid取得下载连接 + /// + public class MpqApi_GuidGetVoiceLinkHttpInput + { + /// + /// + /// + public string 响应的QQ { get; set; } + /// + /// 格式:{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx}.amr + /// + public string GUID { get; set; } + } + /// + /// 上传音频文件 成功返回guid用于发送 + /// + [HttpPost("Api_UploadVoice")] + public Task Api_UploadVoice([FromBody] MpqApi_UploadVoiceHttpInput input) + { + var httpInput = new HttpInput + { + TypeCode = nameof(Api_UploadVoice), + MahuaPlatform = MahuaPlatform.Mpq, + Data = new ReadOnlyDictionary(new Dictionary +{ +{nameof(input.响应的QQ), input.响应的QQ}, +{nameof(input.amr音频数据), input.amr音频数据}, +} + ) + } + ; + return _mahuaCenter.HandleMahuaInput(httpInput); + } + /// + /// 上传音频文件 成功返回guid用于发送 + /// + public class MpqApi_UploadVoiceHttpInput + { + /// + /// + /// + public string 响应的QQ { get; set; } + /// + /// 音频字节集数据 + /// + public string amr音频数据 { get; set; } + } + /// + /// 移除由Api_AddLogHandler添加、设置的日志处理函数 + /// + [HttpPost("Api_RemoveLogHandler")] + public Task Api_RemoveLogHandler([FromBody] MpqApi_RemoveLogHandlerHttpInput input) + { + var httpInput = new HttpInput + { + TypeCode = nameof(Api_RemoveLogHandler), + MahuaPlatform = MahuaPlatform.Mpq, + Data = new ReadOnlyDictionary(new Dictionary + { + } + ) + } + ; + return _mahuaCenter.HandleMahuaInput(httpInput); + } + /// + /// 移除由Api_AddLogHandler添加、设置的日志处理函数 + /// + public class MpqApi_RemoveLogHandlerHttpInput + { + } + /// + /// 取群名 + /// + [HttpPost("Api_GetGroupName")] + public Task Api_GetGroupName([FromBody] MpqApi_GetGroupNameHttpInput input) + { + var httpInput = new HttpInput + { + TypeCode = nameof(Api_GetGroupName), + MahuaPlatform = MahuaPlatform.Mpq, + Data = new ReadOnlyDictionary(new Dictionary +{ +{nameof(input.响应的QQ), input.响应的QQ}, +{nameof(input.群号), input.群号}, +} + ) + } + ; + return _mahuaCenter.HandleMahuaInput(httpInput); + } + /// + /// 取群名 + /// + public class MpqApi_GetGroupNameHttpInput + { + /// + /// + /// + public string 响应的QQ { get; set; } + /// + /// + /// + public string 群号 { get; set; } + } + /// + /// 移除/取消由Api_SetMsgFilter所添加/设置的处理函数 + /// + [HttpPost("Api_RemoveMsgFilter")] + public Task Api_RemoveMsgFilter([FromBody] MpqApi_RemoveMsgFilterHttpInput input) + { + var httpInput = new HttpInput + { + TypeCode = nameof(Api_RemoveMsgFilter), + MahuaPlatform = MahuaPlatform.Mpq, + Data = new ReadOnlyDictionary(new Dictionary + { + } + ) + } + ; + return _mahuaCenter.HandleMahuaInput(httpInput); + } + /// + /// 移除/取消由Api_SetMsgFilter所添加/设置的处理函数 + /// + public class MpqApi_RemoveMsgFilterHttpInput + { + } + /// + /// QQ名片赞 10赞每Q每日 至多50人/日系列 成功返回空 失败返回理由(腾讯爸爸给出的) 一次一赞 速度请自行管控以免冻结 + /// + [HttpPost("Api_Like")] + public Task Api_Like([FromBody] MpqApi_LikeHttpInput input) + { + var httpInput = new HttpInput + { + TypeCode = nameof(Api_Like), + MahuaPlatform = MahuaPlatform.Mpq, + Data = new ReadOnlyDictionary(new Dictionary +{ +{nameof(input.参_响应的QQ), input.参_响应的QQ}, +{nameof(input.参_被赞QQ), input.参_被赞QQ}, +} + ) + } + ; + return _mahuaCenter.HandleMahuaInput(httpInput); + } + /// + /// QQ名片赞 10赞每Q每日 至多50人/日系列 成功返回空 失败返回理由(腾讯爸爸给出的) 一次一赞 速度请自行管控以免冻结 + /// + public class MpqApi_LikeHttpInput + { + /// + /// + /// + public string 参_响应的QQ { get; set; } + /// + /// + /// + public string 参_被赞QQ { get; set; } + } + /// + /// 上传群文件 + /// + [HttpPost("Api_UploadGroupFile")] + public Task Api_UploadGroupFile([FromBody] MpqApi_UploadGroupFileHttpInput input) + { + var httpInput = new HttpInput + { + TypeCode = nameof(Api_UploadGroupFile), + MahuaPlatform = MahuaPlatform.Mpq, + Data = new ReadOnlyDictionary(new Dictionary +{ +{nameof(input.参_响应的QQ), input.参_响应的QQ}, +{nameof(input.参_群号), input.参_群号}, +{nameof(input.参_上传文件名), input.参_上传文件名}, +{nameof(input.参_路径), input.参_路径}, +{nameof(input.参_图片数据), input.参_图片数据}, +} + ) + } + ; + return _mahuaCenter.HandleMahuaInput(httpInput); + } + /// + /// 上传群文件 + /// + public class MpqApi_UploadGroupFileHttpInput + { + /// + /// + /// + public string 参_响应的QQ { get; set; } + /// + /// + /// + public string 参_群号 { get; set; } + /// + /// 实际显示在群文件列表中的文件名 + /// + public string 参_上传文件名 { get; set; } + /// + /// 本地文件路径 选填 + /// + public string 参_路径 { get; set; } + /// + /// 图片字节集数据 选填 + /// + public string 参_图片数据 { get; set; } + } + /// + /// 根据图片GUID取得图片下载连接 失败返回空 + /// + [HttpPost("Api_GuidGetPicLinkEx")] + public Task Api_GuidGetPicLinkEx([FromBody] MpqApi_GuidGetPicLinkExHttpInput input) + { + var httpInput = new HttpInput + { + TypeCode = nameof(Api_GuidGetPicLinkEx), + MahuaPlatform = MahuaPlatform.Mpq, + Data = new ReadOnlyDictionary(new Dictionary +{ +{nameof(input.参_图片GUID), input.参_图片GUID}, +{nameof(input.参_图片类型), input.参_图片类型}, +{nameof(input.参_图片参考对象), input.参_图片参考对象}, +} + ) + } + ; + return _mahuaCenter.HandleMahuaInput(httpInput); + } + /// + /// 根据图片GUID取得图片下载连接 失败返回空 + /// + public class MpqApi_GuidGetPicLinkExHttpInput + { + /// + /// {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}.jpg这样的GUID + /// + public string 参_图片GUID { get; set; } + /// + /// 1好友/临时会话图片 2 群图 + /// + public int 参_图片类型 { get; set; } + /// + /// 好友QQ或群号 根据参数2填写 + /// + public string 参_图片参考对象 { get; set; } + } + /// + /// 撤回群信息 需为群管 + /// + [HttpPost("Api_CancelGroupMsgA")] + public Task Api_CancelGroupMsgA([FromBody] MpqApi_CancelGroupMsgAHttpInput input) + { + var httpInput = new HttpInput + { + TypeCode = nameof(Api_CancelGroupMsgA), + MahuaPlatform = MahuaPlatform.Mpq, + Data = new ReadOnlyDictionary(new Dictionary +{ +{nameof(input.响应的QQ), input.响应的QQ}, +{nameof(input.原始信息), input.原始信息}, +} + ) + } + ; + return _mahuaCenter.HandleMahuaInput(httpInput); + } + /// + /// 撤回群信息 需为群管 + /// + public class MpqApi_CancelGroupMsgAHttpInput + { + /// + /// 机器人QQ + /// + public string 响应的QQ { get; set; } + /// + /// Event函数中的'参_原始信息' 经过解密后的封包字节数据 + /// + public string 原始信息 { get; set; } + } + /// + /// 取得用于登陆腾讯子业务的Cookies 如xxx.qq.com + /// + [HttpPost("Api_GetCookiesByDomain")] + public Task Api_GetCookiesByDomain([FromBody] MpqApi_GetCookiesByDomainHttpInput input) + { + var httpInput = new HttpInput + { + TypeCode = nameof(Api_GetCookiesByDomain), + MahuaPlatform = MahuaPlatform.Mpq, + Data = new ReadOnlyDictionary(new Dictionary +{ +{nameof(input.响应的QQ), input.响应的QQ}, +{nameof(input.域名), input.域名}, +} + ) + } + ; + return _mahuaCenter.HandleMahuaInput(httpInput); + } + /// + /// 取得用于登陆腾讯子业务的Cookies 如xxx.qq.com + /// + public class MpqApi_GetCookiesByDomainHttpInput + { + /// + /// + /// + public string 响应的QQ { get; set; } + /// + /// 如qun.qq.com + /// + public string 域名 { get; set; } + } + /// + /// + /// + [HttpPost("Api_ChangeProtocol")] + public Task Api_ChangeProtocol([FromBody] MpqApi_ChangeProtocolHttpInput input) + { + var httpInput = new HttpInput + { + TypeCode = nameof(Api_ChangeProtocol), + MahuaPlatform = MahuaPlatform.Mpq, + Data = new ReadOnlyDictionary(new Dictionary +{ +{nameof(input.i), input.i}, +} + ) + } + ; + return _mahuaCenter.HandleMahuaInput(httpInput); + } + /// + /// + /// + public class MpqApi_ChangeProtocolHttpInput + { + /// + /// + /// + public int i { get; set; } + } + /// + /// 从框架中删除QQ + /// + [HttpPost("Api_DeleteQQ")] + public Task Api_DeleteQQ([FromBody] MpqApi_DeleteQQHttpInput input) + { + var httpInput = new HttpInput + { + TypeCode = nameof(Api_DeleteQQ), + MahuaPlatform = MahuaPlatform.Mpq, + Data = new ReadOnlyDictionary(new Dictionary +{ +{nameof(input.被操作QQ), input.被操作QQ}, +} + ) + } + ; + return _mahuaCenter.HandleMahuaInput(httpInput); + } + /// + /// 从框架中删除QQ + /// + public class MpqApi_DeleteQQHttpInput + { + /// + /// + /// + public string 被操作QQ { get; set; } + } + /// + /// + /// + [HttpPost("Api_SendAppMsg")] + public Task Api_SendAppMsg([FromBody] MpqApi_SendAppMsgHttpInput input) + { + var httpInput = new HttpInput + { + TypeCode = nameof(Api_SendAppMsg), + MahuaPlatform = MahuaPlatform.Mpq, + Data = new ReadOnlyDictionary(new Dictionary +{ +{nameof(input.响应的QQ), input.响应的QQ}, +{nameof(input.收信对象类型), input.收信对象类型}, +{nameof(input.信对象所属群_讨论组), input.信对象所属群_讨论组}, +{nameof(input.收信对象QQ), input.收信对象QQ}, +{nameof(input.AppMsg), input.AppMsg}, +} + ) + } + ; + return _mahuaCenter.HandleMahuaInput(httpInput); + } + /// + /// + /// + public class MpqApi_SendAppMsgHttpInput + { + /// + /// + /// + public string 响应的QQ { get; set; } + /// + /// 同Api_SendMsg 1好友 2群 3讨论组 4群临时会话 5讨论组临时会话 + /// + public int 收信对象类型 { get; set; } + /// + /// 文本型, , 发群内、临时会话必填 好友可不填 + /// + public string 信对象所属群_讨论组 { get; set; } + /// + /// 临时会话、好友必填 发至群内可不填 + /// + public string 收信对象QQ { get; set; } + /// + /// + /// + public string AppMsg { get; set; } + } + /// + /// 取生日 失败返回空 未公开生日信息返回 \"0 年0月0日\ + /// + [HttpPost("Api_GetBirthday")] + public Task Api_GetBirthday([FromBody] MpqApi_GetBirthdayHttpInput input) + { + var httpInput = new HttpInput + { + TypeCode = nameof(Api_GetBirthday), + MahuaPlatform = MahuaPlatform.Mpq, + Data = new ReadOnlyDictionary(new Dictionary +{ +{nameof(input.响应的QQ), input.响应的QQ}, +{nameof(input.QQ), input.QQ}, +} + ) + } + ; + return _mahuaCenter.HandleMahuaInput(httpInput); + } + /// + /// 取生日 失败返回空 未公开生日信息返回 \"0 年0月0日\ + /// + public class MpqApi_GetBirthdayHttpInput + { + /// + /// + /// + public string 响应的QQ { get; set; } + /// + /// + /// + public string QQ { get; set; } + } + /// + /// 取用户个人信息页面字节数据 包含各种资料 返回内容为原始明文数据 + /// + [HttpPost("Api_GetUserInfo")] + public Task Api_GetUserInfo([FromBody] MpqApi_GetUserInfoHttpInput input) + { + var httpInput = new HttpInput + { + TypeCode = nameof(Api_GetUserInfo), + MahuaPlatform = MahuaPlatform.Mpq, + Data = new ReadOnlyDictionary(new Dictionary +{ +{nameof(input.响应的QQ), input.响应的QQ}, +{nameof(input.QQ), input.QQ}, +} + ) + } + ; + return _mahuaCenter.HandleMahuaInput(httpInput); + } + /// + /// 取用户个人信息页面字节数据 包含各种资料 返回内容为原始明文数据 + /// + public class MpqApi_GetUserInfoHttpInput + { + /// + /// + /// + public string 响应的QQ { get; set; } + /// + /// + /// + public string QQ { get; set; } + } + /// + /// + /// + [HttpPost("Api_GetFriendListA")] + public Task Api_GetFriendListA([FromBody] MpqApi_GetFriendListAHttpInput input) + { + var httpInput = new HttpInput + { + TypeCode = nameof(Api_GetFriendListA), + MahuaPlatform = MahuaPlatform.Mpq, + Data = new ReadOnlyDictionary(new Dictionary +{ +{nameof(input.响应的QQ), input.响应的QQ}, +} + ) + } + ; + return _mahuaCenter.HandleMahuaInput(httpInput); + } + /// + /// + /// + public class MpqApi_GetFriendListAHttpInput + { + /// + /// + /// + public string 响应的QQ { get; set; } + } + /// + /// 仅商用版可用 + /// + [HttpPost("Api_GetLoginQRCode")] + public Task Api_GetLoginQRCode([FromBody] MpqApi_GetLoginQRCodeHttpInput input) + { + var httpInput = new HttpInput + { + TypeCode = nameof(Api_GetLoginQRCode), + MahuaPlatform = MahuaPlatform.Mpq, + Data = new ReadOnlyDictionary(new Dictionary + { + } + ) + } + ; + return _mahuaCenter.HandleMahuaInput(httpInput); + } + /// + /// 仅商用版可用 + /// + public class MpqApi_GetLoginQRCodeHttpInput + { + } + /// + /// 仅商用版可用 上传头像 接受字节集参数 返回值:0 上传成功 -1参数有误 -2图片大于1MB -3获取上传令牌失败受限 -4其他理由上传失败 + /// + [HttpPost("Api_UploadCface_Byte")] + public Task Api_UploadCface_Byte([FromBody] MpqApi_UploadCface_ByteHttpInput input) + { + var httpInput = new HttpInput + { + TypeCode = nameof(Api_UploadCface_Byte), + MahuaPlatform = MahuaPlatform.Mpq, + Data = new ReadOnlyDictionary(new Dictionary +{ +{nameof(input.参_响应的QQ), input.参_响应的QQ}, +{nameof(input.参_图片数据), input.参_图片数据}, +} + ) + } + ; + return _mahuaCenter.HandleMahuaInput(httpInput); + } + /// + /// 仅商用版可用 上传头像 接受字节集参数 返回值:0 上传成功 -1参数有误 -2图片大于1MB -3获取上传令牌失败受限 -4其他理由上传失败 + /// + public class MpqApi_UploadCface_ByteHttpInput + { + /// + /// 机器人QQ + /// + public string 参_响应的QQ { get; set; } + /// + /// 图片字节集数据,由于易语言DLL限制你可能在这里读到的是\"整数型\" 请自己改成字节集,图片不限PNG JPG 大小1MB以内 + /// + public int 参_图片数据 { get; set; } + } + /// + /// 仅商用版可用 上传头像 接受路径参数 URL 或 本地路径 返回值:0 上传成功 -1参数有误 -2图片大于1MB -3获取上传令牌失败受限 -4其他理由上传失败 + /// + [HttpPost("Api_UploadCface_Path")] + public Task Api_UploadCface_Path([FromBody] MpqApi_UploadCface_PathHttpInput input) + { + var httpInput = new HttpInput + { + TypeCode = nameof(Api_UploadCface_Path), + MahuaPlatform = MahuaPlatform.Mpq, + Data = new ReadOnlyDictionary(new Dictionary +{ +{nameof(input.参_响应的QQ), input.参_响应的QQ}, +{nameof(input.参_图片路径), input.参_图片路径}, +} + ) + } + ; + return _mahuaCenter.HandleMahuaInput(httpInput); + } + /// + /// 仅商用版可用 上传头像 接受路径参数 URL 或 本地路径 返回值:0 上传成功 -1参数有误 -2图片大于1MB -3获取上传令牌失败受限 -4其他理由上传失败 + /// + public class MpqApi_UploadCface_PathHttpInput + { + /// + /// 机器人QQ + /// + public string 参_响应的QQ { get; set; } + /// + /// 路径 可选URL 或 本地路径 http://www.baidu,com/图片.jpg C:/1.jpg, + /// + public string 参_图片路径 { get; set; } + } + /// + /// 异步处理被加好友事件 在事件1001下返回值需>30 如50 以强制忽略且确保无其他插件处理 + /// + [HttpPost("Api_HandleFriendRequestAsync")] + public Task Api_HandleFriendRequestAsync([FromBody] MpqApi_HandleFriendRequestAsyncHttpInput input) + { + var httpInput = new HttpInput + { + TypeCode = nameof(Api_HandleFriendRequestAsync), + MahuaPlatform = MahuaPlatform.Mpq, + Data = new ReadOnlyDictionary(new Dictionary +{ +{nameof(input.参_原始信息), input.参_原始信息}, +{nameof(input.参_处理方式), input.参_处理方式}, +{nameof(input.参_附加信息), input.参_附加信息}, +} + ) + } + ; + return _mahuaCenter.HandleMahuaInput(httpInput); + } + /// + /// 异步处理被加好友事件 在事件1001下返回值需>30 如50 以强制忽略且确保无其他插件处理 + /// + public class MpqApi_HandleFriendRequestAsyncHttpInput + { + /// + /// 在事件1001下取得 参_原始信息 填入 + /// + public string 参_原始信息 { get; set; } + /// + /// 0忽略 10同意 20拒绝 30单向同意(成为单向好友) + /// + public int 参_处理方式 { get; set; } + /// + /// 拒绝时的附加理由 可以留空 + /// + public string 参_附加信息 { get; set; } + } + /// + /// 异步处理被加群类事件 在事件200x下返回值需>30 如50 以强制忽略且确保无其他插件处理 + /// + [HttpPost("Api_HandleGroupRequestAsync")] + public Task Api_HandleGroupRequestAsync([FromBody] MpqApi_HandleGroupRequestAsyncHttpInput input) + { + var httpInput = new HttpInput + { + TypeCode = nameof(Api_HandleGroupRequestAsync), + MahuaPlatform = MahuaPlatform.Mpq, + Data = new ReadOnlyDictionary(new Dictionary +{ +{nameof(input.参_响应的QQ), input.参_响应的QQ}, +{nameof(input.参_原始信息), input.参_原始信息}, +{nameof(input.参_处理方式), input.参_处理方式}, +{nameof(input.参_附加信息), input.参_附加信息}, +} + ) + } + ; + return _mahuaCenter.HandleMahuaInput(httpInput); + } + /// + /// 异步处理被加群类事件 在事件200x下返回值需>30 如50 以强制忽略且确保无其他插件处理 + /// + public class MpqApi_HandleGroupRequestAsyncHttpInput + { + /// + /// 机器人QQ + /// + public string 参_响应的QQ { get; set; } + /// + /// 在事件200x下取得 参_原始信息 填入 + /// + public string 参_原始信息 { get; set; } + /// + /// 0忽略 10同意 20拒绝 30拒绝并不再接受 + /// + public int 参_处理方式 { get; set; } + /// + /// 拒绝时的附加理由 可以留空 + /// + public string 参_附加信息 { get; set; } + } } } diff --git a/src/Newbe.Mahua.InputReceivers.HttpApi/Services/Controllers/QQLightController.cs b/src/Newbe.Mahua.InputReceivers.HttpApi/Services/Controllers/QQLightController.cs index 2fb70d1..acd80d4 100644 --- a/src/Newbe.Mahua.InputReceivers.HttpApi/Services/Controllers/QQLightController.cs +++ b/src/Newbe.Mahua.InputReceivers.HttpApi/Services/Controllers/QQLightController.cs @@ -5,7 +5,7 @@ // this file is generate from tools, do not change this file -// generate time 2019/01/23 +// generate time 2019/12/15 namespace Newbe.Mahua.InputReceivers.HttpApi.Services.Controllers.QQLight { @@ -21,7 +21,7 @@ public QQLightController( _mahuaCenter = mahuaCenter; } /// - /// + /// //给QQ点名片赞,PCQQ点赞不稳定,容易失效 /// [HttpPost("Api_SendPraise")] public Task Api_SendPraise([FromBody] QQLightApi_SendPraiseHttpInput input) @@ -32,7 +32,7 @@ public Task Api_SendPraise([FromBody] QQLightApi_SendPraiseHttpInput input) MahuaPlatform = MahuaPlatform.QQLight, Data = new ReadOnlyDictionary(new Dictionary { -{nameof(input.QQ号), input.QQ号}, +{nameof(input.QQID), input.QQID}, } ) } @@ -40,17 +40,17 @@ public Task Api_SendPraise([FromBody] QQLightApi_SendPraiseHttpInput input) return _mahuaCenter.HandleMahuaInput(httpInput); } /// - /// + /// //给QQ点名片赞,PCQQ点赞不稳定,容易失效 /// public class QQLightApi_SendPraiseHttpInput { /// /// /// - public string QQ号 { get; set; } + public string QQID { get; set; } } /// - /// + /// //抖动好友窗口 /// [HttpPost("Api_SendShake")] public Task Api_SendShake([FromBody] QQLightApi_SendShakeHttpInput input) @@ -61,7 +61,7 @@ public Task Api_SendShake([FromBody] QQLightApi_SendShakeHttpInput input) MahuaPlatform = MahuaPlatform.QQLight, Data = new ReadOnlyDictionary(new Dictionary { -{nameof(input.QQ号), input.QQ号}, +{nameof(input.QQID), input.QQID}, } ) } @@ -69,17 +69,17 @@ public Task Api_SendShake([FromBody] QQLightApi_SendShakeHttpInput input) return _mahuaCenter.HandleMahuaInput(httpInput); } /// - /// + /// //抖动好友窗口 /// public class QQLightApi_SendShakeHttpInput { /// /// /// - public string QQ号 { get; set; } + public string QQID { get; set; } } /// - /// + /// //取得网页操作时需要用到的bkn/Gtk /// [HttpPost("Api_Getbkn")] public Task Api_Getbkn([FromBody] QQLightApi_GetbknHttpInput input) @@ -89,21 +89,55 @@ public Task Api_Getbkn([FromBody] QQLightApi_GetbknHttpInput input) TypeCode = nameof(Api_Getbkn), MahuaPlatform = MahuaPlatform.QQLight, Data = new ReadOnlyDictionary(new Dictionary - { - } +{ +{nameof(input.Cookies), input.Cookies}, +} ) } ; return _mahuaCenter.HandleMahuaInput(httpInput); } /// - /// + /// //取得网页操作时需要用到的bkn/Gtk /// public class QQLightApi_GetbknHttpInput { + /// + /// + /// + public string Cookies { get; set; } } /// - /// + /// //取得网页操作时需要用到的bkn/Gtk + /// + [HttpPost("Api_Getbkn_Long")] + public Task Api_Getbkn_Long([FromBody] QQLightApi_Getbkn_LongHttpInput input) + { + var httpInput = new HttpInput + { + TypeCode = nameof(Api_Getbkn_Long), + MahuaPlatform = MahuaPlatform.QQLight, + Data = new ReadOnlyDictionary(new Dictionary +{ +{nameof(input.Cookies), input.Cookies}, +} + ) + } + ; + return _mahuaCenter.HandleMahuaInput(httpInput); + } + /// + /// //取得网页操作时需要用到的bkn/Gtk + /// + public class QQLightApi_Getbkn_LongHttpInput + { + /// + /// + /// + public string Cookies { get; set; } + } + /// + /// //退出群 /// [HttpPost("Api_QuitGroup")] public Task Api_QuitGroup([FromBody] QQLightApi_QuitGroupHttpInput input) @@ -114,7 +148,7 @@ public Task Api_QuitGroup([FromBody] QQLightApi_QuitGroupHttpInput input) MahuaPlatform = MahuaPlatform.QQLight, Data = new ReadOnlyDictionary(new Dictionary { -{nameof(input.群号), input.群号}, +{nameof(input.GroupID), input.GroupID}, } ) } @@ -122,17 +156,17 @@ public Task Api_QuitGroup([FromBody] QQLightApi_QuitGroupHttpInput input) return _mahuaCenter.HandleMahuaInput(httpInput); } /// - /// + /// //退出群 /// public class QQLightApi_QuitGroupHttpInput { /// /// /// - public string 群号 { get; set; } + public string GroupID { get; set; } } /// - /// + /// //退出讨论组 /// [HttpPost("Api_QuitDiscussGroup")] public Task Api_QuitDiscussGroup([FromBody] QQLightApi_QuitDiscussGroupHttpInput input) @@ -143,7 +177,7 @@ public Task Api_QuitDiscussGroup([FromBody] QQLightApi_QuitDiscussGroupHttpInput MahuaPlatform = MahuaPlatform.QQLight, Data = new ReadOnlyDictionary(new Dictionary { -{nameof(input.讨论组号), input.讨论组号}, +{nameof(input.GroupID), input.GroupID}, } ) } @@ -151,17 +185,17 @@ public Task Api_QuitDiscussGroup([FromBody] QQLightApi_QuitDiscussGroupHttpInput return _mahuaCenter.HandleMahuaInput(httpInput); } /// - /// + /// //退出讨论组 /// public class QQLightApi_QuitDiscussGroupHttpInput { /// /// /// - public string 讨论组号 { get; set; } + public string GroupID { get; set; } } /// - /// + /// //修改个性签名 /// [HttpPost("Api_SetSignature")] public Task Api_SetSignature([FromBody] QQLightApi_SetSignatureHttpInput input) @@ -172,7 +206,7 @@ public Task Api_SetSignature([FromBody] QQLightApi_SetSignatureHttpInput input) MahuaPlatform = MahuaPlatform.QQLight, Data = new ReadOnlyDictionary(new Dictionary { -{nameof(input.个性签名), input.个性签名}, +{nameof(input.Signature), input.Signature}, } ) } @@ -180,17 +214,17 @@ public Task Api_SetSignature([FromBody] QQLightApi_SetSignatureHttpInput input) return _mahuaCenter.HandleMahuaInput(httpInput); } /// - /// + /// //修改个性签名 /// public class QQLightApi_SetSignatureHttpInput { /// /// /// - public string 个性签名 { get; set; } + public string Signature { get; set; } } /// - /// + /// //修改讨论组名称 /// [HttpPost("Api_SetDiscussName")] public Task Api_SetDiscussName([FromBody] QQLightApi_SetDiscussNameHttpInput input) @@ -201,8 +235,8 @@ public Task Api_SetDiscussName([FromBody] QQLightApi_SetDiscussNameHttpInput inp MahuaPlatform = MahuaPlatform.QQLight, Data = new ReadOnlyDictionary(new Dictionary { -{nameof(input.讨论组号), input.讨论组号}, -{nameof(input.名称), input.名称}, +{nameof(input.DiscussGroupID), input.DiscussGroupID}, +{nameof(input.Name), input.Name}, } ) } @@ -210,33 +244,33 @@ public Task Api_SetDiscussName([FromBody] QQLightApi_SetDiscussNameHttpInput inp return _mahuaCenter.HandleMahuaInput(httpInput); } /// - /// + /// //修改讨论组名称 /// public class QQLightApi_SetDiscussNameHttpInput { /// /// /// - public string 讨论组号 { get; set; } + public string DiscussGroupID { get; set; } /// /// /// - public string 名称 { get; set; } + public string Name { get; set; } } /// - /// + /// //修改群名称 /// - [HttpPost("Api_BanGroup")] - public Task Api_BanGroup([FromBody] QQLightApi_BanGroupHttpInput input) + [HttpPost("Api_SetGroupName")] + public Task Api_SetGroupName([FromBody] QQLightApi_SetGroupNameHttpInput input) { var httpInput = new HttpInput { - TypeCode = nameof(Api_BanGroup), + TypeCode = nameof(Api_SetGroupName), MahuaPlatform = MahuaPlatform.QQLight, Data = new ReadOnlyDictionary(new Dictionary { -{nameof(input.群号), input.群号}, -{nameof(input.是否全群禁言), input.是否全群禁言}, +{nameof(input.GroupID), input.GroupID}, +{nameof(input.Name), input.Name}, } ) } @@ -244,32 +278,33 @@ public Task Api_BanGroup([FromBody] QQLightApi_BanGroupHttpInput input) return _mahuaCenter.HandleMahuaInput(httpInput); } /// - /// + /// //修改群名称 /// - public class QQLightApi_BanGroupHttpInput + public class QQLightApi_SetGroupNameHttpInput { /// /// /// - public string 群号 { get; set; } + public string GroupID { get; set; } /// /// /// - public bool 是否全群禁言 { get; set; } + public string Name { get; set; } } /// - /// + /// //设置全群禁言 /// - [HttpPost("Api_RemoveGroup")] - public Task Api_RemoveGroup([FromBody] QQLightApi_RemoveGroupHttpInput input) + [HttpPost("Api_BanGroup")] + public Task Api_BanGroup([FromBody] QQLightApi_BanGroupHttpInput input) { var httpInput = new HttpInput { - TypeCode = nameof(Api_RemoveGroup), + TypeCode = nameof(Api_BanGroup), MahuaPlatform = MahuaPlatform.QQLight, Data = new ReadOnlyDictionary(new Dictionary { -{nameof(input.群号), input.群号}, +{nameof(input.GroupID), input.GroupID}, +{nameof(input.IsBanGroup), input.IsBanGroup}, } ) } @@ -277,17 +312,21 @@ public Task Api_RemoveGroup([FromBody] QQLightApi_RemoveGroupHttpInput input) return _mahuaCenter.HandleMahuaInput(httpInput); } /// - /// + /// //设置全群禁言 /// - public class QQLightApi_RemoveGroupHttpInput + public class QQLightApi_BanGroupHttpInput { /// /// /// - public string 群号 { get; set; } + public string GroupID { get; set; } + /// + /// 真 开启全群禁言 假 关闭全群禁言 + /// + public bool IsBanGroup { get; set; } } /// - /// + /// //设置管理员权限 /// [HttpPost("Api_SetManager")] public Task Api_SetManager([FromBody] QQLightApi_SetManagerHttpInput input) @@ -298,9 +337,9 @@ public Task Api_SetManager([FromBody] QQLightApi_SetManagerHttpInput input) MahuaPlatform = MahuaPlatform.QQLight, Data = new ReadOnlyDictionary(new Dictionary { -{nameof(input.群号), input.群号}, -{nameof(input.QQ号), input.QQ号}, -{nameof(input.是否设置为管理员), input.是否设置为管理员}, +{nameof(input.GroupID), input.GroupID}, +{nameof(input.QQID), input.QQID}, +{nameof(input.IsManager), input.IsManager}, } ) } @@ -308,25 +347,25 @@ public Task Api_SetManager([FromBody] QQLightApi_SetManagerHttpInput input) return _mahuaCenter.HandleMahuaInput(httpInput); } /// - /// + /// //设置管理员权限 /// public class QQLightApi_SetManagerHttpInput { /// /// /// - public string 群号 { get; set; } + public string GroupID { get; set; } /// /// /// - public string QQ号 { get; set; } + public string QQID { get; set; } /// /// 真,设置 假,取消 /// - public bool 是否设置为管理员 { get; set; } + public bool IsManager { get; set; } } /// - /// + /// //禁言群成员 /// [HttpPost("Api_Ban")] public Task Api_Ban([FromBody] QQLightApi_BanHttpInput input) @@ -337,9 +376,9 @@ public Task Api_Ban([FromBody] QQLightApi_BanHttpInput input) MahuaPlatform = MahuaPlatform.QQLight, Data = new ReadOnlyDictionary(new Dictionary { -{nameof(input.群号), input.群号}, +{nameof(input.GroupID), input.GroupID}, {nameof(input.QQ), input.QQ}, -{nameof(input.禁言时长), input.禁言时长}, +{nameof(input.time), input.time}, } ) } @@ -347,14 +386,14 @@ public Task Api_Ban([FromBody] QQLightApi_BanHttpInput input) return _mahuaCenter.HandleMahuaInput(httpInput); } /// - /// + /// //禁言群成员 /// public class QQLightApi_BanHttpInput { /// /// /// - public string 群号 { get; set; } + public string GroupID { get; set; } /// /// /// @@ -362,10 +401,10 @@ public class QQLightApi_BanHttpInput /// /// 单位:秒 0为解除禁言 /// - public int 禁言时长 { get; set; } + public int time { get; set; } } /// - /// + /// //修改匿名权限 /// [HttpPost("Api_SetAnony")] public Task Api_SetAnony([FromBody] QQLightApi_SetAnonyHttpInput input) @@ -376,8 +415,8 @@ public Task Api_SetAnony([FromBody] QQLightApi_SetAnonyHttpInput input) MahuaPlatform = MahuaPlatform.QQLight, Data = new ReadOnlyDictionary(new Dictionary { -{nameof(input.群号), input.群号}, -{nameof(input.是否允许匿名聊天), input.是否允许匿名聊天}, +{nameof(input.GroupID), input.GroupID}, +{nameof(input.IsSetAnony), input.IsSetAnony}, } ) } @@ -385,21 +424,21 @@ public Task Api_SetAnony([FromBody] QQLightApi_SetAnonyHttpInput input) return _mahuaCenter.HandleMahuaInput(httpInput); } /// - /// + /// //修改匿名权限 /// public class QQLightApi_SetAnonyHttpInput { /// /// /// - public string 群号 { get; set; } + public string GroupID { get; set; } /// - /// + /// 真 允许匿名 假 禁止匿名 /// - public bool 是否允许匿名聊天 { get; set; } + public bool IsSetAnony { get; set; } } /// - /// + /// //踢出群成员 /// [HttpPost("Api_RemoveMember")] public Task Api_RemoveMember([FromBody] QQLightApi_RemoveMemberHttpInput input) @@ -410,9 +449,9 @@ public Task Api_RemoveMember([FromBody] QQLightApi_RemoveMemberHttpInput input) MahuaPlatform = MahuaPlatform.QQLight, Data = new ReadOnlyDictionary(new Dictionary { -{nameof(input.群号), input.群号}, -{nameof(input.QQ号), input.QQ号}, -{nameof(input.是否不再接收加群申请), input.是否不再接收加群申请}, +{nameof(input.GroupID), input.GroupID}, +{nameof(input.QQID), input.QQID}, +{nameof(input.IsBan), input.IsBan}, } ) } @@ -420,25 +459,54 @@ public Task Api_RemoveMember([FromBody] QQLightApi_RemoveMemberHttpInput input) return _mahuaCenter.HandleMahuaInput(httpInput); } /// - /// + /// //踢出群成员 /// public class QQLightApi_RemoveMemberHttpInput { /// /// /// - public string 群号 { get; set; } + public string GroupID { get; set; } /// /// /// - public string QQ号 { get; set; } + public string QQID { get; set; } /// - /// + /// 不再接受此人加群 /// - public bool 是否不再接收加群申请 { get; set; } + public bool IsBan { get; set; } } /// - /// + /// //解散群 + /// + [HttpPost("Api_RemoveGroup")] + public Task Api_RemoveGroup([FromBody] QQLightApi_RemoveGroupHttpInput input) + { + var httpInput = new HttpInput + { + TypeCode = nameof(Api_RemoveGroup), + MahuaPlatform = MahuaPlatform.QQLight, + Data = new ReadOnlyDictionary(new Dictionary +{ +{nameof(input.GroupID), input.GroupID}, +} + ) + } + ; + return _mahuaCenter.HandleMahuaInput(httpInput); + } + /// + /// //解散群 + /// + public class QQLightApi_RemoveGroupHttpInput + { + /// + /// 群号 + /// + public string GroupID { get; set; } + } + /// + /// //取得操作网页所需要的Cookies /// [HttpPost("Api_GetCookies")] public Task Api_GetCookies([FromBody] QQLightApi_GetCookiesHttpInput input) @@ -456,20 +524,20 @@ public Task Api_GetCookies([FromBody] QQLightApi_GetCookiesHttpInput input) return _mahuaCenter.HandleMahuaInput(httpInput); } /// - /// + /// //取得操作网页所需要的Cookies /// public class QQLightApi_GetCookiesHttpInput { } /// - /// + /// //取得QQ空间Token /// - [HttpPost("Api_GetClientKey")] - public Task Api_GetClientKey([FromBody] QQLightApi_GetClientKeyHttpInput input) + [HttpPost("Api_GetQzoneToken")] + public Task Api_GetQzoneToken([FromBody] QQLightApi_GetQzoneTokenHttpInput input) { var httpInput = new HttpInput { - TypeCode = nameof(Api_GetClientKey), + TypeCode = nameof(Api_GetQzoneToken), MahuaPlatform = MahuaPlatform.QQLight, Data = new ReadOnlyDictionary(new Dictionary { @@ -480,20 +548,20 @@ public Task Api_GetClientKey([FromBody] QQLightApi_GetClientKeyHttpInput input) return _mahuaCenter.HandleMahuaInput(httpInput); } /// - /// + /// //取得QQ空间Token /// - public class QQLightApi_GetClientKeyHttpInput + public class QQLightApi_GetQzoneTokenHttpInput { } /// - /// + /// //取得QQ空间Cookies /// - [HttpPost("Api_GetLoginQQ")] - public Task Api_GetLoginQQ([FromBody] QQLightApi_GetLoginQQHttpInput input) + [HttpPost("Api_GetQzoneCookies")] + public Task Api_GetQzoneCookies([FromBody] QQLightApi_GetQzoneCookiesHttpInput input) { var httpInput = new HttpInput { - TypeCode = nameof(Api_GetLoginQQ), + TypeCode = nameof(Api_GetQzoneCookies), MahuaPlatform = MahuaPlatform.QQLight, Data = new ReadOnlyDictionary(new Dictionary { @@ -504,20 +572,49 @@ public Task Api_GetLoginQQ([FromBody] QQLightApi_GetLoginQQHttpInput input) return _mahuaCenter.HandleMahuaInput(httpInput); } /// - /// + /// //取得QQ空间Cookies /// - public class QQLightApi_GetLoginQQHttpInput + public class QQLightApi_GetQzoneCookiesHttpInput + { + } + /// + /// //发表说说 + /// + [HttpPost("Api_SendTaotao")] + public Task Api_SendTaotao([FromBody] QQLightApi_SendTaotaoHttpInput input) + { + var httpInput = new HttpInput + { + TypeCode = nameof(Api_SendTaotao), + MahuaPlatform = MahuaPlatform.QQLight, + Data = new ReadOnlyDictionary(new Dictionary +{ +{nameof(input.Str), input.Str}, +} + ) + } + ; + return _mahuaCenter.HandleMahuaInput(httpInput); + } + /// + /// //发表说说 + /// + public class QQLightApi_SendTaotaoHttpInput { + /// + /// + /// + public string Str { get; set; } } /// - /// 是否开启/关闭 + /// //取得所登录的QQ /// - [HttpPost("Api_GetPluginState")] - public Task Api_GetPluginState([FromBody] QQLightApi_GetPluginStateHttpInput input) + [HttpPost("Api_GetLoginQQ")] + public Task Api_GetLoginQQ([FromBody] QQLightApi_GetLoginQQHttpInput input) { var httpInput = new HttpInput { - TypeCode = nameof(Api_GetPluginState), + TypeCode = nameof(Api_GetLoginQQ), MahuaPlatform = MahuaPlatform.QQLight, Data = new ReadOnlyDictionary(new Dictionary { @@ -528,13 +625,13 @@ public Task Api_GetPluginState([FromBody] QQLightApi_GetPluginStateHttpInput inp return _mahuaCenter.HandleMahuaInput(httpInput); } /// - /// 是否开启/关闭 + /// //取得所登录的QQ /// - public class QQLightApi_GetPluginStateHttpInput + public class QQLightApi_GetLoginQQHttpInput { } /// - /// 框架为插件所创建的一个目录 + /// //框架为插件所创建的插件目录 /// [HttpPost("Api_GetPath")] public Task Api_GetPath([FromBody] QQLightApi_GetPathHttpInput input) @@ -552,13 +649,47 @@ public Task Api_GetPath([FromBody] QQLightApi_GetPathHttpInput input) return _mahuaCenter.HandleMahuaInput(httpInput); } /// - /// 框架为插件所创建的一个目录 + /// //框架为插件所创建的插件目录 /// public class QQLightApi_GetPathHttpInput { } /// - /// 机器人发送消息 + /// //置插件错误管理 + /// + [HttpPost("Api_Error")] + public Task Api_Error([FromBody] QQLightApi_ErrorHttpInput input) + { + var httpInput = new HttpInput + { + TypeCode = nameof(Api_Error), + MahuaPlatform = MahuaPlatform.QQLight, + Data = new ReadOnlyDictionary(new Dictionary +{ +{nameof(input.Code), input.Code}, +{nameof(input.Str), input.Str}, +} + ) + } + ; + return _mahuaCenter.HandleMahuaInput(httpInput); + } + /// + /// //置插件错误管理 + /// + public class QQLightApi_ErrorHttpInput + { + /// + /// + /// + public string Code { get; set; } + /// + /// + /// + public string Str { get; set; } + } + /// + /// //机器人发送消息,返回值为该条消息的ID /// [HttpPost("Api_SendMsg")] public Task Api_SendMsg([FromBody] QQLightApi_SendMsgHttpInput input) @@ -569,10 +700,10 @@ public Task Api_SendMsg([FromBody] QQLightApi_SendMsgHttpInput input) MahuaPlatform = MahuaPlatform.QQLight, Data = new ReadOnlyDictionary(new Dictionary { -{nameof(input.类型), input.类型}, -{nameof(input.群组), input.群组}, -{nameof(input.QQ号), input.QQ号}, -{nameof(input.内容), input.内容}, +{nameof(input.Type), input.Type}, +{nameof(input.GroupID), input.GroupID}, +{nameof(input.QQID), input.QQID}, +{nameof(input.Msg), input.Msg}, } ) } @@ -580,29 +711,29 @@ public Task Api_SendMsg([FromBody] QQLightApi_SendMsgHttpInput input) return _mahuaCenter.HandleMahuaInput(httpInput); } /// - /// 机器人发送消息 + /// //机器人发送消息,返回值为该条消息的ID /// public class QQLightApi_SendMsgHttpInput { /// /// 1.好友消息 2.群消息 3.群临时消息 4.讨论组消息 5.讨论组临时消息 6.QQ临时消息 /// - public int 类型 { get; set; } + public int Type { get; set; } /// /// /// - public string 群组 { get; set; } + public string GroupID { get; set; } /// /// 类型为2,4时可留空 /// - public string QQ号 { get; set; } + public string QQID { get; set; } /// /// /// - public string 内容 { get; set; } + public string Msg { get; set; } } /// - /// 处理加群消息 + /// //处理加群消息 /// [HttpPost("Api_SetGroupAdd")] public Task Api_SetGroupAdd([FromBody] QQLightApi_SetGroupAddHttpInput input) @@ -613,11 +744,11 @@ public Task Api_SetGroupAdd([FromBody] QQLightApi_SetGroupAddHttpInput input) MahuaPlatform = MahuaPlatform.QQLight, Data = new ReadOnlyDictionary(new Dictionary { -{nameof(input.群号), input.群号}, -{nameof(input.QQ号), input.QQ号}, +{nameof(input.GroupID), input.GroupID}, +{nameof(input.QQID), input.QQID}, {nameof(input.Seq), input.Seq}, -{nameof(input.操作方式), input.操作方式}, -{nameof(input.拒绝理由), input.拒绝理由}, +{nameof(input.Type), input.Type}, +{nameof(input.Reason), input.Reason}, } ) } @@ -625,18 +756,18 @@ public Task Api_SetGroupAdd([FromBody] QQLightApi_SetGroupAddHttpInput input) return _mahuaCenter.HandleMahuaInput(httpInput); } /// - /// 处理加群消息 + /// //处理加群消息 /// public class QQLightApi_SetGroupAddHttpInput { /// /// /// - public string 群号 { get; set; } + public string GroupID { get; set; } /// /// /// - public string QQ号 { get; set; } + public string QQID { get; set; } /// /// /// @@ -644,14 +775,14 @@ public class QQLightApi_SetGroupAddHttpInput /// /// 1.同意 2.拒绝 3.忽略 /// - public int 操作方式 { get; set; } + public int Type { get; set; } /// /// 参数可为空,且为 拒绝 时有效 /// - public string 拒绝理由 { get; set; } + public string Reason { get; set; } } /// - /// 处理加好友消息 + /// //处理加好友消息 /// [HttpPost("Api_SetFriendAdd")] public Task Api_SetFriendAdd([FromBody] QQLightApi_SetFriendAddHttpInput input) @@ -662,9 +793,9 @@ public Task Api_SetFriendAdd([FromBody] QQLightApi_SetFriendAddHttpInput input) MahuaPlatform = MahuaPlatform.QQLight, Data = new ReadOnlyDictionary(new Dictionary { -{nameof(input.QQ号), input.QQ号}, -{nameof(input.操作方式), input.操作方式}, -{nameof(input.拒绝理由), input.拒绝理由}, +{nameof(input.QQID), input.QQID}, +{nameof(input.Type), input.Type}, +{nameof(input.Reason), input.Reason}, } ) } @@ -672,25 +803,25 @@ public Task Api_SetFriendAdd([FromBody] QQLightApi_SetFriendAddHttpInput input) return _mahuaCenter.HandleMahuaInput(httpInput); } /// - /// 处理加好友消息 + /// //处理加好友消息 /// public class QQLightApi_SetFriendAddHttpInput { /// /// /// - public string QQ号 { get; set; } + public string QQID { get; set; } /// /// 1.同意 2.拒绝 3.忽略 /// - public int 操作方式 { get; set; } + public int Type { get; set; } /// /// 参数可为空,且为 拒绝 时有效 /// - public string 拒绝理由 { get; set; } + public string Reason { get; set; } } /// - /// + /// //向框架推送一条日志 /// [HttpPost("Api_SendLog")] public Task Api_SendLog([FromBody] QQLightApi_SendLogHttpInput input) @@ -701,9 +832,9 @@ public Task Api_SendLog([FromBody] QQLightApi_SendLogHttpInput input) MahuaPlatform = MahuaPlatform.QQLight, Data = new ReadOnlyDictionary(new Dictionary { -{nameof(input.类型), input.类型}, -{nameof(input.内容), input.内容}, -{nameof(input.字体颜色), input.字体颜色}, +{nameof(input.Type), input.Type}, +{nameof(input.Msg), input.Msg}, +{nameof(input.FontColor), input.FontColor}, } ) } @@ -711,25 +842,25 @@ public Task Api_SendLog([FromBody] QQLightApi_SendLogHttpInput input) return _mahuaCenter.HandleMahuaInput(httpInput); } /// - /// + /// //向框架推送一条日志 /// public class QQLightApi_SendLogHttpInput { /// - /// + /// 日志类型(自定义) /// - public string 类型 { get; set; } + public string Type { get; set; } /// - /// + /// 日志内容 /// - public string 内容 { get; set; } + public string Msg { get; set; } /// - /// + /// 日志颜色 /// - public int 字体颜色 { get; set; } + public int FontColor { get; set; } } /// - /// + /// //修改好友备注 /// [HttpPost("Api_SetFriendName")] public Task Api_SetFriendName([FromBody] QQLightApi_SetFriendNameHttpInput input) @@ -740,8 +871,8 @@ public Task Api_SetFriendName([FromBody] QQLightApi_SetFriendNameHttpInput input MahuaPlatform = MahuaPlatform.QQLight, Data = new ReadOnlyDictionary(new Dictionary { -{nameof(input.好友QQ), input.好友QQ}, -{nameof(input.备注名), input.备注名}, +{nameof(input.QQID), input.QQID}, +{nameof(input.Name), input.Name}, } ) } @@ -749,21 +880,21 @@ public Task Api_SetFriendName([FromBody] QQLightApi_SetFriendNameHttpInput input return _mahuaCenter.HandleMahuaInput(httpInput); } /// - /// + /// //修改好友备注 /// public class QQLightApi_SetFriendNameHttpInput { /// /// /// - public string 好友QQ { get; set; } + public string QQID { get; set; } /// /// /// - public string 备注名 { get; set; } + public string Name { get; set; } } /// - /// + /// //删除好友 /// [HttpPost("Api_DeleteFriend")] public Task Api_DeleteFriend([FromBody] QQLightApi_DeleteFriendHttpInput input) @@ -774,7 +905,7 @@ public Task Api_DeleteFriend([FromBody] QQLightApi_DeleteFriendHttpInput input) MahuaPlatform = MahuaPlatform.QQLight, Data = new ReadOnlyDictionary(new Dictionary { -{nameof(input.好友QQ), input.好友QQ}, +{nameof(input.QQID), input.QQID}, } ) } @@ -782,17 +913,17 @@ public Task Api_DeleteFriend([FromBody] QQLightApi_DeleteFriendHttpInput input) return _mahuaCenter.HandleMahuaInput(httpInput); } /// - /// + /// //删除好友 /// public class QQLightApi_DeleteFriendHttpInput { /// /// /// - public string 好友QQ { get; set; } + public string QQID { get; set; } } /// - /// + /// //主动添加群 /// [HttpPost("Api_AddGroup")] public Task Api_AddGroup([FromBody] QQLightApi_AddGroupHttpInput input) @@ -803,7 +934,7 @@ public Task Api_AddGroup([FromBody] QQLightApi_AddGroupHttpInput input) MahuaPlatform = MahuaPlatform.QQLight, Data = new ReadOnlyDictionary(new Dictionary { -{nameof(input.群号), input.群号}, +{nameof(input.GroupID), input.GroupID}, {nameof(input.附加信息), input.附加信息}, } ) @@ -812,21 +943,21 @@ public Task Api_AddGroup([FromBody] QQLightApi_AddGroupHttpInput input) return _mahuaCenter.HandleMahuaInput(httpInput); } /// - /// + /// //主动添加群 /// public class QQLightApi_AddGroupHttpInput { /// /// /// - public string 群号 { get; set; } + public string GroupID { get; set; } /// /// /// public string 附加信息 { get; set; } } /// - /// + /// //主动添加好友 /// [HttpPost("Api_AddFriend")] public Task Api_AddFriend([FromBody] QQLightApi_AddFriendHttpInput input) @@ -837,8 +968,8 @@ public Task Api_AddFriend([FromBody] QQLightApi_AddFriendHttpInput input) MahuaPlatform = MahuaPlatform.QQLight, Data = new ReadOnlyDictionary(new Dictionary { -{nameof(input.目标QQ), input.目标QQ}, -{nameof(input.附加信息), input.附加信息}, +{nameof(input.QQID), input.QQID}, +{nameof(input.Info), input.Info}, } ) } @@ -846,32 +977,32 @@ public Task Api_AddFriend([FromBody] QQLightApi_AddFriendHttpInput input) return _mahuaCenter.HandleMahuaInput(httpInput); } /// - /// + /// //主动添加好友 /// public class QQLightApi_AddFriendHttpInput { /// /// /// - public string 目标QQ { get; set; } + public string QQID { get; set; } /// /// /// - public string 附加信息 { get; set; } + public string Info { get; set; } } /// - /// 返回网易云点歌XML + /// //返回卡片点歌JSON代码 /// - [HttpPost("Api_163Music")] - public Task Api_163Music([FromBody] QQLightApi_163MusicHttpInput input) + [HttpPost("Api_JsonMusic")] + public Task Api_JsonMusic([FromBody] QQLightApi_JsonMusicHttpInput input) { var httpInput = new HttpInput { - TypeCode = nameof(Api_163Music), + TypeCode = nameof(Api_JsonMusic), MahuaPlatform = MahuaPlatform.QQLight, Data = new ReadOnlyDictionary(new Dictionary { -{nameof(input.歌曲ID), input.歌曲ID}, +{nameof(input.SongID), input.SongID}, } ) } @@ -879,28 +1010,29 @@ public Task Api_163Music([FromBody] QQLightApi_163MusicHttpInput input) return _mahuaCenter.HandleMahuaInput(httpInput); } /// - /// 返回网易云点歌XML + /// //返回卡片点歌JSON代码 /// - public class QQLightApi_163MusicHttpInput + public class QQLightApi_JsonMusicHttpInput { /// /// /// - public string 歌曲ID { get; set; } + public string SongID { get; set; } } /// - /// 返回QQ点歌XML + /// //取得群内成员的名片 /// - [HttpPost("Api_QQMusic")] - public Task Api_QQMusic([FromBody] QQLightApi_QQMusicHttpInput input) + [HttpPost("Api_GetGroupCard")] + public Task Api_GetGroupCard([FromBody] QQLightApi_GetGroupCardHttpInput input) { var httpInput = new HttpInput { - TypeCode = nameof(Api_QQMusic), + TypeCode = nameof(Api_GetGroupCard), MahuaPlatform = MahuaPlatform.QQLight, Data = new ReadOnlyDictionary(new Dictionary { -{nameof(input.歌曲ID), input.歌曲ID}, +{nameof(input.GroupID), input.GroupID}, +{nameof(input.QQID), input.QQID}, } ) } @@ -908,28 +1040,32 @@ public Task Api_QQMusic([FromBody] QQLightApi_QQMusicHttpInput input) return _mahuaCenter.HandleMahuaInput(httpInput); } /// - /// 返回QQ点歌XML + /// //取得群内成员的名片 /// - public class QQLightApi_QQMusicHttpInput + public class QQLightApi_GetGroupCardHttpInput { /// /// /// - public string 歌曲ID { get; set; } + public string GroupID { get; set; } + /// + /// + /// + public string QQID { get; set; } } /// - /// 返回Json点歌XML + /// //取指定QQ的昵称 /// - [HttpPost("Api_JsonMusic")] - public Task Api_JsonMusic([FromBody] QQLightApi_JsonMusicHttpInput input) + [HttpPost("Api_GetNick")] + public Task Api_GetNick([FromBody] QQLightApi_GetNickHttpInput input) { var httpInput = new HttpInput { - TypeCode = nameof(Api_JsonMusic), + TypeCode = nameof(Api_GetNick), MahuaPlatform = MahuaPlatform.QQLight, Data = new ReadOnlyDictionary(new Dictionary { -{nameof(input.歌曲ID), input.歌曲ID}, +{nameof(input.QQID), input.QQID}, } ) } @@ -937,29 +1073,28 @@ public Task Api_JsonMusic([FromBody] QQLightApi_JsonMusicHttpInput input) return _mahuaCenter.HandleMahuaInput(httpInput); } /// - /// 返回Json点歌XML + /// //取指定QQ的昵称 /// - public class QQLightApi_JsonMusicHttpInput + public class QQLightApi_GetNickHttpInput { /// /// /// - public string 歌曲ID { get; set; } + public string QQID { get; set; } } /// - /// 置插件错误管理 + /// /// - [HttpPost("Api_Error")] - public Task Api_Error([FromBody] QQLightApi_ErrorHttpInput input) + [HttpPost("Api_GetGroupName")] + public Task Api_GetGroupName([FromBody] QQLightApi_GetGroupNameHttpInput input) { var httpInput = new HttpInput { - TypeCode = nameof(Api_Error), + TypeCode = nameof(Api_GetGroupName), MahuaPlatform = MahuaPlatform.QQLight, Data = new ReadOnlyDictionary(new Dictionary { -{nameof(input.Code), input.Code}, -{nameof(input.Str), input.Str}, +{nameof(input.GroupID), input.GroupID}, } ) } @@ -967,66 +1102,52 @@ public Task Api_Error([FromBody] QQLightApi_ErrorHttpInput input) return _mahuaCenter.HandleMahuaInput(httpInput); } /// - /// 置插件错误管理 + /// /// - public class QQLightApi_ErrorHttpInput + public class QQLightApi_GetGroupNameHttpInput { /// /// /// - public string Code { get; set; } - /// - /// - /// - public string Str { get; set; } + public string GroupID { get; set; } } /// - /// 取得群内成员的名片 + /// /// - [HttpPost("Api_GetGroupCard")] - public Task Api_GetGroupCard([FromBody] QQLightApi_GetGroupCardHttpInput input) + [HttpPost("Api_GetSoftVersion")] + public Task Api_GetSoftVersion([FromBody] QQLightApi_GetSoftVersionHttpInput input) { var httpInput = new HttpInput { - TypeCode = nameof(Api_GetGroupCard), + TypeCode = nameof(Api_GetSoftVersion), MahuaPlatform = MahuaPlatform.QQLight, Data = new ReadOnlyDictionary(new Dictionary -{ -{nameof(input.群号), input.群号}, -{nameof(input.QQ号), input.QQ号}, -} + { + } ) } ; return _mahuaCenter.HandleMahuaInput(httpInput); } /// - /// 取得群内成员的名片 + /// /// - public class QQLightApi_GetGroupCardHttpInput + public class QQLightApi_GetSoftVersionHttpInput { - /// - /// - /// - public string 群号 { get; set; } - /// - /// - /// - public string QQ号 { get; set; } } /// - /// 取得某个QQ的昵称 + /// /// - [HttpPost("Api_GetNick")] - public Task Api_GetNick([FromBody] QQLightApi_GetNickHttpInput input) + [HttpPost("Api_GetGroupIntroduce")] + public Task Api_GetGroupIntroduce([FromBody] QQLightApi_GetGroupIntroduceHttpInput input) { var httpInput = new HttpInput { - TypeCode = nameof(Api_GetNick), + TypeCode = nameof(Api_GetGroupIntroduce), MahuaPlatform = MahuaPlatform.QQLight, Data = new ReadOnlyDictionary(new Dictionary { -{nameof(input.QQ号), input.QQ号}, +{nameof(input.GroupID), input.GroupID}, } ) } @@ -1034,30 +1155,28 @@ public Task Api_GetNick([FromBody] QQLightApi_GetNickHttpInput input) return _mahuaCenter.HandleMahuaInput(httpInput); } /// - /// 取得某个QQ的昵称 + /// /// - public class QQLightApi_GetNickHttpInput + public class QQLightApi_GetGroupIntroduceHttpInput { /// /// /// - public string QQ号 { get; set; } + public string GroupID { get; set; } } /// - /// 修改群内成员的名片 + /// /// - [HttpPost("Api_SetGroupCard")] - public Task Api_SetGroupCard([FromBody] QQLightApi_SetGroupCardHttpInput input) + [HttpPost("Api_GetGroupOwner")] + public Task Api_GetGroupOwner([FromBody] QQLightApi_GetGroupOwnerHttpInput input) { var httpInput = new HttpInput { - TypeCode = nameof(Api_SetGroupCard), + TypeCode = nameof(Api_GetGroupOwner), MahuaPlatform = MahuaPlatform.QQLight, Data = new ReadOnlyDictionary(new Dictionary { -{nameof(input.群号), input.群号}, -{nameof(input.QQ号), input.QQ号}, -{nameof(input.新名片), input.新名片}, +{nameof(input.GroupID), input.GroupID}, } ) } @@ -1065,25 +1184,56 @@ public Task Api_SetGroupCard([FromBody] QQLightApi_SetGroupCardHttpInput input) return _mahuaCenter.HandleMahuaInput(httpInput); } /// - /// 修改群内成员的名片 + /// + /// + public class QQLightApi_GetGroupOwnerHttpInput + { + /// + /// + /// + public string GroupID { get; set; } + } + /// + /// //修改群成员的名片 + /// + [HttpPost("Api_SetGroupCard")] + public Task Api_SetGroupCard([FromBody] QQLightApi_SetGroupCardHttpInput input) + { + var httpInput = new HttpInput + { + TypeCode = nameof(Api_SetGroupCard), + MahuaPlatform = MahuaPlatform.QQLight, + Data = new ReadOnlyDictionary(new Dictionary +{ +{nameof(input.GroupID), input.GroupID}, +{nameof(input.QQID), input.QQID}, +{nameof(input.NewCard), input.NewCard}, +} + ) + } + ; + return _mahuaCenter.HandleMahuaInput(httpInput); + } + /// + /// //修改群成员的名片 /// public class QQLightApi_SetGroupCardHttpInput { /// /// /// - public string 群号 { get; set; } + public string GroupID { get; set; } /// /// /// - public string QQ号 { get; set; } + public string QQID { get; set; } /// /// /// - public string 新名片 { get; set; } + public string NewCard { get; set; } } /// - /// 取得某个QQ的名片赞数量 + /// //取得某个QQ的名片赞数量 /// [HttpPost("Api_GetPraiseNum")] public Task Api_GetPraiseNum([FromBody] QQLightApi_GetPraiseNumHttpInput input) @@ -1094,7 +1244,7 @@ public Task Api_GetPraiseNum([FromBody] QQLightApi_GetPraiseNumHttpInput input) MahuaPlatform = MahuaPlatform.QQLight, Data = new ReadOnlyDictionary(new Dictionary { -{nameof(input.QQ号), input.QQ号}, +{nameof(input.QQID), input.QQID}, } ) } @@ -1102,17 +1252,206 @@ public Task Api_GetPraiseNum([FromBody] QQLightApi_GetPraiseNumHttpInput input) return _mahuaCenter.HandleMahuaInput(httpInput); } /// - /// 取得某个QQ的名片赞数量 + /// //取得某个QQ的名片赞数量 /// public class QQLightApi_GetPraiseNumHttpInput { /// /// /// - public string QQ号 { get; set; } + public string QQID { get; set; } + } + /// + /// //取得某个QQ的等级 + /// + [HttpPost("Api_GetQQLevel")] + public Task Api_GetQQLevel([FromBody] QQLightApi_GetQQLevelHttpInput input) + { + var httpInput = new HttpInput + { + TypeCode = nameof(Api_GetQQLevel), + MahuaPlatform = MahuaPlatform.QQLight, + Data = new ReadOnlyDictionary(new Dictionary +{ +{nameof(input.QQID), input.QQID}, +} + ) + } + ; + return _mahuaCenter.HandleMahuaInput(httpInput); + } + /// + /// //取得某个QQ的等级 + /// + public class QQLightApi_GetQQLevelHttpInput + { + /// + /// + /// + public string QQID { get; set; } + } + /// + /// + /// + [HttpPost("Api_SetNick")] + public Task Api_SetNick([FromBody] QQLightApi_SetNickHttpInput input) + { + var httpInput = new HttpInput + { + TypeCode = nameof(Api_SetNick), + MahuaPlatform = MahuaPlatform.QQLight, + Data = new ReadOnlyDictionary(new Dictionary +{ +{nameof(input.NewNick), input.NewNick}, +} + ) + } + ; + return _mahuaCenter.HandleMahuaInput(httpInput); + } + /// + /// + /// + public class QQLightApi_SetNickHttpInput + { + /// + /// + /// + public string NewNick { get; set; } + } + /// + /// + /// + [HttpPost("Api_Taotaodolike")] + public Task Api_Taotaodolike([FromBody] QQLightApi_TaotaodolikeHttpInput input) + { + var httpInput = new HttpInput + { + TypeCode = nameof(Api_Taotaodolike), + MahuaPlatform = MahuaPlatform.QQLight, + Data = new ReadOnlyDictionary(new Dictionary +{ +{nameof(input.QQID), input.QQID}, +{nameof(input.URL), input.URL}, +} + ) + } + ; + return _mahuaCenter.HandleMahuaInput(httpInput); + } + /// + /// + /// + public class QQLightApi_TaotaodolikeHttpInput + { + /// + /// + /// + public string QQID { get; set; } + /// + /// + /// + public string URL { get; set; } + } + /// + /// + /// + [HttpPost("Api_Taotaofeeds")] + public Task Api_Taotaofeeds([FromBody] QQLightApi_TaotaofeedsHttpInput input) + { + var httpInput = new HttpInput + { + TypeCode = nameof(Api_Taotaofeeds), + MahuaPlatform = MahuaPlatform.QQLight, + Data = new ReadOnlyDictionary(new Dictionary +{ +{nameof(input.QQID), input.QQID}, +{nameof(input.URL), input.URL}, +{nameof(input.Content), input.Content}, +} + ) + } + ; + return _mahuaCenter.HandleMahuaInput(httpInput); + } + /// + /// + /// + public class QQLightApi_TaotaofeedsHttpInput + { + /// + /// + /// + public string QQID { get; set; } + /// + /// + /// + public string URL { get; set; } + /// + /// + /// + public string Content { get; set; } + } + /// + /// + /// + [HttpPost("Api_GetQQAge")] + public Task Api_GetQQAge([FromBody] QQLightApi_GetQQAgeHttpInput input) + { + var httpInput = new HttpInput + { + TypeCode = nameof(Api_GetQQAge), + MahuaPlatform = MahuaPlatform.QQLight, + Data = new ReadOnlyDictionary(new Dictionary +{ +{nameof(input.QQID), input.QQID}, +} + ) + } + ; + return _mahuaCenter.HandleMahuaInput(httpInput); } /// - /// 以JSON形式取得好友列表 + /// + /// + public class QQLightApi_GetQQAgeHttpInput + { + /// + /// + /// + public string QQID { get; set; } + } + /// + /// + /// + [HttpPost("Api_GetQQSex")] + public Task Api_GetQQSex([FromBody] QQLightApi_GetQQSexHttpInput input) + { + var httpInput = new HttpInput + { + TypeCode = nameof(Api_GetQQSex), + MahuaPlatform = MahuaPlatform.QQLight, + Data = new ReadOnlyDictionary(new Dictionary +{ +{nameof(input.QQID), input.QQID}, +} + ) + } + ; + return _mahuaCenter.HandleMahuaInput(httpInput); + } + /// + /// + /// + public class QQLightApi_GetQQSexHttpInput + { + /// + /// + /// + public string QQID { get; set; } + } + /// + /// //以JSON形式取得好友列表 /// [HttpPost("Api_GetFriendList")] public Task Api_GetFriendList([FromBody] QQLightApi_GetFriendListHttpInput input) @@ -1122,21 +1461,26 @@ public Task Api_GetFriendList([FromBody] QQLightApi_GetFriendListHttpInput input TypeCode = nameof(Api_GetFriendList), MahuaPlatform = MahuaPlatform.QQLight, Data = new ReadOnlyDictionary(new Dictionary - { - } +{ +{nameof(input.Cache), input.Cache}, +} ) } ; return _mahuaCenter.HandleMahuaInput(httpInput); } /// - /// 以JSON形式取得好友列表 + /// //以JSON形式取得好友列表 /// public class QQLightApi_GetFriendListHttpInput { + /// + /// + /// + public bool Cache { get; set; } } /// - /// 以JSON形式取得群列表 + /// //以JSON形式取得群列表 /// [HttpPost("Api_GetGroupList")] public Task Api_GetGroupList([FromBody] QQLightApi_GetGroupListHttpInput input) @@ -1146,21 +1490,26 @@ public Task Api_GetGroupList([FromBody] QQLightApi_GetGroupListHttpInput input) TypeCode = nameof(Api_GetGroupList), MahuaPlatform = MahuaPlatform.QQLight, Data = new ReadOnlyDictionary(new Dictionary - { - } +{ +{nameof(input.Cache), input.Cache}, +} ) } ; return _mahuaCenter.HandleMahuaInput(httpInput); } /// - /// 以JSON形式取得群列表 + /// //以JSON形式取得群列表 /// public class QQLightApi_GetGroupListHttpInput { + /// + /// + /// + public bool Cache { get; set; } } /// - /// 以JSON形式取得群成员列表 + /// //以JSON形式取得群成员列表 /// [HttpPost("Api_GetGroupMemberList")] public Task Api_GetGroupMemberList([FromBody] QQLightApi_GetGroupMemberListHttpInput input) @@ -1171,7 +1520,8 @@ public Task Api_GetGroupMemberList([FromBody] QQLightApi_GetGroupMemberListHttpI MahuaPlatform = MahuaPlatform.QQLight, Data = new ReadOnlyDictionary(new Dictionary { -{nameof(input.群号), input.群号}, +{nameof(input.GroupID), input.GroupID}, +{nameof(input.Cache), input.Cache}, } ) } @@ -1179,17 +1529,21 @@ public Task Api_GetGroupMemberList([FromBody] QQLightApi_GetGroupMemberListHttpI return _mahuaCenter.HandleMahuaInput(httpInput); } /// - /// 以JSON形式取得群成员列表 + /// //以JSON形式取得群成员列表 /// public class QQLightApi_GetGroupMemberListHttpInput { /// /// /// - public string 群号 { get; set; } + public string GroupID { get; set; } + /// + /// + /// + public bool Cache { get; set; } } /// - /// 以JSON形式取得某QQ个人信息 + /// //以JSON形式取得某QQ个人信息 /// [HttpPost("Api_GetQQInfo")] public Task Api_GetQQInfo([FromBody] QQLightApi_GetQQInfoHttpInput input) @@ -1200,7 +1554,7 @@ public Task Api_GetQQInfo([FromBody] QQLightApi_GetQQInfoHttpInput input) MahuaPlatform = MahuaPlatform.QQLight, Data = new ReadOnlyDictionary(new Dictionary { -{nameof(input.QQ号), input.QQ号}, +{nameof(input.QQID), input.QQID}, } ) } @@ -1208,17 +1562,17 @@ public Task Api_GetQQInfo([FromBody] QQLightApi_GetQQInfoHttpInput input) return _mahuaCenter.HandleMahuaInput(httpInput); } /// - /// 以JSON形式取得某QQ个人信息 + /// //以JSON形式取得某QQ个人信息 /// public class QQLightApi_GetQQInfoHttpInput { /// /// /// - public string QQ号 { get; set; } + public string QQID { get; set; } } /// - /// 以JSON形式取得某群信息 + /// //以JSON形式取得某群信息 /// [HttpPost("Api_GetGroupInfo")] public Task Api_GetGroupInfo([FromBody] QQLightApi_GetGroupInfoHttpInput input) @@ -1229,7 +1583,7 @@ public Task Api_GetGroupInfo([FromBody] QQLightApi_GetGroupInfoHttpInput input) MahuaPlatform = MahuaPlatform.QQLight, Data = new ReadOnlyDictionary(new Dictionary { -{nameof(input.群号), input.群号}, +{nameof(input.GroupID), input.GroupID}, } ) } @@ -1237,48 +1591,160 @@ public Task Api_GetGroupInfo([FromBody] QQLightApi_GetGroupInfoHttpInput input) return _mahuaCenter.HandleMahuaInput(httpInput); } /// - /// 以JSON形式取得某群信息 + /// //以JSON形式取得某群信息 /// public class QQLightApi_GetGroupInfoHttpInput { /// /// /// - public string 群号 { get; set; } + public string GroupID { get; set; } } /// - /// 让机器人快速重启 + /// //撤回自身消息 发出消息不可以秒撤回,腾讯限制,1~2s后才可撤回 /// - [HttpPost("Api_Restart")] - public Task Api_Restart([FromBody] QQLightApi_RestartHttpInput input) + [HttpPost("Api_DeleteMsg")] + public Task Api_DeleteMsg([FromBody] QQLightApi_DeleteMsgHttpInput input) { var httpInput = new HttpInput { - TypeCode = nameof(Api_Restart), + TypeCode = nameof(Api_DeleteMsg), MahuaPlatform = MahuaPlatform.QQLight, Data = new ReadOnlyDictionary(new Dictionary - { - } +{ +{nameof(input.Type), input.Type}, +{nameof(input.GroupID), input.GroupID}, +{nameof(input.QQID), input.QQID}, +{nameof(input.MsgID), input.MsgID}, +} + ) + } + ; + return _mahuaCenter.HandleMahuaInput(httpInput); + } + /// + /// //撤回自身消息 发出消息不可以秒撤回,腾讯限制,1~2s后才可撤回 + /// + public class QQLightApi_DeleteMsgHttpInput + { + /// + /// 1.好友消息 2.群消息 3.群临时消息 4.讨论组消息 5.讨论组临时消息 6.QQ临时消息 + /// + public int Type { get; set; } + /// + /// 撤回群消息、群临时消息、讨论组消息、讨论组临时消息必须填写,其余情况可留空 + /// + public string GroupID { get; set; } + /// + /// 撤回好友消息、群临时消息、讨论组临时消息、QQ临时消息必须填写,其余情况可留空 + /// + public string QQID { get; set; } + /// + /// 撤回的消息ID,机器人发送消息会返回自身的消息ID + /// + public string MsgID { get; set; } + } + /// + /// //改变QQ在线状态 + /// + [HttpPost("Api_SetQQState")] + public Task Api_SetQQState([FromBody] QQLightApi_SetQQStateHttpInput input) + { + var httpInput = new HttpInput + { + TypeCode = nameof(Api_SetQQState), + MahuaPlatform = MahuaPlatform.QQLight, + Data = new ReadOnlyDictionary(new Dictionary +{ +{nameof(input.Type), input.Type}, +} + ) + } + ; + return _mahuaCenter.HandleMahuaInput(httpInput); + } + /// + /// //改变QQ在线状态 + /// + public class QQLightApi_SetQQStateHttpInput + { + /// + /// 1.我在线上 2.Q我吧 3.离开 4.忙碌 5.请勿打扰 6.隐身 + /// + public int Type { get; set; } + } + /// + /// //邀请好友入群 + /// + [HttpPost("Api_InviteFriend")] + public Task Api_InviteFriend([FromBody] QQLightApi_InviteFriendHttpInput input) + { + var httpInput = new HttpInput + { + TypeCode = nameof(Api_InviteFriend), + MahuaPlatform = MahuaPlatform.QQLight, + Data = new ReadOnlyDictionary(new Dictionary +{ +{nameof(input.GroupID), input.GroupID}, +{nameof(input.QQID), input.QQID}, +} + ) + } + ; + return _mahuaCenter.HandleMahuaInput(httpInput); + } + /// + /// //邀请好友入群 + /// + public class QQLightApi_InviteFriendHttpInput + { + /// + /// + /// + public string GroupID { get; set; } + /// + /// + /// + public string QQID { get; set; } + } + /// + /// + /// + [HttpPost("Api_GetQQInfo_v2")] + public Task Api_GetQQInfo_v2([FromBody] QQLightApi_GetQQInfo_v2HttpInput input) + { + var httpInput = new HttpInput + { + TypeCode = nameof(Api_GetQQInfo_v2), + MahuaPlatform = MahuaPlatform.QQLight, + Data = new ReadOnlyDictionary(new Dictionary +{ +{nameof(input.QQID), input.QQID}, +} ) } ; return _mahuaCenter.HandleMahuaInput(httpInput); } /// - /// 让机器人快速重启 + /// /// - public class QQLightApi_RestartHttpInput + public class QQLightApi_GetQQInfo_v2HttpInput { + /// + /// + /// + public string QQID { get; set; } } /// - /// 让机器人刷新插件 + /// //取消COM库 /// - [HttpPost("Api_UpdatePlugin")] - public Task Api_UpdatePlugin([FromBody] QQLightApi_UpdatePluginHttpInput input) + [HttpPost("CoUninitialize")] + public Task CoUninitialize([FromBody] QQLightCoUninitializeHttpInput input) { var httpInput = new HttpInput { - TypeCode = nameof(Api_UpdatePlugin), + TypeCode = nameof(CoUninitialize), MahuaPlatform = MahuaPlatform.QQLight, Data = new ReadOnlyDictionary(new Dictionary { @@ -1289,25 +1755,24 @@ public Task Api_UpdatePlugin([FromBody] QQLightApi_UpdatePluginHttpInput input) return _mahuaCenter.HandleMahuaInput(httpInput); } /// - /// 让机器人刷新插件 + /// //取消COM库 /// - public class QQLightApi_UpdatePluginHttpInput + public class QQLightCoUninitializeHttpInput { } /// - /// 撤回群成员的消息 机器人必须为管理员 + /// //初始化COM库 /// - [HttpPost("Api_DeleteMsg")] - public Task Api_DeleteMsg([FromBody] QQLightApi_DeleteMsgHttpInput input) + [HttpPost("CoInitialize")] + public Task CoInitialize([FromBody] QQLightCoInitializeHttpInput input) { var httpInput = new HttpInput { - TypeCode = nameof(Api_DeleteMsg), + TypeCode = nameof(CoInitialize), MahuaPlatform = MahuaPlatform.QQLight, Data = new ReadOnlyDictionary(new Dictionary { -{nameof(input.群号), input.群号}, -{nameof(input.消息ID), input.消息ID}, +{nameof(input.pvReserved), input.pvReserved}, } ) } @@ -1315,32 +1780,67 @@ public Task Api_DeleteMsg([FromBody] QQLightApi_DeleteMsgHttpInput input) return _mahuaCenter.HandleMahuaInput(httpInput); } /// - /// 撤回群成员的消息 机器人必须为管理员 + /// //初始化COM库 /// - public class QQLightApi_DeleteMsgHttpInput + public class QQLightCoInitializeHttpInput { /// /// /// - public string 群号 { get; set; } + public int pvReserved { get; set; } + } + /// + /// //上传图片,获得图片GUID, + /// + [HttpPost("Api_UpLoadPic")] + public Task Api_UpLoadPic([FromBody] QQLightApi_UpLoadPicHttpInput input) + { + var httpInput = new HttpInput + { + TypeCode = nameof(Api_UpLoadPic), + MahuaPlatform = MahuaPlatform.QQLight, + Data = new ReadOnlyDictionary(new Dictionary +{ +{nameof(input.Type), input.Type}, +{nameof(input.对象), input.对象}, +{nameof(input.Bin), input.Bin}, +} + ) + } + ; + return _mahuaCenter.HandleMahuaInput(httpInput); + } + /// + /// //上传图片,获得图片GUID, + /// + public class QQLightApi_UpLoadPicHttpInput + { /// - /// + /// 1.私聊图片 2.群聊图片 + /// + public int Type { get; set; } + /// + /// 私聊图片填写QQID,群聊/讨论组图片填写群号讨论组号 /// - public string 消息ID { get; set; } + public string 对象 { get; set; } + /// + /// 图片的Hex流 + /// + public string Bin { get; set; } } /// - /// 改变QQ在线状态 + /// //设置插件状态,开启或关闭 /// - [HttpPost("Api_SetQQState")] - public Task Api_SetQQState([FromBody] QQLightApi_SetQQStateHttpInput input) + [HttpPost("Api_SetPluginState")] + public Task Api_SetPluginState([FromBody] QQLightApi_SetPluginStateHttpInput input) { var httpInput = new HttpInput { - TypeCode = nameof(Api_SetQQState), + TypeCode = nameof(Api_SetPluginState), MahuaPlatform = MahuaPlatform.QQLight, Data = new ReadOnlyDictionary(new Dictionary { -{nameof(input.类型), input.类型}, +{nameof(input.State), input.State}, } ) } @@ -1348,29 +1848,29 @@ public Task Api_SetQQState([FromBody] QQLightApi_SetQQStateHttpInput input) return _mahuaCenter.HandleMahuaInput(httpInput); } /// - /// 改变QQ在线状态 + /// //设置插件状态,开启或关闭 /// - public class QQLightApi_SetQQStateHttpInput + public class QQLightApi_SetPluginStateHttpInput { /// - /// 1.我在线上 2.Q我吧 3.离开 4.忙碌 5.请勿打扰 6.隐身 + /// 真:启用自身 假:关闭自身 /// - public int 类型 { get; set; } + public bool State { get; set; } } /// /// /// - [HttpPost("Api_InviteFriend")] - public Task Api_InviteFriend([FromBody] QQLightApi_InviteFriendHttpInput input) + [HttpPost("Api_DeleteFile")] + public Task Api_DeleteFile([FromBody] QQLightApi_DeleteFileHttpInput input) { var httpInput = new HttpInput { - TypeCode = nameof(Api_InviteFriend), + TypeCode = nameof(Api_DeleteFile), MahuaPlatform = MahuaPlatform.QQLight, Data = new ReadOnlyDictionary(new Dictionary { {nameof(input.群号), input.群号}, -{nameof(input.好友QQ), input.好友QQ}, +{nameof(input.文件GUID), input.文件GUID}, } ) } @@ -1380,7 +1880,7 @@ public Task Api_InviteFriend([FromBody] QQLightApi_InviteFriendHttpInput input) /// /// /// - public class QQLightApi_InviteFriendHttpInput + public class QQLightApi_DeleteFileHttpInput { /// /// @@ -1389,21 +1889,23 @@ public class QQLightApi_InviteFriendHttpInput /// /// /// - public string 好友QQ { get; set; } + public string 文件GUID { get; set; } } /// /// /// - [HttpPost("Api_GetQQinfo_v2")] - public Task Api_GetQQinfo_v2([FromBody] QQLightApi_GetQQinfo_v2HttpInput input) + [HttpPost("Api_RepeatFile")] + public Task Api_RepeatFile([FromBody] QQLightApi_RepeatFileHttpInput input) { var httpInput = new HttpInput { - TypeCode = nameof(Api_GetQQinfo_v2), + TypeCode = nameof(Api_RepeatFile), MahuaPlatform = MahuaPlatform.QQLight, Data = new ReadOnlyDictionary(new Dictionary { -{nameof(input.QQ号), input.QQ号}, +{nameof(input.来源对象), input.来源对象}, +{nameof(input.转发群号), input.转发群号}, +{nameof(input.文件GUID), input.文件GUID}, } ) } @@ -1413,28 +1915,65 @@ public Task Api_GetQQinfo_v2([FromBody] QQLightApi_GetQQinfo_v2HttpInput input) /// /// /// - public class QQLightApi_GetQQinfo_v2HttpInput + public class QQLightApi_RepeatFileHttpInput { /// /// /// - public string QQ号 { get; set; } + public string 来源对象 { get; set; } + /// + /// + /// + public string 转发群号 { get; set; } + /// + /// + /// + public string 文件GUID { get; set; } } /// /// /// - [HttpPost("Api_UpLoadPic")] - public Task Api_UpLoadPic([FromBody] QQLightApi_UpLoadPicHttpInput input) + [HttpPost("Api_ClearOffLineFile")] + public Task Api_ClearOffLineFile([FromBody] QQLightApi_ClearOffLineFileHttpInput input) { var httpInput = new HttpInput { - TypeCode = nameof(Api_UpLoadPic), + TypeCode = nameof(Api_ClearOffLineFile), + MahuaPlatform = MahuaPlatform.QQLight, + Data = new ReadOnlyDictionary(new Dictionary + { + } + ) + } + ; + return _mahuaCenter.HandleMahuaInput(httpInput); + } + /// + /// + /// + public class QQLightApi_ClearOffLineFileHttpInput + { + } + /// + /// + /// + [HttpPost("WideCharToMultiByte")] + public Task WideCharToMultiByte([FromBody] QQLightWideCharToMultiByteHttpInput input) + { + var httpInput = new HttpInput + { + TypeCode = nameof(WideCharToMultiByte), MahuaPlatform = MahuaPlatform.QQLight, Data = new ReadOnlyDictionary(new Dictionary { -{nameof(input.类型), input.类型}, -{nameof(input.对象), input.对象}, -{nameof(input.图片字节集), input.图片字节集}, +{nameof(input.CodePage), input.CodePage}, +{nameof(input.dwFlags), input.dwFlags}, +{nameof(input.lpWideCharStr), input.lpWideCharStr}, +{nameof(input.cchWideChar), input.cchWideChar}, +{nameof(input.lpMultiByteStr), input.lpMultiByteStr}, +{nameof(input.cchMultiByte), input.cchMultiByte}, +{nameof(input.lpDefaultChar), input.lpDefaultChar}, +{nameof(input.lpUsedDefaultChar), input.lpUsedDefaultChar}, } ) } @@ -1444,20 +1983,40 @@ public Task Api_UpLoadPic([FromBody] QQLightApi_UpLoadPicHttpInput input) /// /// /// - public class QQLightApi_UpLoadPicHttpInput + public class QQLightWideCharToMultiByteHttpInput { /// /// /// - public int 类型 { get; set; } + public int CodePage { get; set; } /// /// /// - public string 对象 { get; set; } + public int dwFlags { get; set; } /// - /// Hex形式 + /// 址 + /// + public string lpWideCharStr { get; set; } + /// + /// + /// + public int cchWideChar { get; set; } + /// + /// 址 + /// + public string lpMultiByteStr { get; set; } + /// + /// + /// + public int cchMultiByte { get; set; } + /// + /// + /// + public int lpDefaultChar { get; set; } + /// + /// /// - public string 图片字节集 { get; set; } + public int lpUsedDefaultChar { get; set; } } } } diff --git a/src/Newbe.Mahua.InputReceivers.WebsocketApi/Newbe.Mahua.InputReceivers.WebsocketApi.csproj b/src/Newbe.Mahua.InputReceivers.WebsocketApi/Newbe.Mahua.InputReceivers.WebsocketApi.csproj index c8f17ce..505143d 100644 --- a/src/Newbe.Mahua.InputReceivers.WebsocketApi/Newbe.Mahua.InputReceivers.WebsocketApi.csproj +++ b/src/Newbe.Mahua.InputReceivers.WebsocketApi/Newbe.Mahua.InputReceivers.WebsocketApi.csproj @@ -7,10 +7,10 @@ - - + + - + diff --git a/src/Newbe.Mahua.MPQ.Native/MpqApi.cs b/src/Newbe.Mahua.MPQ.Native/MpqApi.cs index ff74e40..98dc1d9 100644 --- a/src/Newbe.Mahua.MPQ.Native/MpqApi.cs +++ b/src/Newbe.Mahua.MPQ.Native/MpqApi.cs @@ -7,113 +7,91 @@ namespace Newbe.Mahua.MPQ.Native public class MpqApi : IMpqApi { /// - /// 根据提交的QQ号计算得到页面操作用参数Bkn或G_tk` + /// 根据提交的QQ号计算得到页面操作用参数Bkn或G_tk` /// /// /// string IMpqApi.Api_GetGtk_Bkn([Description("")] string 响应的QQ) - { - return NativeMethods.Api_GetGtk_Bkn(响应的QQ); - } + => NativeMethods.Api_GetGtk_Bkn(响应的QQ); /// - /// 根据提交的QQ号计算得到页面操作用参数长Bkn或长G_tk` + /// 根据提交的QQ号计算得到页面操作用参数长Bkn或长G_tk` /// /// /// string IMpqApi.Api_GetBkn32([Description("")] string 响应的QQ) - { - return NativeMethods.Api_GetBkn32(响应的QQ); - } + => NativeMethods.Api_GetBkn32(响应的QQ); /// - /// 根据提交的QQ号计算得到页面操作用参数长Ldw` + /// 根据提交的QQ号计算得到页面操作用参数长Ldw` /// /// /// string IMpqApi.Api_GetLdw([Description("")] string 响应的QQ) - { - return NativeMethods.Api_GetLdw(响应的QQ); - } + => NativeMethods.Api_GetLdw(响应的QQ); /// - /// 取得框架所在目录.可能鸡肋了。` + /// 取得框架所在目录.可能鸡肋了。` /// /// string IMpqApi.Api_GetRunPath() - { - return NativeMethods.Api_GetRunPath(); - } + => NativeMethods.Api_GetRunPath(); /// - /// 取得当前框架内在线可用的QQ列表` + /// 取得当前框架内在线可用的QQ列表` /// /// string IMpqApi.Api_GetOnlineQQlist() - { - return NativeMethods.Api_GetOnlineQQlist(); - } + => NativeMethods.Api_GetOnlineQQlist(); /// - /// 取得框架内所有QQ列表。包括未登录以及登录失败的QQ` + /// 取得框架内所有QQ列表。包括未登录以及登录失败的QQ` /// /// string IMpqApi.Api_GetQQlist() - { - return NativeMethods.Api_GetQQlist(); - } + => NativeMethods.Api_GetQQlist(); /// - /// 根据QQ取得对应的会话秘钥` + /// 根据QQ取得对应的会话秘钥` /// /// /// string IMpqApi.Api_GetSessionkey([Description("")] string 响应的QQ) - { - return NativeMethods.Api_GetSessionkey(响应的QQ); - } + => NativeMethods.Api_GetSessionkey(响应的QQ); /// - /// 取得页面登录用的Clientkey` + /// 取得页面登录用的Clientkey` /// /// /// string IMpqApi.Api_GetClientkey([Description("")] string 响应的QQ) - { - return NativeMethods.Api_GetClientkey(响应的QQ); - } + => NativeMethods.Api_GetClientkey(响应的QQ); /// - /// 取得页面登录用的长Clientkey` + /// 取得页面登录用的长Clientkey` /// /// /// string IMpqApi.Api_GetLongClientkey([Description("")] string 响应的QQ) - { - return NativeMethods.Api_GetLongClientkey(响应的QQ); - } + => NativeMethods.Api_GetLongClientkey(响应的QQ); /// - /// 取得页面操作用的Cookies` + /// 取得页面操作用的Cookies` /// /// /// string IMpqApi.Api_GetCookies([Description("")] string 响应的QQ) - { - return NativeMethods.Api_GetCookies(响应的QQ); - } + => NativeMethods.Api_GetCookies(响应的QQ); /// - /// 取得框架内设置的信息发送前缀` + /// 取得框架内设置的信息发送前缀` /// /// string IMpqApi.Api_GetPrefix() - { - return NativeMethods.Api_GetPrefix(); - } + => NativeMethods.Api_GetPrefix(); /// - /// 将群名片加入高速缓存当作.` + /// 将群名片加入高速缓存当作.` /// /// /// @@ -121,34 +99,28 @@ string IMpqApi.Api_GetPrefix() /// void IMpqApi.Api_Cache_NameCard([Description("")] string 群号, [Description("")] string QQ, [Description("")] string 名片) - { - NativeMethods.Api_Cache_NameCard(群号, QQ, 名片); - } + => NativeMethods.Api_Cache_NameCard(群号, QQ, 名片); /// - /// 将指定QQ移出QQ黑名单` + /// 将指定QQ移出QQ黑名单` /// /// /// /// void IMpqApi.Api_DBan([Description("")] string 响应的QQ, [Description("")] string QQ) - { - NativeMethods.Api_DBan(响应的QQ, QQ); - } + => NativeMethods.Api_DBan(响应的QQ, QQ); /// - /// 将指定QQ列入QQ黑名单` + /// 将指定QQ列入QQ黑名单` /// /// /// /// void IMpqApi.Api_Ban([Description("")] string 响应的QQ, [Description("")] string QQ) - { - NativeMethods.Api_Ban(响应的QQ, QQ); - } + => NativeMethods.Api_Ban(响应的QQ, QQ); /// - /// 禁言群成员` + /// 禁言群成员` /// /// /// 禁言对象所在群. @@ -158,12 +130,21 @@ void IMpqApi.Api_Ban([Description("")] string 响应的QQ, [Description("")] str bool IMpqApi.Api_Shutup([Description("")] string 响应的QQ, [Description("禁言对象所在群.")] string 群号, [Description("禁言对象.留空为全群禁言")] string QQ, [Description("单位:秒 最大为1个月. 为零解除对象或全群禁言")] int 时长) - { - return NativeMethods.Api_Shutup(响应的QQ, 群号, QQ, 时长); - } + => NativeMethods.Api_Shutup(响应的QQ, 群号, QQ, 时长); + + /// + /// 根据群号+QQ判断指定群员是否被禁言 获取失败的情况下亦会返回假 + /// + /// + /// 欲判断对象所在群. + /// 欲判断对象 + /// + bool IMpqApi.Api_IsShutup([Description("")] string 响应的QQ, [Description("欲判断对象所在群.")] string 群号, + [Description("欲判断对象")] string QQ) + => NativeMethods.Api_IsShutup(响应的QQ, 群号, QQ); /// - /// 发群公告` + /// 发群公告` /// /// /// @@ -172,23 +153,19 @@ bool IMpqApi.Api_Shutup([Description("")] string 响应的QQ, [Description("禁 /// void IMpqApi.Api_SetNotice([Description("")] string 响应的QQ, [Description("")] string 群号, [Description("")] string 标题, [Description("")] string 内容) - { - NativeMethods.Api_SetNotice(响应的QQ, 群号, 标题, 内容); - } + => NativeMethods.Api_SetNotice(响应的QQ, 群号, 标题, 内容); /// - /// 取群公告` + /// 取群公告` /// /// /// /// string IMpqApi.Api_GetNotice([Description("")] string 响应的QQ, [Description("")] string 群号) - { - return NativeMethods.Api_GetNotice(响应的QQ, 群号); - } + => NativeMethods.Api_GetNotice(响应的QQ, 群号); /// - /// 取群名片` + /// 取群名片` /// /// /// @@ -196,12 +173,10 @@ string IMpqApi.Api_GetNotice([Description("")] string 响应的QQ, [Description( /// string IMpqApi.Api_GetNameCard([Description("")] string 响应的QQ, [Description("")] string 群号, [Description("")] string QQ) - { - return NativeMethods.Api_GetNameCard(响应的QQ, 群号, QQ); - } + => NativeMethods.Api_GetNameCard(响应的QQ, 群号, QQ); /// - /// 设置群名片` + /// 设置群名片` /// /// /// @@ -210,46 +185,38 @@ string IMpqApi.Api_GetNameCard([Description("")] string 响应的QQ, [Descriptio /// void IMpqApi.Api_SetNameCard([Description("")] string 响应的QQ, [Description("")] string 群号, [Description("")] string QQ, [Description("")] string 名片) - { - NativeMethods.Api_SetNameCard(响应的QQ, 群号, QQ, 名片); - } + => NativeMethods.Api_SetNameCard(响应的QQ, 群号, QQ, 名片); /// - /// 退出讨论组` + /// 退出讨论组` /// /// /// /// void IMpqApi.Api_QuitDG([Description("")] string 响应的QQ, [Description("")] string 讨论组ID) - { - NativeMethods.Api_QuitDG(响应的QQ, 讨论组ID); - } + => NativeMethods.Api_QuitDG(响应的QQ, 讨论组ID); /// - /// 删除好友` + /// 删除好友` /// /// /// /// bool IMpqApi.Api_DelFriend([Description("")] string 响应的QQ, [Description("")] string QQ) - { - return NativeMethods.Api_DelFriend(响应的QQ, QQ); - } + => NativeMethods.Api_DelFriend(响应的QQ, QQ); /// - /// 将对象移除群` + /// 将对象移除群` /// /// /// /// /// bool IMpqApi.Api_Kick([Description("")] string 响应的QQ, [Description("")] string 群号, [Description("")] string 对象) - { - return NativeMethods.Api_Kick(响应的QQ, 群号, 对象); - } + => NativeMethods.Api_Kick(响应的QQ, 群号, 对象); /// - /// 主动加群.为了避免广告、群发行为。出现验证码时将会直接失败不处理` + /// 主动加群.为了避免广告、群发行为。出现验证码时将会直接失败不处理` /// /// /// @@ -257,23 +224,19 @@ bool IMpqApi.Api_Kick([Description("")] string 响应的QQ, [Description("")] st /// void IMpqApi.Api_JoinGroup([Description("")] string 响应的QQ, [Description("")] string 群号, [Description("")] string 附加理由) - { - NativeMethods.Api_JoinGroup(响应的QQ, 群号, 附加理由); - } + => NativeMethods.Api_JoinGroup(响应的QQ, 群号, 附加理由); /// - /// 退出群` + /// 退出群` /// /// /// /// void IMpqApi.Api_QuitGroup([Description("")] string 响应的QQ, [Description("")] string 群号) - { - NativeMethods.Api_QuitGroup(响应的QQ, 群号); - } + => NativeMethods.Api_QuitGroup(响应的QQ, 群号); /// - /// 返回值:成功返回图片GUID用于发送该图片.失败返回空. 图片尺寸应小于4MB` + /// 返回值:成功返回图片GUID用于发送该图片.失败返回空. 图片尺寸应小于4MB` /// /// 机器人QQ /// 1好友2群 注:好友图和群图的GUID并不相同并不通用 需要非别上传。群、讨论组用类型2 临时会话、好友信息需要类型1 @@ -284,23 +247,19 @@ string IMpqApi.Api_UploadPic([Description("机器人QQ")] string 响应的QQ, [Description("1好友2群 注:好友图和群图的GUID并不相同并不通用 需要非别上传。群、讨论组用类型2 临时会话、好友信息需要类型1")] int 参_上传类型, [Description("上传该图片所属的群号或QQ")] string 参_参考对象, [Description("址, 图片字节集数据或字节集数据指针()")] byte[] 参_图片数据) - { - return NativeMethods.Api_UploadPic(响应的QQ, 参_上传类型, 参_参考对象, 参_图片数据); - } + => NativeMethods.Api_UploadPic(响应的QQ, 参_上传类型, 参_参考对象, 参_图片数据); /// - /// 根据图片GUID取得图片下载连接 失败返回空` + /// 根据图片GUID取得图片下载连接 失败返回空` /// /// {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}.jpg这样的GUID /// string IMpqApi.Api_GuidGetPicLink([Description("{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}.jpg这样的GUID")] string 图片GUID) - { - return NativeMethods.Api_GuidGetPicLink(图片GUID); - } + => NativeMethods.Api_GuidGetPicLink(图片GUID); /// - /// 回复信息 请尽量避免使用该API` + /// 回复信息 请尽量避免使用该API` /// /// /// 1好友 2群 3讨论组 4群临时会话 5讨论组临时会话 @@ -309,12 +268,10 @@ string IMpqApi.Api_GuidGetPicLink([Description("{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxx /// int IMpqApi.Api_Reply([Description("")] string 响应的QQ, [Description("1好友 2群 3讨论组 4群临时会话 5讨论组临时会话")] int 信息类型, [Description("接收这条信息的对象")] string 回复对象, [Description("信息内容")] string 内容) - { - return NativeMethods.Api_Reply(响应的QQ, 信息类型, 回复对象, 内容); - } + => NativeMethods.Api_Reply(响应的QQ, 信息类型, 回复对象, 内容); /// - /// 向对象、目标发送信息 支持好友 群 讨论组 群临时会话 讨论组临时会话` + /// 向对象、目标发送信息 支持好友 群 讨论组 群临时会话 讨论组临时会话` /// /// /// 1好友 2群 3讨论组 4群临时会话 5讨论组临时会话 @@ -326,351 +283,283 @@ int IMpqApi.Api_Reply([Description("")] string 响应的QQ, [Description("1好 int IMpqApi.Api_SendMsg([Description("")] string 响应的QQ, [Description("1好友 2群 3讨论组 4群临时会话 5讨论组临时会话")] int 信息类型, [Description("无特殊说明情况下留空或填零")] int 参考子类型, [Description("发送群信息、讨论组信息、群临时会话信息、讨论组临时会话信息时填写")] string 收信群_讨论组, [Description("最终接收这条信息的对象QQ")] string 收信对象, [Description("信息内容")] string 内容) - { - return NativeMethods.Api_SendMsg(响应的QQ, 信息类型, 参考子类型, 收信群_讨论组, 收信对象, 内容); - } + => NativeMethods.Api_SendMsg(响应的QQ, 信息类型, 参考子类型, 收信群_讨论组, 收信对象, 内容); /// - /// 发送封包` + /// 发送封包` /// /// /// string IMpqApi.Api_Send([Description("")] string 封包内容) - { - return NativeMethods.Api_Send(封包内容); - } + => NativeMethods.Api_Send(封包内容); /// - /// 在框架记录页输出一行信息` + /// 在框架记录页输出一行信息` /// /// 输出的内容 /// int IMpqApi.Api_OutPut([Description("输出的内容")] string 内容) - { - return NativeMethods.Api_OutPut(内容); - } + => NativeMethods.Api_OutPut(内容); /// - /// 取得本插件启用状态` + /// 取得本插件启用状态` /// /// bool IMpqApi.Api_IsEnable() - { - return NativeMethods.Api_IsEnable(); - } + => NativeMethods.Api_IsEnable(); /// - /// 登录一个现存的QQ` + /// 登录一个现存的QQ` /// /// 欲登录的Q /// bool IMpqApi.Api_Login([Description("欲登录的Q")] string QQ) - { - return NativeMethods.Api_Login(QQ); - } + => NativeMethods.Api_Login(QQ); /// - /// 让指定QQ下线` + /// 让指定QQ下线` /// /// /// void IMpqApi.Api_Logout([Description("")] string QQ) - { - NativeMethods.Api_Logout(QQ); - } + => NativeMethods.Api_Logout(QQ); /// - /// tean加密算法` + /// tean加密算法` /// /// /// /// string IMpqApi.Api_Tea加密([Description("")] string 加密内容, [Description("")] string Key) - { - return NativeMethods.Api_Tea加密(加密内容, Key); - } + => NativeMethods.Api_Tea加密(加密内容, Key); /// - /// tean解密算法` + /// tean解密算法` /// /// /// /// string IMpqApi.Api_Tea解密([Description("")] string 解密内容, [Description("")] string Key) - { - return NativeMethods.Api_Tea解密(解密内容, Key); - } + => NativeMethods.Api_Tea解密(解密内容, Key); /// - /// 取用户名` + /// 取用户名` /// /// /// string IMpqApi.Api_GetNick([Description("")] string QQ) - { - return NativeMethods.Api_GetNick(QQ); - } + => NativeMethods.Api_GetNick(QQ); /// - /// 取QQ等级+QQ会员等级 返回json格式信息` + /// 取QQ等级+QQ会员等级 返回json格式信息` /// /// /// string IMpqApi.Api_GetQQLevel([Description("")] string QQ) - { - return NativeMethods.Api_GetQQLevel(QQ); - } + => NativeMethods.Api_GetQQLevel(QQ); /// - /// 群号转群ID` + /// 群号转群ID` /// /// /// string IMpqApi.Api_GNGetGid([Description("")] string 群号) - { - return NativeMethods.Api_GNGetGid(群号); - } + => NativeMethods.Api_GNGetGid(群号); /// - /// 群ID转群号` + /// 群ID转群号` /// /// /// string IMpqApi.Api_GidGetGN([Description("")] string 群ID) - { - return NativeMethods.Api_GidGetGN(群ID); - } + => NativeMethods.Api_GidGetGN(群ID); /// - /// 取框架版本号(发布时间戳` + /// 取框架版本号(发布时间戳` /// /// int IMpqApi.Api_GetVersion() - { - return NativeMethods.Api_GetVersion(); - } + => NativeMethods.Api_GetVersion(); /// - /// 取框架版本名` + /// 取框架版本名` /// /// string IMpqApi.Api_GetVersionName() - { - return NativeMethods.Api_GetVersionName(); - } + => NativeMethods.Api_GetVersionName(); /// - /// 取当前框架内部时间戳_周期性与服务器时间同步` + /// 取当前框架内部时间戳_周期性与服务器时间同步` /// /// int IMpqApi.Api_GetTimeStamp() - { - return NativeMethods.Api_GetTimeStamp(); - } + => NativeMethods.Api_GetTimeStamp(); /// - /// 取得框架输出列表内所有信息` + /// 取得框架输出列表内所有信息` /// /// string IMpqApi.Api_GetLog() - { - return NativeMethods.Api_GetLog(); - } + => NativeMethods.Api_GetLog(); /// - /// 判断是否处于被屏蔽群信息状态。` + /// 判断是否处于被屏蔽群信息状态。` /// /// /// bool IMpqApi.Api_IfBlock([Description("")] string 响应的QQ) - { - return NativeMethods.Api_IfBlock(响应的QQ); - } + => NativeMethods.Api_IfBlock(响应的QQ); /// - /// 取包括群主在内的群管列表` + /// 取包括群主在内的群管列表` /// /// /// /// string IMpqApi.Api_GetAdminList([Description("")] string 响应的QQ, [Description("")] string 群号) - { - return NativeMethods.Api_GetAdminList(响应的QQ, 群号); - } + => NativeMethods.Api_GetAdminList(响应的QQ, 群号); /// - /// 发说说` + /// 发说说` /// /// /// /// string IMpqApi.Api_AddTaotao([Description("")] string 响应的QQ, [Description("")] string 内容) - { - return NativeMethods.Api_AddTaotao(响应的QQ, 内容); - } + => NativeMethods.Api_AddTaotao(响应的QQ, 内容); /// - /// 取个签` + /// 取个签` /// /// /// /// string IMpqApi.Api_GetSign([Description("")] string 响应的QQ, [Description("")] string 对象) - { - return NativeMethods.Api_GetSign(响应的QQ, 对象); - } + => NativeMethods.Api_GetSign(响应的QQ, 对象); /// - /// 设置个签` + /// 设置个签` /// /// /// /// string IMpqApi.Api_SetSign([Description("")] string 响应的QQ, [Description("")] string 内容) - { - return NativeMethods.Api_SetSign(响应的QQ, 内容); - } + => NativeMethods.Api_SetSign(响应的QQ, 内容); /// - /// 通过qun.qzone.qq.com接口取得取群列表.成功返回转码后的JSON格式文本信息` + /// 通过qun.qzone.qq.com接口取得取群列表.成功返回转码后的JSON格式文本信息` /// /// /// string IMpqApi.Api_GetGroupListA([Description("")] string 响应的QQ) - { - return NativeMethods.Api_GetGroupListA(响应的QQ); - } + => NativeMethods.Api_GetGroupListA(响应的QQ); /// - /// 通过qun.qq.com接口取得取群列表.成功返回转码后的JSON格式文本信息` + /// 通过qun.qq.com接口取得取群列表.成功返回转码后的JSON格式文本信息` /// /// /// string IMpqApi.Api_GetGroupListB([Description("")] string 响应的QQ) - { - return NativeMethods.Api_GetGroupListB(响应的QQ); - } + => NativeMethods.Api_GetGroupListB(响应的QQ); /// - /// 通过qun.qq.com接口取得群成员列表 成功返回转码后的JSON格式文本` + /// 通过qun.qq.com接口取得群成员列表 成功返回转码后的JSON格式文本` /// /// /// /// string IMpqApi.Api_GetGroupMemberA([Description("")] string 响应的QQ, [Description("")] string 群号) - { - return NativeMethods.Api_GetGroupMemberA(响应的QQ, 群号); - } + => NativeMethods.Api_GetGroupMemberA(响应的QQ, 群号); /// - /// 通过qun.qzone.qq.com接口取得群成员列表 成功返回转码后的JSON格式文本` + /// 通过qun.qzone.qq.com接口取得群成员列表 成功返回转码后的JSON格式文本` /// /// /// /// string IMpqApi.Api_GetGroupMemberB([Description("")] string 响应的QQ, [Description("")] string 群号) - { - return NativeMethods.Api_GetGroupMemberB(响应的QQ, 群号); - } + => NativeMethods.Api_GetGroupMemberB(响应的QQ, 群号); /// - /// 通过qun.qq.com接口取得好友列表。成功返回转码后的JSON文本` + /// 通过qun.qq.com接口取得好友列表。成功返回转码后的JSON文本` /// /// /// string IMpqApi.Api_GetFriendList([Description("")] string 响应的QQ) - { - return NativeMethods.Api_GetFriendList(响应的QQ); - } + => NativeMethods.Api_GetFriendList(响应的QQ); /// - /// 取Q龄 成功返回Q龄 失败返回-1` + /// 取Q龄 成功返回Q龄 失败返回-1` /// /// /// /// int IMpqApi.Api_GetQQAge([Description("")] string 响应的QQ, [Description("")] string QQ) - { - return NativeMethods.Api_GetQQAge(响应的QQ, QQ); - } + => NativeMethods.Api_GetQQAge(响应的QQ, QQ); /// - /// 取年龄 成功返回年龄 失败返回-1` + /// 取年龄 成功返回年龄 失败返回-1` /// /// /// /// int IMpqApi.Api_GetAge([Description("")] string 响应的QQ, [Description("")] string QQ) - { - return NativeMethods.Api_GetAge(响应的QQ, QQ); - } + => NativeMethods.Api_GetAge(响应的QQ, QQ); /// - /// 取个人说明` + /// 取个人说明` /// /// /// 对象QQ /// string IMpqApi.Api_GetPersonalProfile([Description("")] string 响应的QQ, [Description("对象QQ")] string QQ) - { - return NativeMethods.Api_GetPersonalProfile(响应的QQ, QQ); - } + => NativeMethods.Api_GetPersonalProfile(响应的QQ, QQ); /// - /// 取邮箱 成功返回邮箱 失败返回空` + /// 取邮箱 成功返回邮箱 失败返回空` /// /// /// /// string IMpqApi.Api_GetEmail([Description("")] string 响应的QQ, [Description("")] string QQ) - { - return NativeMethods.Api_GetEmail(响应的QQ, QQ); - } + => NativeMethods.Api_GetEmail(响应的QQ, QQ); /// - /// 取对象性别 1男 2女 未或失败返回-1` + /// 取对象性别 1男 2女 未或失败返回-1` /// /// /// /// int IMpqApi.Api_GetGender([Description("")] string 响应的QQ, [Description("")] string QQ) - { - return NativeMethods.Api_GetGender(响应的QQ, QQ); - } + => NativeMethods.Api_GetGender(响应的QQ, QQ); /// - /// 向好友发送‘正在输入’的状态信息.当好友收到信息之后 “正在输入”状态会立刻被打断` + /// 向好友发送‘正在输入’的状态信息.当好友收到信息之后 “正在输入”状态会立刻被打断` /// /// /// /// int IMpqApi.Api_SendTyping([Description("")] string 响应的QQ, [Description("")] string QQ) - { - return NativeMethods.Api_SendTyping(响应的QQ, QQ); - } + => NativeMethods.Api_SendTyping(响应的QQ, QQ); /// - /// 向好友发送窗口抖动信息` + /// 向好友发送窗口抖动信息` /// /// /// /// int IMpqApi.Api_SendShake([Description("")] string 响应的QQ, [Description("")] string QQ) - { - return NativeMethods.Api_SendShake(响应的QQ, QQ); - } + => NativeMethods.Api_SendShake(响应的QQ, QQ); /// - /// 取得框架内随机一个在线且可以使用的QQ` + /// 取得框架内随机一个在线且可以使用的QQ` /// /// string IMpqApi.Api_GetRadomOnlineQQ() - { - return NativeMethods.Api_GetRadomOnlineQQ(); - } + => NativeMethods.Api_GetRadomOnlineQQ(); /// - /// 往帐号列表添加一个Q.当该Q已存在时则覆盖密码` + /// 往帐号列表添加一个Q.当该Q已存在时则覆盖密码` /// /// /// @@ -679,12 +568,10 @@ string IMpqApi.Api_GetRadomOnlineQQ() bool IMpqApi.Api_AddQQ([Description("")] string QQ, [Description("")] string 密码, [Description("运行框架时是否自动登录该Q.若添加后需要登录该Q则需要通过Api_Login操作")] bool 自动登录) - { - return NativeMethods.Api_AddQQ(QQ, 密码, 自动登录); - } + => NativeMethods.Api_AddQQ(QQ, 密码, 自动登录); /// - /// 设置在线状态+附加信息 ` + /// 设置在线状态+附加信息 ` /// /// /// 1~6 分别对应我在线上, Q我吧, 离开, 忙碌, 请勿打扰, 隐身 @@ -693,21 +580,17 @@ bool IMpqApi.Api_AddQQ([Description("")] string QQ, [Description("")] string 密 bool IMpqApi.Api_SetOLStatus([Description("")] string 响应的QQ, [Description("1~6 分别对应我在线上, Q我吧, 离开, 忙碌, 请勿打扰, 隐身")] int 在线状态, [Description("最大255字节")] string 状态附加信息) - { - return NativeMethods.Api_SetOLStatus(响应的QQ, 在线状态, 状态附加信息); - } + => NativeMethods.Api_SetOLStatus(响应的QQ, 在线状态, 状态附加信息); /// - /// 取得机器码` + /// 取得机器码` /// /// string IMpqApi.Api_GetMC() - { - return NativeMethods.Api_GetMC(); - } + => NativeMethods.Api_GetMC(); /// - /// 邀请对象加入群 失败返回错误理由` + /// 邀请对象加入群 失败返回错误理由` /// /// /// 多个好友用换行分割 @@ -715,22 +598,18 @@ string IMpqApi.Api_GetMC() /// string IMpqApi.Api_GroupInvitation([Description("")] string 响应的QQ, [Description("多个好友用换行分割")] string 好友QQ, [Description("")] string 群号) - { - return NativeMethods.Api_GroupInvitation(响应的QQ, 好友QQ, 群号); - } + => NativeMethods.Api_GroupInvitation(响应的QQ, 好友QQ, 群号); /// - /// 创建一个讨论组 成功返回讨论组ID 失败返回空 注:每24小时只能创建100个讨论组 悠着点用` + /// 创建一个讨论组 成功返回讨论组ID 失败返回空 注:每24小时只能创建100个讨论组 悠着点用` /// /// /// string IMpqApi.Api_CreateDG([Description("")] string 响应的QQ) - { - return NativeMethods.Api_CreateDG(响应的QQ); - } + => NativeMethods.Api_CreateDG(响应的QQ); /// - /// 将对象移除讨论组.成功返回空 失败返回理由` + /// 将对象移除讨论组.成功返回空 失败返回理由` /// /// /// @@ -738,12 +617,10 @@ string IMpqApi.Api_CreateDG([Description("")] string 响应的QQ) /// string IMpqApi.Api_KickDG([Description("")] string 响应的QQ, [Description("")] string 讨论组ID, [Description("")] string 成员) - { - return NativeMethods.Api_KickDG(响应的QQ, 讨论组ID, 成员); - } + => NativeMethods.Api_KickDG(响应的QQ, 讨论组ID, 成员); /// - /// 邀请对象加入讨论组 成功返回空 失败返回理由` + /// 邀请对象加入讨论组 成功返回空 失败返回理由` /// /// /// @@ -751,22 +628,18 @@ string IMpqApi.Api_KickDG([Description("")] string 响应的QQ, [Description("") /// string IMpqApi.Api_DGInvitation([Description("")] string 响应的QQ, [Description("")] string 讨论组ID, [Description("多个成员用换行符分割")] string 成员组) - { - return NativeMethods.Api_DGInvitation(响应的QQ, 讨论组ID, 成员组); - } + => NativeMethods.Api_DGInvitation(响应的QQ, 讨论组ID, 成员组); /// - /// 成功返回以换行符分割的讨论组号列表.最大为100个讨论组 失败返回空` + /// 成功返回以换行符分割的讨论组号列表.最大为100个讨论组 失败返回空` /// /// /// string IMpqApi.Api_GetDGList([Description("")] string 响应的QQ) - { - return NativeMethods.Api_GetDGList(响应的QQ); - } + => NativeMethods.Api_GetDGList(响应的QQ); /// - /// 向对象发送一条音乐信息(所谓的点歌)次数不限` + /// 向对象发送一条音乐信息(所谓的点歌)次数不限` /// /// /// 同Api_SendMsg 1好友 2群 3讨论组 4群临时会话 5讨论组临时会话 @@ -791,13 +664,28 @@ bool IMpqApi.Api_SendMusic([Description("")] string 响应的QQ, [Description("可空 为空默认QQ音乐")] string 音乐来源名, [Description("可空 为空默认QQ音乐 http://qzonestyle.gtimg.cn/ac/qzone/applogo/64/308/100497308_64.gif")] string 音乐来源图标连接) - { - return NativeMethods.Api_SendMusic(响应的QQ, 收信对象类型, 收信对象所属群_讨论组, 收信对象QQ, 音乐简介, 音乐播放页面连接, 音乐封面连接, 音乐文件直连连接, 曲名, + => NativeMethods.Api_SendMusic(响应的QQ, 收信对象类型, 收信对象所属群_讨论组, 收信对象QQ, 音乐简介, 音乐播放页面连接, 音乐封面连接, 音乐文件直连连接, 曲名, 歌手名, 音乐来源名, 音乐来源图标连接); - } /// - /// ` + /// ` + /// + /// + /// 同Api_SendMsg 1好友 2群 3讨论组 4群临时会话 5讨论组临时会话 + /// 发群内、临时会话必填 好友可不填 + /// 临时会话、好友必填 发至群内可不填 + /// + /// 00 基本 02 点歌 其他不明 + /// + bool IMpqApi.Api_SendXml([Description("")] string 响应的QQ, + [Description("同Api_SendMsg 1好友 2群 3讨论组 4群临时会话 5讨论组临时会话")] + int 收信对象类型, [Description("发群内、临时会话必填 好友可不填")] string 收信对象所属群_讨论组, + [Description("临时会话、好友必填 发至群内可不填")] string 收信对象QQ, [Description("")] string ObjectMsg, + [Description("00 基本 02 点歌 其他不明")] int 结构子类型) + => NativeMethods.Api_SendXml(响应的QQ, 收信对象类型, 收信对象所属群_讨论组, 收信对象QQ, ObjectMsg, 结构子类型); + + /// + /// ` /// /// /// 同Api_SendMsg 1好友 2群 3讨论组 4群临时会话 5讨论组临时会话 @@ -811,281 +699,550 @@ bool IMpqApi.Api_SendObjectMsg([Description("")] string 响应的QQ, int 收信对象类型, [Description("发群内、临时会话必填 好友可不填")] string 收信对象所属群_讨论组, [Description("临时会话、好友必填 发至群内可不填")] string 收信对象QQ, [Description("")] string ObjectMsg, [Description("00 基本 02 点歌 其他不明")] int 结构子类型) - { - return NativeMethods.Api_SendObjectMsg(响应的QQ, 收信对象类型, 收信对象所属群_讨论组, 收信对象QQ, ObjectMsg, 结构子类型); - } + => NativeMethods.Api_SendObjectMsg(响应的QQ, 收信对象类型, 收信对象所属群_讨论组, 收信对象QQ, ObjectMsg, 结构子类型); /// - /// 判断对象是否为好友(双向)` + /// 判断对象是否为好友(双向)` /// /// /// /// bool IMpqApi.Api_IsFriend([Description("")] string 响应的QQ, [Description("")] string 对象QQ) - { - return NativeMethods.Api_IsFriend(响应的QQ, 对象QQ); - } + => NativeMethods.Api_IsFriend(响应的QQ, 对象QQ); + + /// + /// 主动加好友 成功返回真 失败返回假 当对象设置需要正确回答问题或不允许任何人添加时无条件失败 + /// + /// 机器人QQ + /// 加谁 + /// 加好友提交的理由 + /// + bool IMpqApi.Api_AddFriend([Description("机器人QQ")] string 响应的QQ, [Description("加谁")] string 对象QQ, + [Description("加好友提交的理由")] string 附加理由) + => NativeMethods.Api_AddFriend(响应的QQ, 对象QQ, 附加理由); + + /// + /// 无参 用于插件自身请求禁用插件自身 + /// + /// + void IMpqApi.Api_SelfDisable() + => NativeMethods.Api_SelfDisable(); + + /// + /// 取协议客户端类型常量 失败返回0 + /// + /// + int IMpqApi.Api_GetClientType() + => NativeMethods.Api_GetClientType(); + + /// + /// 取协议客户端版本号常量 失败返回0 + /// + /// + int IMpqApi.Api_GetClientVer() + => NativeMethods.Api_GetClientVer(); + + /// + /// 取协议客户端公开版本号常量 失败返回0 + /// + /// + int IMpqApi.Api_GetPubNo() + => NativeMethods.Api_GetPubNo(); + + /// + /// 取协议客户端主版本号常量 失败返回0 + /// + /// + int IMpqApi.Api_GetMainVer() + => NativeMethods.Api_GetMainVer(); + + /// + /// 取协议客户端通信模块(TXSSO)版本号常量 失败返回0 + /// + /// + int IMpqApi.Api_GetTXSSOVer() + => NativeMethods.Api_GetTXSSOVer(); + + /// + /// 通过音频、语音guid取得下载连接 + /// + /// + /// 格式:{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx}.amr + /// + string IMpqApi.Api_GuidGetVoiceLink([Description("")] string 响应的QQ, + [Description("格式:{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx}.amr")] + string GUID) + => NativeMethods.Api_GuidGetVoiceLink(响应的QQ, GUID); + + /// + /// 上传音频文件 成功返回guid用于发送 + /// + /// + /// 音频字节集数据 + /// + string IMpqApi.Api_UploadVoice([Description("")] string 响应的QQ, [Description("音频字节集数据")] byte[] amr音频数据) + => NativeMethods.Api_UploadVoice(响应的QQ, amr音频数据); + + /// + /// 移除由Api_AddLogHandler添加、设置的日志处理函数 + /// + /// + void IMpqApi.Api_RemoveLogHandler() + => NativeMethods.Api_RemoveLogHandler(); + + /// + /// 取群名 + /// + /// + /// + /// + string IMpqApi.Api_GetGroupName([Description("")] string 响应的QQ, [Description("")] string 群号) + => NativeMethods.Api_GetGroupName(响应的QQ, 群号); + + /// + /// 移除\取消由Api_SetMsgFilter所添加\设置的处理函数 + /// + /// + void IMpqApi.Api_RemoveMsgFilter() + => NativeMethods.Api_RemoveMsgFilter(); + + /// + /// QQ名片赞 10赞每Q每日 至多50人\日系列 成功返回空 失败返回理由(腾讯爸爸给出的) 一次一赞 速度请自行管控以免冻结 + /// + /// + /// + /// + string IMpqApi.Api_Like([Description("")] string 参_响应的QQ, [Description("")] string 参_被赞QQ) + => NativeMethods.Api_Like(参_响应的QQ, 参_被赞QQ); + + /// + /// 上传群文件 + /// + /// + /// + /// 实际显示在群文件列表中的文件名 + /// 本地文件路径 选填 + /// 图片字节集数据 选填 + /// + bool IMpqApi.Api_UploadGroupFile([Description("")] string 参_响应的QQ, [Description("")] string 参_群号, + [Description("实际显示在群文件列表中的文件名")] string 参_上传文件名, [Description("本地文件路径 选填")] string 参_路径, + [Description("图片字节集数据 选填")] byte[] 参_图片数据) + => NativeMethods.Api_UploadGroupFile(参_响应的QQ, 参_群号, 参_上传文件名, 参_路径, 参_图片数据); + + /// + /// 根据图片GUID取得图片下载连接 失败返回空 + /// + /// {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}.jpg这样的GUID + /// 1好友\临时会话图片 2 群图 + /// 好友QQ或群号 根据参数2填写 + /// + string IMpqApi.Api_GuidGetPicLinkEx([Description("{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}.jpg这样的GUID")] + string 参_图片GUID, [Description("1好友/临时会话图片 2 群图")] int 参_图片类型, + [Description("好友QQ或群号 根据参数2填写")] string 参_图片参考对象) + => NativeMethods.Api_GuidGetPicLinkEx(参_图片GUID, 参_图片类型, 参_图片参考对象); + + /// + /// 撤回群信息 需为群管 + /// + /// 机器人QQ + /// Event函数中的'参_原始信息' 经过解密后的封包字节数据 + /// + bool IMpqApi.Api_CancelGroupMsgA([Description("机器人QQ")] string 响应的QQ, + [Description("Event函数中的'参_原始信息' 经过解密后的封包字节数据")] + string 原始信息) + => NativeMethods.Api_CancelGroupMsgA(响应的QQ, 原始信息); + + /// + /// 取得用于登陆腾讯子业务的Cookies 如xxx.qq.com + /// + /// + /// 如qun.qq.com + /// + string IMpqApi.Api_GetCookiesByDomain([Description("")] string 响应的QQ, [Description("如qun.qq.com")] string 域名) + => NativeMethods.Api_GetCookiesByDomain(响应的QQ, 域名); + + /// + /// + /// + /// + /// + void IMpqApi.Api_ChangeProtocol([Description("")] int i) + => NativeMethods.Api_ChangeProtocol(i); + + /// + /// 从框架中删除QQ + /// + /// + /// + void IMpqApi.Api_DeleteQQ([Description("")] string 被操作QQ) + => NativeMethods.Api_DeleteQQ(被操作QQ); + + /// + /// + /// + /// + /// 同Api_SendMsg 1好友 2群 3讨论组 4群临时会话 5讨论组临时会话 + /// 文本型, , 发群内、临时会话必填 好友可不填 + /// 临时会话、好友必填 发至群内可不填 + /// + /// + bool IMpqApi.Api_SendAppMsg([Description("")] string 响应的QQ, + [Description("同Api_SendMsg 1好友 2群 3讨论组 4群临时会话 5讨论组临时会话")] + int 收信对象类型, [Description("文本型, , 发群内、临时会话必填 好友可不填")] + string 信对象所属群_讨论组, [Description("临时会话、好友必填 发至群内可不填")] string 收信对象QQ, [Description("")] string AppMsg) + => NativeMethods.Api_SendAppMsg(响应的QQ, 收信对象类型, 信对象所属群_讨论组, 收信对象QQ, AppMsg); + + /// + /// 取生日 失败返回空 未公开生日信息返回 "0年0月0日" + /// + /// + /// + /// + string IMpqApi.Api_GetBirthday([Description("")] string 响应的QQ, [Description("")] string QQ) + => NativeMethods.Api_GetBirthday(响应的QQ, QQ); + + /// + /// 取用户个人信息页面字节数据 包含各种资料 返回内容为原始明文数据 + /// + /// + /// + /// + string IMpqApi.Api_GetUserInfo([Description("")] string 响应的QQ, [Description("")] string QQ) + => NativeMethods.Api_GetUserInfo(响应的QQ, QQ); + + /// + /// + /// + /// + /// + string IMpqApi.Api_GetFriendListA([Description("")] string 响应的QQ) + => NativeMethods.Api_GetFriendListA(响应的QQ); + + /// + /// 仅商用版可用 + /// + /// + string IMpqApi.Api_GetLoginQRCode() + => NativeMethods.Api_GetLoginQRCode(); + + /// + /// 仅商用版可用 上传头像 接受字节集参数 返回值:0 上传成功 -1参数有误 -2图片大于1MB -3获取上传令牌失败受限 -4其他理由上传失败 + /// + /// 机器人QQ + /// 图片字节集数据,由于易语言DLL限制你可能在这里读到的是"整数型" 请自己改成字节集,图片不限PNG JPG 大小1MB以内 + /// + int IMpqApi.Api_UploadCface_Byte([Description("机器人QQ")] string 参_响应的QQ, + [Description("图片字节集数据,由于易语言DLL限制你可能在这里读到的是\"整数型\" 请自己改成字节集,图片不限PNG JPG 大小1MB以内")] + int 参_图片数据) + => NativeMethods.Api_UploadCface_Byte(参_响应的QQ, 参_图片数据); + + /// + /// 仅商用版可用 上传头像 接受路径参数 URL 或 本地路径 返回值:0 上传成功 -1参数有误 -2图片大于1MB -3获取上传令牌失败受限 -4其他理由上传失败 + /// + /// 机器人QQ + /// 路径 可选URL 或 本地路径 http://www.baidu,com/图片.jpg C:\1.jpg, + /// + int IMpqApi.Api_UploadCface_Path([Description("机器人QQ")] string 参_响应的QQ, + [Description("路径 可选URL 或 本地路径 http://www.baidu,com/图片.jpg C:/1.jpg,")] + string 参_图片路径) + => NativeMethods.Api_UploadCface_Path(参_响应的QQ, 参_图片路径); + + /// + /// 异步处理被加好友事件 在事件1001下返回值需>30 如50 以强制忽略且确保无其他插件处理 + /// + /// 在事件1001下取得 参_原始信息 填入 + /// 0忽略 10同意 20拒绝 30单向同意(成为单向好友) + /// 拒绝时的附加理由 可以留空 + /// + void IMpqApi.Api_HandleFriendRequestAsync([Description("在事件1001下取得 参_原始信息 填入")] string 参_原始信息, + [Description("0忽略 10同意 20拒绝 30单向同意(成为单向好友)")] + int 参_处理方式, [Description("拒绝时的附加理由 可以留空")] string 参_附加信息) + => NativeMethods.Api_HandleFriendRequestAsync(参_原始信息, 参_处理方式, 参_附加信息); + + /// + /// 异步处理被加群类事件 在事件200x下返回值需>30 如50 以强制忽略且确保无其他插件处理 + /// + /// 机器人QQ + /// 在事件200x下取得 参_原始信息 填入 + /// 0忽略 10同意 20拒绝 30拒绝并不再接受 + /// 拒绝时的附加理由 可以留空 + /// + void IMpqApi.Api_HandleGroupRequestAsync([Description("机器人QQ")] string 参_响应的QQ, + [Description("在事件200x下取得 参_原始信息 填入")] string 参_原始信息, [Description("0忽略 10同意 20拒绝 30拒绝并不再接受")] + int 参_处理方式, [Description("拒绝时的附加理由 可以留空")] string 参_附加信息) + => NativeMethods.Api_HandleGroupRequestAsync(参_响应的QQ, 参_原始信息, 参_处理方式, 参_附加信息); private static class NativeMethods { /// - /// 根据提交的QQ号计算得到页面操作用参数Bkn或G_tk` + /// 根据提交的QQ号计算得到页面操作用参数Bkn或G_tk` /// /// /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern string Api_GetGtk_Bkn([Description("")] string 响应的QQ); /// - /// 根据提交的QQ号计算得到页面操作用参数长Bkn或长G_tk` + /// 根据提交的QQ号计算得到页面操作用参数长Bkn或长G_tk` /// /// /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern string Api_GetBkn32([Description("")] string 响应的QQ); /// - /// 根据提交的QQ号计算得到页面操作用参数长Ldw` + /// 根据提交的QQ号计算得到页面操作用参数长Ldw` /// /// /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern string Api_GetLdw([Description("")] string 响应的QQ); /// - /// 取得框架所在目录.可能鸡肋了。` + /// 取得框架所在目录.可能鸡肋了。` /// /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern string Api_GetRunPath(); /// - /// 取得当前框架内在线可用的QQ列表` + /// 取得当前框架内在线可用的QQ列表` /// /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern string Api_GetOnlineQQlist(); /// - /// 取得框架内所有QQ列表。包括未登录以及登录失败的QQ` + /// 取得框架内所有QQ列表。包括未登录以及登录失败的QQ` /// /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern string Api_GetQQlist(); /// - /// 根据QQ取得对应的会话秘钥` + /// 根据QQ取得对应的会话秘钥` /// /// /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern string Api_GetSessionkey([Description("")] string 响应的QQ); /// - /// 取得页面登录用的Clientkey` + /// 取得页面登录用的Clientkey` /// /// /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern string Api_GetClientkey([Description("")] string 响应的QQ); /// - /// 取得页面登录用的长Clientkey` + /// 取得页面登录用的长Clientkey` /// /// /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern string Api_GetLongClientkey([Description("")] string 响应的QQ); /// - /// 取得页面操作用的Cookies` + /// 取得页面操作用的Cookies` /// /// /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern string Api_GetCookies([Description("")] string 响应的QQ); /// - /// 取得框架内设置的信息发送前缀` + /// 取得框架内设置的信息发送前缀` /// /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern string Api_GetPrefix(); /// - /// 将群名片加入高速缓存当作.` + /// 将群名片加入高速缓存当作.` /// /// /// /// /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern void Api_Cache_NameCard([Description("")] string 群号, [Description("")] string QQ, [Description("")] string 名片); /// - /// 将指定QQ移出QQ黑名单` + /// 将指定QQ移出QQ黑名单` /// /// /// /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern void Api_DBan([Description("")] string 响应的QQ, [Description("")] string QQ); /// - /// 将指定QQ列入QQ黑名单` + /// 将指定QQ列入QQ黑名单` /// /// /// /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern void Api_Ban([Description("")] string 响应的QQ, [Description("")] string QQ); /// - /// 禁言群成员` + /// 禁言群成员` /// /// /// 禁言对象所在群. /// 禁言对象.留空为全群禁言 /// 单位:秒 最大为1个月. 为零解除对象或全群禁言 /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern bool Api_Shutup([Description("")] string 响应的QQ, [Description("禁言对象所在群.")] string 群号, [Description("禁言对象.留空为全群禁言")] string QQ, [Description("单位:秒 最大为1个月. 为零解除对象或全群禁言")] int 时长); /// - /// 发群公告` + /// 根据群号+QQ判断指定群员是否被禁言 获取失败的情况下亦会返回假 + /// + /// + /// 欲判断对象所在群. + /// 欲判断对象 + /// + [DllImport("Message.dll")] + public static extern bool Api_IsShutup([Description("")] string 响应的QQ, [Description("欲判断对象所在群.")] string 群号, + [Description("欲判断对象")] string QQ); + + /// + /// 发群公告` /// /// /// /// /// /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern void Api_SetNotice([Description("")] string 响应的QQ, [Description("")] string 群号, [Description("")] string 标题, [Description("")] string 内容); /// - /// 取群公告` + /// 取群公告` /// /// /// /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern string Api_GetNotice([Description("")] string 响应的QQ, [Description("")] string 群号); /// - /// 取群名片` + /// 取群名片` /// /// /// /// /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern string Api_GetNameCard([Description("")] string 响应的QQ, [Description("")] string 群号, [Description("")] string QQ); /// - /// 设置群名片` + /// 设置群名片` /// /// /// /// /// /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern void Api_SetNameCard([Description("")] string 响应的QQ, [Description("")] string 群号, [Description("")] string QQ, [Description("")] string 名片); /// - /// 退出讨论组` + /// 退出讨论组` /// /// /// /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern void Api_QuitDG([Description("")] string 响应的QQ, [Description("")] string 讨论组ID); /// - /// 删除好友` + /// 删除好友` /// /// /// /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern bool Api_DelFriend([Description("")] string 响应的QQ, [Description("")] string QQ); /// - /// 将对象移除群` + /// 将对象移除群` /// /// /// /// /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern bool Api_Kick([Description("")] string 响应的QQ, [Description("")] string 群号, [Description("")] string 对象); /// - /// 主动加群.为了避免广告、群发行为。出现验证码时将会直接失败不处理` + /// 主动加群.为了避免广告、群发行为。出现验证码时将会直接失败不处理` /// /// /// /// /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern void Api_JoinGroup([Description("")] string 响应的QQ, [Description("")] string 群号, [Description("")] string 附加理由); /// - /// 退出群` + /// 退出群` /// /// /// /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern void Api_QuitGroup([Description("")] string 响应的QQ, [Description("")] string 群号); /// - /// 返回值:成功返回图片GUID用于发送该图片.失败返回空. 图片尺寸应小于4MB` + /// 返回值:成功返回图片GUID用于发送该图片.失败返回空. 图片尺寸应小于4MB` /// /// 机器人QQ /// 1好友2群 注:好友图和群图的GUID并不相同并不通用 需要非别上传。群、讨论组用类型2 临时会话、好友信息需要类型1 /// 上传该图片所属的群号或QQ /// 址, 图片字节集数据或字节集数据指针() /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern string Api_UploadPic([Description("机器人QQ")] string 响应的QQ, [Description("1好友2群 注:好友图和群图的GUID并不相同并不通用 需要非别上传。群、讨论组用类型2 临时会话、好友信息需要类型1")] int 参_上传类型, [Description("上传该图片所属的群号或QQ")] string 参_参考对象, [Description("址, 图片字节集数据或字节集数据指针()")] byte[] 参_图片数据); /// - /// 根据图片GUID取得图片下载连接 失败返回空` + /// 根据图片GUID取得图片下载连接 失败返回空` /// /// {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}.jpg这样的GUID /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern string Api_GuidGetPicLink( [Description("{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}.jpg这样的GUID")] string 图片GUID); /// - /// 回复信息 请尽量避免使用该API` + /// 回复信息 请尽量避免使用该API` /// /// /// 1好友 2群 3讨论组 4群临时会话 5讨论组临时会话 /// 接收这条信息的对象 /// 信息内容 /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern int Api_Reply([Description("")] string 响应的QQ, [Description("1好友 2群 3讨论组 4群临时会话 5讨论组临时会话")] int 信息类型, [Description("接收这条信息的对象")] string 回复对象, [Description("信息内容")] string 内容); /// - /// 向对象、目标发送信息 支持好友 群 讨论组 群临时会话 讨论组临时会话` + /// 向对象、目标发送信息 支持好友 群 讨论组 群临时会话 讨论组临时会话` /// /// /// 1好友 2群 3讨论组 4群临时会话 5讨论组临时会话 @@ -1094,370 +1251,370 @@ public static extern int Api_Reply([Description("")] string 响应的QQ, /// 最终接收这条信息的对象QQ /// 信息内容 /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern int Api_SendMsg([Description("")] string 响应的QQ, [Description("1好友 2群 3讨论组 4群临时会话 5讨论组临时会话")] int 信息类型, [Description("无特殊说明情况下留空或填零")] int 参考子类型, [Description("发送群信息、讨论组信息、群临时会话信息、讨论组临时会话信息时填写")] string 收信群_讨论组, [Description("最终接收这条信息的对象QQ")] string 收信对象, [Description("信息内容")] string 内容); /// - /// 发送封包` + /// 发送封包` /// /// /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern string Api_Send([Description("")] string 封包内容); /// - /// 在框架记录页输出一行信息` + /// 在框架记录页输出一行信息` /// /// 输出的内容 /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern int Api_OutPut([Description("输出的内容")] string 内容); /// - /// 取得本插件启用状态` + /// 取得本插件启用状态` /// /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern bool Api_IsEnable(); /// - /// 登录一个现存的QQ` + /// 登录一个现存的QQ` /// /// 欲登录的Q /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern bool Api_Login([Description("欲登录的Q")] string QQ); /// - /// 让指定QQ下线` + /// 让指定QQ下线` /// /// /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern void Api_Logout([Description("")] string QQ); /// - /// tean加密算法` + /// tean加密算法` /// /// /// /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern string Api_Tea加密([Description("")] string 加密内容, [Description("")] string Key); /// - /// tean解密算法` + /// tean解密算法` /// /// /// /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern string Api_Tea解密([Description("")] string 解密内容, [Description("")] string Key); /// - /// 取用户名` + /// 取用户名` /// /// /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern string Api_GetNick([Description("")] string QQ); /// - /// 取QQ等级+QQ会员等级 返回json格式信息` + /// 取QQ等级+QQ会员等级 返回json格式信息` /// /// /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern string Api_GetQQLevel([Description("")] string QQ); /// - /// 群号转群ID` + /// 群号转群ID` /// /// /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern string Api_GNGetGid([Description("")] string 群号); /// - /// 群ID转群号` + /// 群ID转群号` /// /// /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern string Api_GidGetGN([Description("")] string 群ID); /// - /// 取框架版本号(发布时间戳` + /// 取框架版本号(发布时间戳` /// /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern int Api_GetVersion(); /// - /// 取框架版本名` + /// 取框架版本名` /// /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern string Api_GetVersionName(); /// - /// 取当前框架内部时间戳_周期性与服务器时间同步` + /// 取当前框架内部时间戳_周期性与服务器时间同步` /// /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern int Api_GetTimeStamp(); /// - /// 取得框架输出列表内所有信息` + /// 取得框架输出列表内所有信息` /// /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern string Api_GetLog(); /// - /// 判断是否处于被屏蔽群信息状态。` + /// 判断是否处于被屏蔽群信息状态。` /// /// /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern bool Api_IfBlock([Description("")] string 响应的QQ); /// - /// 取包括群主在内的群管列表` + /// 取包括群主在内的群管列表` /// /// /// /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern string Api_GetAdminList([Description("")] string 响应的QQ, [Description("")] string 群号); /// - /// 发说说` + /// 发说说` /// /// /// /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern string Api_AddTaotao([Description("")] string 响应的QQ, [Description("")] string 内容); /// - /// 取个签` + /// 取个签` /// /// /// /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern string Api_GetSign([Description("")] string 响应的QQ, [Description("")] string 对象); /// - /// 设置个签` + /// 设置个签` /// /// /// /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern string Api_SetSign([Description("")] string 响应的QQ, [Description("")] string 内容); /// - /// 通过qun.qzone.qq.com接口取得取群列表.成功返回转码后的JSON格式文本信息` + /// 通过qun.qzone.qq.com接口取得取群列表.成功返回转码后的JSON格式文本信息` /// /// /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern string Api_GetGroupListA([Description("")] string 响应的QQ); /// - /// 通过qun.qq.com接口取得取群列表.成功返回转码后的JSON格式文本信息` + /// 通过qun.qq.com接口取得取群列表.成功返回转码后的JSON格式文本信息` /// /// /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern string Api_GetGroupListB([Description("")] string 响应的QQ); /// - /// 通过qun.qq.com接口取得群成员列表 成功返回转码后的JSON格式文本` + /// 通过qun.qq.com接口取得群成员列表 成功返回转码后的JSON格式文本` /// /// /// /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern string Api_GetGroupMemberA([Description("")] string 响应的QQ, [Description("")] string 群号); /// - /// 通过qun.qzone.qq.com接口取得群成员列表 成功返回转码后的JSON格式文本` + /// 通过qun.qzone.qq.com接口取得群成员列表 成功返回转码后的JSON格式文本` /// /// /// /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern string Api_GetGroupMemberB([Description("")] string 响应的QQ, [Description("")] string 群号); /// - /// 通过qun.qq.com接口取得好友列表。成功返回转码后的JSON文本` + /// 通过qun.qq.com接口取得好友列表。成功返回转码后的JSON文本` /// /// /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern string Api_GetFriendList([Description("")] string 响应的QQ); /// - /// 取Q龄 成功返回Q龄 失败返回-1` + /// 取Q龄 成功返回Q龄 失败返回-1` /// /// /// /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern int Api_GetQQAge([Description("")] string 响应的QQ, [Description("")] string QQ); /// - /// 取年龄 成功返回年龄 失败返回-1` + /// 取年龄 成功返回年龄 失败返回-1` /// /// /// /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern int Api_GetAge([Description("")] string 响应的QQ, [Description("")] string QQ); /// - /// 取个人说明` + /// 取个人说明` /// /// /// 对象QQ /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern string Api_GetPersonalProfile([Description("")] string 响应的QQ, [Description("对象QQ")] string QQ); /// - /// 取邮箱 成功返回邮箱 失败返回空` + /// 取邮箱 成功返回邮箱 失败返回空` /// /// /// /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern string Api_GetEmail([Description("")] string 响应的QQ, [Description("")] string QQ); /// - /// 取对象性别 1男 2女 未或失败返回-1` + /// 取对象性别 1男 2女 未或失败返回-1` /// /// /// /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern int Api_GetGender([Description("")] string 响应的QQ, [Description("")] string QQ); /// - /// 向好友发送‘正在输入’的状态信息.当好友收到信息之后 “正在输入”状态会立刻被打断` + /// 向好友发送‘正在输入’的状态信息.当好友收到信息之后 “正在输入”状态会立刻被打断` /// /// /// /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern int Api_SendTyping([Description("")] string 响应的QQ, [Description("")] string QQ); /// - /// 向好友发送窗口抖动信息` + /// 向好友发送窗口抖动信息` /// /// /// /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern int Api_SendShake([Description("")] string 响应的QQ, [Description("")] string QQ); /// - /// 取得框架内随机一个在线且可以使用的QQ` + /// 取得框架内随机一个在线且可以使用的QQ` /// /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern string Api_GetRadomOnlineQQ(); /// - /// 往帐号列表添加一个Q.当该Q已存在时则覆盖密码` + /// 往帐号列表添加一个Q.当该Q已存在时则覆盖密码` /// /// /// /// 运行框架时是否自动登录该Q.若添加后需要登录该Q则需要通过Api_Login操作 /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern bool Api_AddQQ([Description("")] string QQ, [Description("")] string 密码, [Description("运行框架时是否自动登录该Q.若添加后需要登录该Q则需要通过Api_Login操作")] bool 自动登录); /// - /// 设置在线状态+附加信息 ` + /// 设置在线状态+附加信息 ` /// /// /// 1~6 分别对应我在线上, Q我吧, 离开, 忙碌, 请勿打扰, 隐身 /// 最大255字节 /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern bool Api_SetOLStatus([Description("")] string 响应的QQ, [Description("1~6 分别对应我在线上, Q我吧, 离开, 忙碌, 请勿打扰, 隐身")] int 在线状态, [Description("最大255字节")] string 状态附加信息); /// - /// 取得机器码` + /// 取得机器码` /// /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern string Api_GetMC(); /// - /// 邀请对象加入群 失败返回错误理由` + /// 邀请对象加入群 失败返回错误理由` /// /// /// 多个好友用换行分割 /// /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern string Api_GroupInvitation([Description("")] string 响应的QQ, [Description("多个好友用换行分割")] string 好友QQ, [Description("")] string 群号); /// - /// 创建一个讨论组 成功返回讨论组ID 失败返回空 注:每24小时只能创建100个讨论组 悠着点用` + /// 创建一个讨论组 成功返回讨论组ID 失败返回空 注:每24小时只能创建100个讨论组 悠着点用` /// /// /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern string Api_CreateDG([Description("")] string 响应的QQ); /// - /// 将对象移除讨论组.成功返回空 失败返回理由` + /// 将对象移除讨论组.成功返回空 失败返回理由` /// /// /// /// /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern string Api_KickDG([Description("")] string 响应的QQ, [Description("")] string 讨论组ID, [Description("")] string 成员); /// - /// 邀请对象加入讨论组 成功返回空 失败返回理由` + /// 邀请对象加入讨论组 成功返回空 失败返回理由` /// /// /// /// 多个成员用换行符分割 /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern string Api_DGInvitation([Description("")] string 响应的QQ, [Description("")] string 讨论组ID, [Description("多个成员用换行符分割")] string 成员组); /// - /// 成功返回以换行符分割的讨论组号列表.最大为100个讨论组 失败返回空` + /// 成功返回以换行符分割的讨论组号列表.最大为100个讨论组 失败返回空` /// /// /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern string Api_GetDGList([Description("")] string 响应的QQ); /// - /// 向对象发送一条音乐信息(所谓的点歌)次数不限` + /// 向对象发送一条音乐信息(所谓的点歌)次数不限` /// /// /// 同Api_SendMsg 1好友 2群 3讨论组 4群临时会话 5讨论组临时会话 @@ -1472,7 +1629,7 @@ public static extern string Api_DGInvitation([Description("")] string 响应的Q /// 可空 为空默认QQ音乐 /// 可空 为空默认QQ音乐 http://qzonestyle.gtimg.cn/ac/qzone/applogo/64/308/100497308_64.gif /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern bool Api_SendMusic([Description("")] string 响应的QQ, [Description("同Api_SendMsg 1好友 2群 3讨论组 4群临时会话 5讨论组临时会话")] int 收信对象类型, [Description("发群内、临时会话必填 好友可不填")] string 收信对象所属群_讨论组, @@ -1486,7 +1643,7 @@ public static extern bool Api_SendMusic([Description("")] string 响应的QQ, string 音乐来源图标连接); /// - /// ` + /// ` /// /// /// 同Api_SendMsg 1好友 2群 3讨论组 4群临时会话 5讨论组临时会话 @@ -1495,7 +1652,24 @@ public static extern bool Api_SendMusic([Description("")] string 响应的QQ, /// /// 00 基本 02 点歌 其他不明 /// - [DllImport("message.dll")] + [DllImport("Message.dll")] + public static extern bool Api_SendXml([Description("")] string 响应的QQ, + [Description("同Api_SendMsg 1好友 2群 3讨论组 4群临时会话 5讨论组临时会话")] + int 收信对象类型, [Description("发群内、临时会话必填 好友可不填")] string 收信对象所属群_讨论组, + [Description("临时会话、好友必填 发至群内可不填")] string 收信对象QQ, [Description("")] string ObjectMsg, + [Description("00 基本 02 点歌 其他不明")] int 结构子类型); + + /// + /// ` + /// + /// + /// 同Api_SendMsg 1好友 2群 3讨论组 4群临时会话 5讨论组临时会话 + /// 发群内、临时会话必填 好友可不填 + /// 临时会话、好友必填 发至群内可不填 + /// + /// 00 基本 02 点歌 其他不明 + /// + [DllImport("Message.dll")] public static extern bool Api_SendObjectMsg([Description("")] string 响应的QQ, [Description("同Api_SendMsg 1好友 2群 3讨论组 4群临时会话 5讨论组临时会话")] int 收信对象类型, [Description("发群内、临时会话必填 好友可不填")] string 收信对象所属群_讨论组, @@ -1503,13 +1677,278 @@ public static extern bool Api_SendObjectMsg([Description("")] string 响应的QQ [Description("00 基本 02 点歌 其他不明")] int 结构子类型); /// - /// 判断对象是否为好友(双向)` + /// 判断对象是否为好友(双向)` /// /// /// /// - [DllImport("message.dll")] + [DllImport("Message.dll")] public static extern bool Api_IsFriend([Description("")] string 响应的QQ, [Description("")] string 对象QQ); + + /// + /// 主动加好友 成功返回真 失败返回假 当对象设置需要正确回答问题或不允许任何人添加时无条件失败 + /// + /// 机器人QQ + /// 加谁 + /// 加好友提交的理由 + /// + [DllImport("Message.dll")] + public static extern bool Api_AddFriend([Description("机器人QQ")] string 响应的QQ, + [Description("加谁")] string 对象QQ, [Description("加好友提交的理由")] string 附加理由); + + /// + /// 无参 用于插件自身请求禁用插件自身 + /// + /// + [DllImport("Message.dll")] + public static extern void Api_SelfDisable(); + + /// + /// 取协议客户端类型常量 失败返回0 + /// + /// + [DllImport("Message.dll")] + public static extern int Api_GetClientType(); + + /// + /// 取协议客户端版本号常量 失败返回0 + /// + /// + [DllImport("Message.dll")] + public static extern int Api_GetClientVer(); + + /// + /// 取协议客户端公开版本号常量 失败返回0 + /// + /// + [DllImport("Message.dll")] + public static extern int Api_GetPubNo(); + + /// + /// 取协议客户端主版本号常量 失败返回0 + /// + /// + [DllImport("Message.dll")] + public static extern int Api_GetMainVer(); + + /// + /// 取协议客户端通信模块(TXSSO)版本号常量 失败返回0 + /// + /// + [DllImport("Message.dll")] + public static extern int Api_GetTXSSOVer(); + + /// + /// 通过音频、语音guid取得下载连接 + /// + /// + /// 格式:{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx}.amr + /// + [DllImport("Message.dll")] + public static extern string Api_GuidGetVoiceLink([Description("")] string 响应的QQ, + [Description("格式:{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx}.amr")] + string GUID); + + /// + /// 上传音频文件 成功返回guid用于发送 + /// + /// + /// 音频字节集数据 + /// + [DllImport("Message.dll")] + public static extern string Api_UploadVoice([Description("")] string 响应的QQ, + [Description("音频字节集数据")] byte[] amr音频数据); + + /// + /// 移除由Api_AddLogHandler添加、设置的日志处理函数 + /// + /// + [DllImport("Message.dll")] + public static extern void Api_RemoveLogHandler(); + + /// + /// 取群名 + /// + /// + /// + /// + [DllImport("Message.dll")] + public static extern string Api_GetGroupName([Description("")] string 响应的QQ, [Description("")] string 群号); + + /// + /// 移除\取消由Api_SetMsgFilter所添加\设置的处理函数 + /// + /// + [DllImport("Message.dll")] + public static extern void Api_RemoveMsgFilter(); + + /// + /// QQ名片赞 10赞每Q每日 至多50人\日系列 成功返回空 失败返回理由(腾讯爸爸给出的) 一次一赞 速度请自行管控以免冻结 + /// + /// + /// + /// + [DllImport("Message.dll")] + public static extern string Api_Like([Description("")] string 参_响应的QQ, [Description("")] string 参_被赞QQ); + + /// + /// 上传群文件 + /// + /// + /// + /// 实际显示在群文件列表中的文件名 + /// 本地文件路径 选填 + /// 图片字节集数据 选填 + /// + [DllImport("Message.dll")] + public static extern bool Api_UploadGroupFile([Description("")] string 参_响应的QQ, + [Description("")] string 参_群号, [Description("实际显示在群文件列表中的文件名")] string 参_上传文件名, + [Description("本地文件路径 选填")] string 参_路径, [Description("图片字节集数据 选填")] byte[] 参_图片数据); + + /// + /// 根据图片GUID取得图片下载连接 失败返回空 + /// + /// {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}.jpg这样的GUID + /// 1好友\临时会话图片 2 群图 + /// 好友QQ或群号 根据参数2填写 + /// + [DllImport("Message.dll")] + public static extern string Api_GuidGetPicLinkEx( + [Description("{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}.jpg这样的GUID")] + string 参_图片GUID, [Description("1好友/临时会话图片 2 群图")] int 参_图片类型, + [Description("好友QQ或群号 根据参数2填写")] string 参_图片参考对象); + + /// + /// 撤回群信息 需为群管 + /// + /// 机器人QQ + /// Event函数中的'参_原始信息' 经过解密后的封包字节数据 + /// + [DllImport("Message.dll")] + public static extern bool Api_CancelGroupMsgA([Description("机器人QQ")] string 响应的QQ, + [Description("Event函数中的'参_原始信息' 经过解密后的封包字节数据")] + string 原始信息); + + /// + /// 取得用于登陆腾讯子业务的Cookies 如xxx.qq.com + /// + /// + /// 如qun.qq.com + /// + [DllImport("Message.dll")] + public static extern string Api_GetCookiesByDomain([Description("")] string 响应的QQ, + [Description("如qun.qq.com")] string 域名); + + /// + /// + /// + /// + /// + [DllImport("Message.dll")] + public static extern void Api_ChangeProtocol([Description("")] int i); + + /// + /// 从框架中删除QQ + /// + /// + /// + [DllImport("Message.dll")] + public static extern void Api_DeleteQQ([Description("")] string 被操作QQ); + + /// + /// + /// + /// + /// 同Api_SendMsg 1好友 2群 3讨论组 4群临时会话 5讨论组临时会话 + /// 文本型, , 发群内、临时会话必填 好友可不填 + /// 临时会话、好友必填 发至群内可不填 + /// + /// + [DllImport("Message.dll")] + public static extern bool Api_SendAppMsg([Description("")] string 响应的QQ, + [Description("同Api_SendMsg 1好友 2群 3讨论组 4群临时会话 5讨论组临时会话")] + int 收信对象类型, [Description("文本型, , 发群内、临时会话必填 好友可不填")] + string 信对象所属群_讨论组, [Description("临时会话、好友必填 发至群内可不填")] string 收信对象QQ, [Description("")] string AppMsg); + + /// + /// 取生日 失败返回空 未公开生日信息返回 "0年0月0日" + /// + /// + /// + /// + [DllImport("Message.dll")] + public static extern string Api_GetBirthday([Description("")] string 响应的QQ, [Description("")] string QQ); + + /// + /// 取用户个人信息页面字节数据 包含各种资料 返回内容为原始明文数据 + /// + /// + /// + /// + [DllImport("Message.dll")] + public static extern string Api_GetUserInfo([Description("")] string 响应的QQ, [Description("")] string QQ); + + /// + /// + /// + /// + /// + [DllImport("Message.dll")] + public static extern string Api_GetFriendListA([Description("")] string 响应的QQ); + + /// + /// 仅商用版可用 + /// + /// + [DllImport("Message.dll")] + public static extern string Api_GetLoginQRCode(); + + /// + /// 仅商用版可用 上传头像 接受字节集参数 返回值:0 上传成功 -1参数有误 -2图片大于1MB -3获取上传令牌失败受限 -4其他理由上传失败 + /// + /// 机器人QQ + /// 图片字节集数据,由于易语言DLL限制你可能在这里读到的是"整数型" 请自己改成字节集,图片不限PNG JPG 大小1MB以内 + /// + [DllImport("Message.dll")] + public static extern int Api_UploadCface_Byte([Description("机器人QQ")] string 参_响应的QQ, + [Description("图片字节集数据,由于易语言DLL限制你可能在这里读到的是\" 整数型\" 请自己改成字节集,图片不限PNG JPG 大小1MB以内")] + int 参_图片数据); + + /// + /// 仅商用版可用 上传头像 接受路径参数 URL 或 本地路径 返回值:0 上传成功 -1参数有误 -2图片大于1MB -3获取上传令牌失败受限 -4其他理由上传失败 + /// + /// 机器人QQ + /// 路径 可选URL 或 本地路径 http://www.baidu,com/图片.jpg C:\1.jpg, + /// + [DllImport("Message.dll")] + public static extern int Api_UploadCface_Path([Description("机器人QQ")] string 参_响应的QQ, + [Description("路径 可选URL 或 本地路径 http://www.baidu,com/图片.jpg C:/1.jpg,")] + string 参_图片路径); + + /// + /// 异步处理被加好友事件 在事件1001下返回值需>30 如50 以强制忽略且确保无其他插件处理 + /// + /// 在事件1001下取得 参_原始信息 填入 + /// 0忽略 10同意 20拒绝 30单向同意(成为单向好友) + /// 拒绝时的附加理由 可以留空 + /// + [DllImport("Message.dll")] + public static extern void Api_HandleFriendRequestAsync([Description("在事件1001下取得 参_原始信息 填入")] string 参_原始信息, + [Description("0忽略 10同意 20拒绝 30单向同意(成为单向好友)")] + int 参_处理方式, [Description("拒绝时的附加理由 可以留空")] string 参_附加信息); + + /// + /// 异步处理被加群类事件 在事件200x下返回值需>30 如50 以强制忽略且确保无其他插件处理 + /// + /// 机器人QQ + /// 在事件200x下取得 参_原始信息 填入 + /// 0忽略 10同意 20拒绝 30拒绝并不再接受 + /// 拒绝时的附加理由 可以留空 + /// + [DllImport("Message.dll")] + public static extern void Api_HandleGroupRequestAsync([Description("机器人QQ")] string 参_响应的QQ, + [Description("在事件200x下取得 参_原始信息 填入")] string 参_原始信息, [Description("0忽略 10同意 20拒绝 30拒绝并不再接受")] + int 参_处理方式, [Description("拒绝时的附加理由 可以留空")] string 参_附加信息); } } } \ No newline at end of file diff --git a/src/Newbe.Mahua.MPQ.Native/Newbe.Mahua.MPQ.Native.csproj b/src/Newbe.Mahua.MPQ.Native/Newbe.Mahua.MPQ.Native.csproj index 9adefc8..25dd0b9 100644 --- a/src/Newbe.Mahua.MPQ.Native/Newbe.Mahua.MPQ.Native.csproj +++ b/src/Newbe.Mahua.MPQ.Native/Newbe.Mahua.MPQ.Native.csproj @@ -70,8 +70,8 @@ 2 - - ..\packages\Autofac.4.9.1\lib\net45\Autofac.dll + + ..\packages\Autofac.4.9.4\lib\net45\Autofac.dll True diff --git a/src/Newbe.Mahua.MPQ.Native/packages.config b/src/Newbe.Mahua.MPQ.Native/packages.config index 47324c7..b1f1fe0 100644 --- a/src/Newbe.Mahua.MPQ.Native/packages.config +++ b/src/Newbe.Mahua.MPQ.Native/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/src/Newbe.Mahua.MPQ/MahuaModule.cs b/src/Newbe.Mahua.MPQ/MahuaModule.cs index b950c70..f7daa2f 100644 --- a/src/Newbe.Mahua.MPQ/MahuaModule.cs +++ b/src/Newbe.Mahua.MPQ/MahuaModule.cs @@ -1,4 +1,5 @@ using Autofac; +using Newbe.Mahua.Mpq; namespace Newbe.Mahua.MPQ { diff --git a/src/Newbe.Mahua.MPQ/MpqMahuaApiHandler.cs b/src/Newbe.Mahua.MPQ/MpqMahuaApiHandler.cs index 4c10da3..249da5f 100644 --- a/src/Newbe.Mahua.MPQ/MpqMahuaApiHandler.cs +++ b/src/Newbe.Mahua.MPQ/MpqMahuaApiHandler.cs @@ -1,9 +1,14 @@ using System; using System.Collections.Generic; using System.Threading.Tasks; +using Newbe.Mahua.MPQ; using Newbe.Mahua.NativeApi; -namespace Newbe.Mahua.MPQ + +// this file is generate from tools, do not change this file +// generate time 2019/12/15 + +namespace Newbe.Mahua.Mpq { public class MpqMahuaApiHandler : IPlatformMahuaApiHandler { @@ -91,6 +96,11 @@ public Task Run(string typeCode, IReadOnlyDictionary data) _mpqApi.Api_Shutup(响应的QQ: data["响应的QQ"].ToString(), 群号: data["群号"].ToString(), QQ: data["QQ"].ToString(), 时长: Convert.ToInt32(data["时长"])); return _mahuaCenter.HandleMahuaOutput(new Api_ShutupApiOut { Result = Api_ShutupResult }); + case "Api_IsShutup": + var Api_IsShutupResult = + _mpqApi.Api_IsShutup(响应的QQ: data["响应的QQ"].ToString(), 群号: data["群号"].ToString(), QQ: data["QQ"].ToString()); + return _mahuaCenter.HandleMahuaOutput(new Api_IsShutupApiOut + { Result = Api_IsShutupResult }); case "Api_SetNotice": _mpqApi.Api_SetNotice(响应的QQ: data["响应的QQ"].ToString(), 群号: data["群号"].ToString(), 标题: data["标题"].ToString(), 内容: data["内容"].ToString()); return Task.CompletedTask; @@ -354,6 +364,11 @@ public Task Run(string typeCode, IReadOnlyDictionary data) _mpqApi.Api_SendMusic(响应的QQ: data["响应的QQ"].ToString(), 收信对象类型: Convert.ToInt32(data["收信对象类型"]), 收信对象所属群_讨论组: data["收信对象所属群_讨论组"].ToString(), 收信对象QQ: data["收信对象QQ"].ToString(), 音乐简介: data["音乐简介"].ToString(), 音乐播放页面连接: data["音乐播放页面连接"].ToString(), 音乐封面连接: data["音乐封面连接"].ToString(), 音乐文件直连连接: data["音乐文件直连连接"].ToString(), 曲名: data["曲名"].ToString(), 歌手名: data["歌手名"].ToString(), 音乐来源名: data["音乐来源名"].ToString(), 音乐来源图标连接: data["音乐来源图标连接"].ToString()); return _mahuaCenter.HandleMahuaOutput(new Api_SendMusicApiOut { Result = Api_SendMusicResult }); + case "Api_SendXml": + var Api_SendXmlResult = + _mpqApi.Api_SendXml(响应的QQ: data["响应的QQ"].ToString(), 收信对象类型: Convert.ToInt32(data["收信对象类型"]), 收信对象所属群_讨论组: data["收信对象所属群_讨论组"].ToString(), 收信对象QQ: data["收信对象QQ"].ToString(), ObjectMsg: data["ObjectMsg"].ToString(), 结构子类型: Convert.ToInt32(data["结构子类型"])); + return _mahuaCenter.HandleMahuaOutput(new Api_SendXmlApiOut + { Result = Api_SendXmlResult }); case "Api_SendObjectMsg": var Api_SendObjectMsgResult = _mpqApi.Api_SendObjectMsg(响应的QQ: data["响应的QQ"].ToString(), 收信对象类型: Convert.ToInt32(data["收信对象类型"]), 收信对象所属群_讨论组: data["收信对象所属群_讨论组"].ToString(), 收信对象QQ: data["收信对象QQ"].ToString(), ObjectMsg: data["ObjectMsg"].ToString(), 结构子类型: Convert.ToInt32(data["结构子类型"])); @@ -364,6 +379,132 @@ public Task Run(string typeCode, IReadOnlyDictionary data) _mpqApi.Api_IsFriend(响应的QQ: data["响应的QQ"].ToString(), 对象QQ: data["对象QQ"].ToString()); return _mahuaCenter.HandleMahuaOutput(new Api_IsFriendApiOut { Result = Api_IsFriendResult }); + case "Api_AddFriend": + var Api_AddFriendResult = + _mpqApi.Api_AddFriend(响应的QQ: data["响应的QQ"].ToString(), 对象QQ: data["对象QQ"].ToString(), 附加理由: data["附加理由"].ToString()); + return _mahuaCenter.HandleMahuaOutput(new Api_AddFriendApiOut + { Result = Api_AddFriendResult }); + case "Api_SelfDisable": + _mpqApi.Api_SelfDisable(); + return Task.CompletedTask; + case "Api_GetClientType": + var Api_GetClientTypeResult = + _mpqApi.Api_GetClientType(); + return _mahuaCenter.HandleMahuaOutput(new Api_GetClientTypeApiOut + { Result = Api_GetClientTypeResult }); + case "Api_GetClientVer": + var Api_GetClientVerResult = + _mpqApi.Api_GetClientVer(); + return _mahuaCenter.HandleMahuaOutput(new Api_GetClientVerApiOut + { Result = Api_GetClientVerResult }); + case "Api_GetPubNo": + var Api_GetPubNoResult = + _mpqApi.Api_GetPubNo(); + return _mahuaCenter.HandleMahuaOutput(new Api_GetPubNoApiOut + { Result = Api_GetPubNoResult }); + case "Api_GetMainVer": + var Api_GetMainVerResult = + _mpqApi.Api_GetMainVer(); + return _mahuaCenter.HandleMahuaOutput(new Api_GetMainVerApiOut + { Result = Api_GetMainVerResult }); + case "Api_GetTXSSOVer": + var Api_GetTXSSOVerResult = + _mpqApi.Api_GetTXSSOVer(); + return _mahuaCenter.HandleMahuaOutput(new Api_GetTXSSOVerApiOut + { Result = Api_GetTXSSOVerResult }); + case "Api_GuidGetVoiceLink": + var Api_GuidGetVoiceLinkResult = + _mpqApi.Api_GuidGetVoiceLink(响应的QQ: data["响应的QQ"].ToString(), GUID: data["GUID"].ToString()); + return _mahuaCenter.HandleMahuaOutput(new Api_GuidGetVoiceLinkApiOut + { Result = Api_GuidGetVoiceLinkResult }); + case "Api_UploadVoice": + var Api_UploadVoiceResult = + _mpqApi.Api_UploadVoice(响应的QQ: data["响应的QQ"].ToString(), amr音频数据: Convert.FromBase64String(data["amr音频数据"].ToString())); + return _mahuaCenter.HandleMahuaOutput(new Api_UploadVoiceApiOut + { Result = Api_UploadVoiceResult }); + case "Api_RemoveLogHandler": + _mpqApi.Api_RemoveLogHandler(); + return Task.CompletedTask; + case "Api_GetGroupName": + var Api_GetGroupNameResult = + _mpqApi.Api_GetGroupName(响应的QQ: data["响应的QQ"].ToString(), 群号: data["群号"].ToString()); + return _mahuaCenter.HandleMahuaOutput(new Api_GetGroupNameApiOut + { Result = Api_GetGroupNameResult }); + case "Api_RemoveMsgFilter": + _mpqApi.Api_RemoveMsgFilter(); + return Task.CompletedTask; + case "Api_Like": + var Api_LikeResult = + _mpqApi.Api_Like(参_响应的QQ: data["参_响应的QQ"].ToString(), 参_被赞QQ: data["参_被赞QQ"].ToString()); + return _mahuaCenter.HandleMahuaOutput(new Api_LikeApiOut + { Result = Api_LikeResult }); + case "Api_UploadGroupFile": + var Api_UploadGroupFileResult = + _mpqApi.Api_UploadGroupFile(参_响应的QQ: data["参_响应的QQ"].ToString(), 参_群号: data["参_群号"].ToString(), 参_上传文件名: data["参_上传文件名"].ToString(), 参_路径: data["参_路径"].ToString(), 参_图片数据: Convert.FromBase64String(data["参_图片数据"].ToString())); + return _mahuaCenter.HandleMahuaOutput(new Api_UploadGroupFileApiOut + { Result = Api_UploadGroupFileResult }); + case "Api_GuidGetPicLinkEx": + var Api_GuidGetPicLinkExResult = + _mpqApi.Api_GuidGetPicLinkEx(参_图片GUID: data["参_图片GUID"].ToString(), 参_图片类型: Convert.ToInt32(data["参_图片类型"]), 参_图片参考对象: data["参_图片参考对象"].ToString()); + return _mahuaCenter.HandleMahuaOutput(new Api_GuidGetPicLinkExApiOut + { Result = Api_GuidGetPicLinkExResult }); + case "Api_CancelGroupMsgA": + var Api_CancelGroupMsgAResult = + _mpqApi.Api_CancelGroupMsgA(响应的QQ: data["响应的QQ"].ToString(), 原始信息: data["原始信息"].ToString()); + return _mahuaCenter.HandleMahuaOutput(new Api_CancelGroupMsgAApiOut + { Result = Api_CancelGroupMsgAResult }); + case "Api_GetCookiesByDomain": + var Api_GetCookiesByDomainResult = + _mpqApi.Api_GetCookiesByDomain(响应的QQ: data["响应的QQ"].ToString(), 域名: data["域名"].ToString()); + return _mahuaCenter.HandleMahuaOutput(new Api_GetCookiesByDomainApiOut + { Result = Api_GetCookiesByDomainResult }); + case "Api_ChangeProtocol": + _mpqApi.Api_ChangeProtocol(i: Convert.ToInt32(data["i"])); + return Task.CompletedTask; + case "Api_DeleteQQ": + _mpqApi.Api_DeleteQQ(被操作QQ: data["被操作QQ"].ToString()); + return Task.CompletedTask; + case "Api_SendAppMsg": + var Api_SendAppMsgResult = + _mpqApi.Api_SendAppMsg(响应的QQ: data["响应的QQ"].ToString(), 收信对象类型: Convert.ToInt32(data["收信对象类型"]), 信对象所属群_讨论组: data["信对象所属群_讨论组"].ToString(), 收信对象QQ: data["收信对象QQ"].ToString(), AppMsg: data["AppMsg"].ToString()); + return _mahuaCenter.HandleMahuaOutput(new Api_SendAppMsgApiOut + { Result = Api_SendAppMsgResult }); + case "Api_GetBirthday": + var Api_GetBirthdayResult = + _mpqApi.Api_GetBirthday(响应的QQ: data["响应的QQ"].ToString(), QQ: data["QQ"].ToString()); + return _mahuaCenter.HandleMahuaOutput(new Api_GetBirthdayApiOut + { Result = Api_GetBirthdayResult }); + case "Api_GetUserInfo": + var Api_GetUserInfoResult = + _mpqApi.Api_GetUserInfo(响应的QQ: data["响应的QQ"].ToString(), QQ: data["QQ"].ToString()); + return _mahuaCenter.HandleMahuaOutput(new Api_GetUserInfoApiOut + { Result = Api_GetUserInfoResult }); + case "Api_GetFriendListA": + var Api_GetFriendListAResult = + _mpqApi.Api_GetFriendListA(响应的QQ: data["响应的QQ"].ToString()); + return _mahuaCenter.HandleMahuaOutput(new Api_GetFriendListAApiOut + { Result = Api_GetFriendListAResult }); + case "Api_GetLoginQRCode": + var Api_GetLoginQRCodeResult = + _mpqApi.Api_GetLoginQRCode(); + return _mahuaCenter.HandleMahuaOutput(new Api_GetLoginQRCodeApiOut + { Result = Api_GetLoginQRCodeResult }); + case "Api_UploadCface_Byte": + var Api_UploadCface_ByteResult = + _mpqApi.Api_UploadCface_Byte(参_响应的QQ: data["参_响应的QQ"].ToString(), 参_图片数据: Convert.ToInt32(data["参_图片数据"])); + return _mahuaCenter.HandleMahuaOutput(new Api_UploadCface_ByteApiOut + { Result = Api_UploadCface_ByteResult }); + case "Api_UploadCface_Path": + var Api_UploadCface_PathResult = + _mpqApi.Api_UploadCface_Path(参_响应的QQ: data["参_响应的QQ"].ToString(), 参_图片路径: data["参_图片路径"].ToString()); + return _mahuaCenter.HandleMahuaOutput(new Api_UploadCface_PathApiOut + { Result = Api_UploadCface_PathResult }); + case "Api_HandleFriendRequestAsync": + _mpqApi.Api_HandleFriendRequestAsync(参_原始信息: data["参_原始信息"].ToString(), 参_处理方式: Convert.ToInt32(data["参_处理方式"]), 参_附加信息: data["参_附加信息"].ToString()); + return Task.CompletedTask; + case "Api_HandleGroupRequestAsync": + _mpqApi.Api_HandleGroupRequestAsync(参_响应的QQ: data["参_响应的QQ"].ToString(), 参_原始信息: data["参_原始信息"].ToString(), 参_处理方式: Convert.ToInt32(data["参_处理方式"]), 参_附加信息: data["参_附加信息"].ToString()); + return Task.CompletedTask; default: throw new ArgumentOutOfRangeException(nameof(typeCode)); @@ -467,6 +608,14 @@ public class Api_ShutupApiOut : MpqApiOutput public override string TypeCode => nameof(Api_ShutupApiOut); } /// + /// api out of method Api_IsShutup + /// + public class Api_IsShutupApiOut : MpqApiOutput + { + public bool Result { get; set; } + public override string TypeCode => nameof(Api_IsShutupApiOut); + } + /// /// api out of method Api_GetNotice /// public class Api_GetNoticeApiOut : MpqApiOutput @@ -859,6 +1008,14 @@ public class Api_SendMusicApiOut : MpqApiOutput public override string TypeCode => nameof(Api_SendMusicApiOut); } /// + /// api out of method Api_SendXml + /// + public class Api_SendXmlApiOut : MpqApiOutput + { + public bool Result { get; set; } + public override string TypeCode => nameof(Api_SendXmlApiOut); + } + /// /// api out of method Api_SendObjectMsg /// public class Api_SendObjectMsgApiOut : MpqApiOutput @@ -874,4 +1031,172 @@ public class Api_IsFriendApiOut : MpqApiOutput public bool Result { get; set; } public override string TypeCode => nameof(Api_IsFriendApiOut); } + /// + /// api out of method Api_AddFriend + /// + public class Api_AddFriendApiOut : MpqApiOutput + { + public bool Result { get; set; } + public override string TypeCode => nameof(Api_AddFriendApiOut); + } + /// + /// api out of method Api_GetClientType + /// + public class Api_GetClientTypeApiOut : MpqApiOutput + { + public int Result { get; set; } + public override string TypeCode => nameof(Api_GetClientTypeApiOut); + } + /// + /// api out of method Api_GetClientVer + /// + public class Api_GetClientVerApiOut : MpqApiOutput + { + public int Result { get; set; } + public override string TypeCode => nameof(Api_GetClientVerApiOut); + } + /// + /// api out of method Api_GetPubNo + /// + public class Api_GetPubNoApiOut : MpqApiOutput + { + public int Result { get; set; } + public override string TypeCode => nameof(Api_GetPubNoApiOut); + } + /// + /// api out of method Api_GetMainVer + /// + public class Api_GetMainVerApiOut : MpqApiOutput + { + public int Result { get; set; } + public override string TypeCode => nameof(Api_GetMainVerApiOut); + } + /// + /// api out of method Api_GetTXSSOVer + /// + public class Api_GetTXSSOVerApiOut : MpqApiOutput + { + public int Result { get; set; } + public override string TypeCode => nameof(Api_GetTXSSOVerApiOut); + } + /// + /// api out of method Api_GuidGetVoiceLink + /// + public class Api_GuidGetVoiceLinkApiOut : MpqApiOutput + { + public string Result { get; set; } + public override string TypeCode => nameof(Api_GuidGetVoiceLinkApiOut); + } + /// + /// api out of method Api_UploadVoice + /// + public class Api_UploadVoiceApiOut : MpqApiOutput + { + public string Result { get; set; } + public override string TypeCode => nameof(Api_UploadVoiceApiOut); + } + /// + /// api out of method Api_GetGroupName + /// + public class Api_GetGroupNameApiOut : MpqApiOutput + { + public string Result { get; set; } + public override string TypeCode => nameof(Api_GetGroupNameApiOut); + } + /// + /// api out of method Api_Like + /// + public class Api_LikeApiOut : MpqApiOutput + { + public string Result { get; set; } + public override string TypeCode => nameof(Api_LikeApiOut); + } + /// + /// api out of method Api_UploadGroupFile + /// + public class Api_UploadGroupFileApiOut : MpqApiOutput + { + public bool Result { get; set; } + public override string TypeCode => nameof(Api_UploadGroupFileApiOut); + } + /// + /// api out of method Api_GuidGetPicLinkEx + /// + public class Api_GuidGetPicLinkExApiOut : MpqApiOutput + { + public string Result { get; set; } + public override string TypeCode => nameof(Api_GuidGetPicLinkExApiOut); + } + /// + /// api out of method Api_CancelGroupMsgA + /// + public class Api_CancelGroupMsgAApiOut : MpqApiOutput + { + public bool Result { get; set; } + public override string TypeCode => nameof(Api_CancelGroupMsgAApiOut); + } + /// + /// api out of method Api_GetCookiesByDomain + /// + public class Api_GetCookiesByDomainApiOut : MpqApiOutput + { + public string Result { get; set; } + public override string TypeCode => nameof(Api_GetCookiesByDomainApiOut); + } + /// + /// api out of method Api_SendAppMsg + /// + public class Api_SendAppMsgApiOut : MpqApiOutput + { + public bool Result { get; set; } + public override string TypeCode => nameof(Api_SendAppMsgApiOut); + } + /// + /// api out of method Api_GetBirthday + /// + public class Api_GetBirthdayApiOut : MpqApiOutput + { + public string Result { get; set; } + public override string TypeCode => nameof(Api_GetBirthdayApiOut); + } + /// + /// api out of method Api_GetUserInfo + /// + public class Api_GetUserInfoApiOut : MpqApiOutput + { + public string Result { get; set; } + public override string TypeCode => nameof(Api_GetUserInfoApiOut); + } + /// + /// api out of method Api_GetFriendListA + /// + public class Api_GetFriendListAApiOut : MpqApiOutput + { + public string Result { get; set; } + public override string TypeCode => nameof(Api_GetFriendListAApiOut); + } + /// + /// api out of method Api_GetLoginQRCode + /// + public class Api_GetLoginQRCodeApiOut : MpqApiOutput + { + public string Result { get; set; } + public override string TypeCode => nameof(Api_GetLoginQRCodeApiOut); + } + /// + /// api out of method Api_UploadCface_Byte + /// + public class Api_UploadCface_ByteApiOut : MpqApiOutput + { + public int Result { get; set; } + public override string TypeCode => nameof(Api_UploadCface_ByteApiOut); + } + /// + /// api out of method Api_UploadCface_Path + /// + public class Api_UploadCface_PathApiOut : MpqApiOutput + { + public int Result { get; set; } + public override string TypeCode => nameof(Api_UploadCface_PathApiOut); + } } diff --git a/src/Newbe.Mahua.Plugin.Agent/build.ps1 b/src/Newbe.Mahua.Plugin.Agent/build.ps1 index b5a4eeb..06a2d6c 100644 --- a/src/Newbe.Mahua.Plugin.Agent/build.ps1 +++ b/src/Newbe.Mahua.Plugin.Agent/build.ps1 @@ -7,7 +7,7 @@ properties { $currentBuild = "$releaseBase\$configuration\$fwVersion" $pluginName = (Get-ChildItem *.csproj).Name.Replace(".csproj", "") $nugetexe = "$rootNow\buildTools\nuget.exe" - $version = "2.3" + $version = "2.4" } $platforms = @( @@ -73,7 +73,7 @@ Task PackQQLight -depends Clean -Description "QQLight打包" { # 插件运行时 Copy-Item -Path "$currentBuild\*", "../Newbe.Mahua.QQLight/bin/$configuration/$fwVersion/*" -Destination "$releaseBase\QQLight\$pluginName" -Recurse # 机器人平台入口文件 - Copy-Item -Path "../Newbe.Mahua.QQLight.Native/bin/$configuration/x86/Newbe.Mahua.QQLight.Native.dll" -Destination "$releaseBase\QQLight\plugin\$pluginName.plugin.dll" + Copy-Item -Path "../Newbe.Mahua.QQLight.Native/bin/$configuration/x86/Newbe.Mahua.QQLight.Native.dll" -Destination "$releaseBase\QQLight\plugin\$pluginName.ql.dll" # 复制配置文件 Copy-Item -Path "Configs/*" "$releaseBase/QQLight" -Recurse } diff --git a/src/Newbe.Mahua.PluginLoader/Newbe.Mahua.PluginLoader.csproj b/src/Newbe.Mahua.PluginLoader/Newbe.Mahua.PluginLoader.csproj index bbebeaf..7a0f9a4 100644 --- a/src/Newbe.Mahua.PluginLoader/Newbe.Mahua.PluginLoader.csproj +++ b/src/Newbe.Mahua.PluginLoader/Newbe.Mahua.PluginLoader.csproj @@ -18,10 +18,10 @@ - - - - + + + + diff --git a/src/Newbe.Mahua.QQLight.Native/Newbe.Mahua.QQLight.Native.csproj b/src/Newbe.Mahua.QQLight.Native/Newbe.Mahua.QQLight.Native.csproj index acf5924..e114ac9 100644 --- a/src/Newbe.Mahua.QQLight.Native/Newbe.Mahua.QQLight.Native.csproj +++ b/src/Newbe.Mahua.QQLight.Native/Newbe.Mahua.QQLight.Native.csproj @@ -48,8 +48,8 @@ 2 - - ..\packages\Autofac.4.9.1\lib\net45\Autofac.dll + + ..\packages\Autofac.4.9.4\lib\net45\Autofac.dll True diff --git a/src/Newbe.Mahua.QQLight.Native/PluginApiExporter.cs b/src/Newbe.Mahua.QQLight.Native/PluginApiExporter.cs index f163c88..c5b08ff 100644 --- a/src/Newbe.Mahua.QQLight.Native/PluginApiExporter.cs +++ b/src/Newbe.Mahua.QQLight.Native/PluginApiExporter.cs @@ -1,19 +1,21 @@ using System; using System.Runtime.InteropServices; +using Newbe.Mahua.Logging; using Newbe.Mahua.QQLight.MahuaEventOutputs; +using Newtonsoft.Json; namespace Newbe.Mahua.QQLight.Native { public class PluginApiExporter : IPluginApiExporter { - private const string Continue = "0"; + private static readonly ILog Logger = LogProvider.For(); - public string Stopped { get; } = "1"; + private const string Continue = "0"; - private const string SdkVersion = "3"; + private const string SdkVersion = "1"; [DllExport("Information", CallingConvention.StdCall)] - public static string Information(string authCode) + public static string Information(int authCode) { QqLightAuthCodeContainer.StaticAuthCode = authCode; PluginInstanceManager.GetInstance() @@ -21,13 +23,10 @@ public static string Information(string authCode) { AuthCode = authCode, }); - var info = $"pluginID={AgentInfo.Instance.Id};{Environment.NewLine}" + - $"pluginName={AgentInfo.Instance.Name};{Environment.NewLine}" + - $"pluginBrief={AgentInfo.Instance.Description};{Environment.NewLine}" + - $"pluginVersion={AgentInfo.Instance.Version};{Environment.NewLine}" + - $"pluginSDK={SdkVersion};{Environment.NewLine}" + - $"pluginAuthor={AgentInfo.Instance.Author};{Environment.NewLine}" + - $"pluginWindowsTitle={{_TestMenu1=设置中心}};"; + var info = + $"{{\"plugin_id\":\"{AgentInfo.Instance.Id}\",\"plugin_name\":\"{AgentInfo.Instance.Name}\",\"plugin_author\":\"{AgentInfo.Instance.Author}\",\"plugin_version\":\"{AgentInfo.Instance.Version}\",\"plugin_brief\":\"{AgentInfo.Instance.Description}\",\"plugin_sdk\":\"{SdkVersion}\",\"plugin_menu\":\"true\"}}"; + Logger.Info("Plugin Info :{info}", info); + return info; } @@ -60,7 +59,7 @@ public static int Event_pluginStart() [DllExport("Event_pluginStop", CallingConvention.StdCall)] public static int Event_pluginStop() { - Native.PluginInstanceManager.GetInstance().HandleMahuaOutput(new PluginStop()); + PluginInstanceManager.GetInstance().HandleMahuaOutput(new PluginStop()); return 0; } @@ -74,7 +73,10 @@ public static int Event_pluginStop() /// /// [DllExport("Event_GetNewMsg", CallingConvention.StdCall)] - public static string Event_GetNewMsg(int type, string fromgroup, string fromqq, string message, + public static string Event_GetNewMsg(int type, + string fromgroup, + string fromqq, + string message, string messageId) { PluginInstanceManager.GetInstance().HandleMahuaOutput(new GetNewMsg @@ -153,7 +155,7 @@ public static string Event_GroupMemberIncrease( string fromqq, string operatorQq) { - Native.PluginInstanceManager.GetInstance().HandleMahuaOutput(new GroupMemberIncrease + PluginInstanceManager.GetInstance().HandleMahuaOutput(new GroupMemberIncrease { Type = type, Fromqq = fromqq, @@ -207,7 +209,7 @@ public static string Event_AddGroup( string moreMsg, string seq) { - Native.PluginInstanceManager.GetInstance().HandleMahuaOutput(new AddGroup + PluginInstanceManager.GetInstance().HandleMahuaOutput(new AddGroup { Type = type, Fromqq = fromqq, @@ -229,7 +231,7 @@ public static string Event_AddGroup( [DllExport("Event_AddFrinend", CallingConvention.StdCall)] public static string Event_AddFrinend(string fromqq, string reason) { - Native.PluginInstanceManager.GetInstance().HandleMahuaOutput(new AddFrinend + PluginInstanceManager.GetInstance().HandleMahuaOutput(new AddFrinend { Fromqq = fromqq, Reason = reason @@ -238,38 +240,26 @@ public static string Event_AddFrinend(string fromqq, string reason) } /// - /// 成为了好友事件 + /// 好友变动事件(包含成为单向好友,双向好友,被好友删除) + /// type 1.成为好友(单向) 2、成为好友(双向) 3、解除好友关系 /// - /// - /// - [DllExport("Event_BecomeFriends", CallingConvention.StdCall)] - public static string Event_BecomeFriends(string fromqq) + [DllExport("Event_FriendChange", CallingConvention.StdCall)] + public static string Event_FriendChange(int type, string fromqq) { - PluginInstanceManager.GetInstance().HandleMahuaOutput(new BecomeFriends + PluginInstanceManager.GetInstance().HandleMahuaOutput(new FriendChange { - Fromqq = fromqq + Fromqq = fromqq, + Type = type }); return Continue; } - /// - /// Cookies更新时会触发此事件 - /// - /// - /// 这个拼写就是这样,没毛病 - [DllExport("Event_UpdataCookies", CallingConvention.StdCall)] - public static string Event_UpdataCookies() - { - PluginInstanceManager.GetInstance().HandleMahuaOutput(new UpdataCookies()); - return Continue; - } - /// /// /// /// - [DllExport("_TestMenu1", CallingConvention.StdCall)] - public static int _TestMenu1() + [DllExport("Event_Menu", CallingConvention.StdCall)] + public static int Event_Menu() { // TODO 点击设置中心,暂时没有任何作用 Console.WriteLine("nothing"); diff --git a/src/Newbe.Mahua.QQLight.Native/PluginInfoProvider.cs b/src/Newbe.Mahua.QQLight.Native/PluginInfoProvider.cs index ee6de7d..a2d151e 100644 --- a/src/Newbe.Mahua.QQLight.Native/PluginInfoProvider.cs +++ b/src/Newbe.Mahua.QQLight.Native/PluginInfoProvider.cs @@ -8,7 +8,7 @@ internal static class PluginInfoProvider public static PluginFileInfo GetPluginInfo() { var pluginApiExpDll = typeof(MahuaModule).Assembly.CodeBase; - var pluginName = Path.GetFileNameWithoutExtension(pluginApiExpDll).Replace(".plugin", string.Empty); + var pluginName = Path.GetFileNameWithoutExtension(pluginApiExpDll).Replace(".ql", string.Empty); var baseDir = AppDomain.CurrentDomain.BaseDirectory; var dllDir = Path.GetFullPath(Path.Combine(baseDir, pluginName)); var re = new PluginFileInfo diff --git a/src/Newbe.Mahua.QQLight.Native/QQLightApi.cs b/src/Newbe.Mahua.QQLight.Native/QQLightApi.cs index afffc5a..06cbeaf 100644 --- a/src/Newbe.Mahua.QQLight.Native/QQLightApi.cs +++ b/src/Newbe.Mahua.QQLight.Native/QQLightApi.cs @@ -7,928 +7,1278 @@ namespace Newbe.Mahua.QQLight.Native public class QQLightApi : IQQLightApi { /// - /// + /// //给QQ点名片赞,PCQQ点赞不稳定,容易失效 /// - /// + /// /// /// - void IQQLightApi.Api_SendPraise([Description("")] string QQ号, [Description("")] string AuthCode) - => NativeMethods.Api_SendPraise(QQ号, AuthCode); + void IQQLightApi.Api_SendPraise([Description("")] string QQID, [Description("")] int AuthCode) + => NativeMethods.Api_SendPraise(QQID, AuthCode); /// - /// + /// //抖动好友窗口 /// - /// + /// /// /// - void IQQLightApi.Api_SendShake([Description("")] string QQ号, [Description("")] string AuthCode) - => NativeMethods.Api_SendShake(QQ号, AuthCode); + void IQQLightApi.Api_SendShake([Description("")] string QQID, [Description("")] int AuthCode) + => NativeMethods.Api_SendShake(QQID, AuthCode); /// - /// + /// //取得网页操作时需要用到的bkn/Gtk /// + /// /// /// - string IQQLightApi.Api_Getbkn([Description("")] string AuthCode) - => NativeMethods.Api_Getbkn(AuthCode); + string IQQLightApi.Api_Getbkn([Description("")] string Cookies, [Description("")] int AuthCode) + => NativeMethods.Api_Getbkn(Cookies, AuthCode); /// - /// + /// //取得网页操作时需要用到的bkn/Gtk /// - /// + /// /// /// - void IQQLightApi.Api_QuitGroup([Description("")] string 群号, [Description("")] string AuthCode) - => NativeMethods.Api_QuitGroup(群号, AuthCode); + string IQQLightApi.Api_Getbkn_Long([Description("")] string Cookies, [Description("")] int AuthCode) + => NativeMethods.Api_Getbkn_Long(Cookies, AuthCode); /// - /// + /// //退出群 /// - /// + /// /// /// - void IQQLightApi.Api_QuitDiscussGroup([Description("")] string 讨论组号, [Description("")] string AuthCode) - => NativeMethods.Api_QuitDiscussGroup(讨论组号, AuthCode); + void IQQLightApi.Api_QuitGroup([Description("")] string GroupID, [Description("")] int AuthCode) + => NativeMethods.Api_QuitGroup(GroupID, AuthCode); /// - /// + /// //退出讨论组 /// - /// + /// /// /// - void IQQLightApi.Api_SetSignature([Description("")] string 个性签名, [Description("")] string AuthCode) - => NativeMethods.Api_SetSignature(个性签名, AuthCode); + void IQQLightApi.Api_QuitDiscussGroup([Description("")] string GroupID, [Description("")] int AuthCode) + => NativeMethods.Api_QuitDiscussGroup(GroupID, AuthCode); /// - /// + /// //修改个性签名 /// - /// - /// + /// /// /// - void IQQLightApi.Api_SetDiscussName([Description("")] string 讨论组号, [Description("")] string 名称, - [Description("")] string AuthCode) - => NativeMethods.Api_SetDiscussName(讨论组号, 名称, AuthCode); + void IQQLightApi.Api_SetSignature([Description("")] string Signature, [Description("")] int AuthCode) + => NativeMethods.Api_SetSignature(Signature, AuthCode); /// - /// + /// //修改讨论组名称 /// - /// - /// + /// + /// /// /// - void IQQLightApi.Api_BanGroup([Description("")] string 群号, [Description("")] bool 是否全群禁言, - [Description("")] string AuthCode) - => NativeMethods.Api_BanGroup(群号, 是否全群禁言, AuthCode); + void IQQLightApi.Api_SetDiscussName([Description("")] string DiscussGroupID, [Description("")] string Name, + [Description("")] int AuthCode) + => NativeMethods.Api_SetDiscussName(DiscussGroupID, Name, AuthCode); /// - /// + /// //修改群名称 /// - /// + /// + /// /// /// - void IQQLightApi.Api_RemoveGroup([Description("")] string 群号, [Description("")] string AuthCode) - => NativeMethods.Api_RemoveGroup(群号, AuthCode); + void IQQLightApi.Api_SetGroupName([Description("")] string GroupID, [Description("")] string Name, + [Description("")] int AuthCode) + => NativeMethods.Api_SetGroupName(GroupID, Name, AuthCode); /// - /// + /// //设置全群禁言 /// - /// - /// - /// 真,设置 假,取消 + /// + /// 真 开启全群禁言 假 关闭全群禁言 /// /// - void IQQLightApi.Api_SetManager([Description("")] string 群号, [Description("")] string QQ号, - [Description("真,设置 假,取消")] bool 是否设置为管理员, [Description("")] string AuthCode) - => NativeMethods.Api_SetManager(群号, QQ号, 是否设置为管理员, AuthCode); + void IQQLightApi.Api_BanGroup([Description("")] string GroupID, + [Description("真 开启全群禁言 假 关闭全群禁言")] bool IsBanGroup, [Description("")] int AuthCode) + => NativeMethods.Api_BanGroup(GroupID, IsBanGroup, AuthCode); /// - /// + /// //设置管理员权限 /// - /// + /// + /// + /// 真,设置 假,取消 + /// + /// + void IQQLightApi.Api_SetManager([Description("")] string GroupID, [Description("")] string QQID, + [Description("真,设置 假,取消")] bool IsManager, [Description("")] int AuthCode) + => NativeMethods.Api_SetManager(GroupID, QQID, IsManager, AuthCode); + + /// + /// //禁言群成员 + /// + /// /// - /// 单位:秒 0为解除禁言 + /// 单位:秒 0为解除禁言 /// /// - void IQQLightApi.Api_Ban([Description("")] string 群号, [Description("")] string QQ, - [Description("单位:秒 0为解除禁言")] int 禁言时长, [Description("")] string AuthCode) - => NativeMethods.Api_Ban(群号, QQ, 禁言时长, AuthCode); + void IQQLightApi.Api_Ban([Description("")] string GroupID, [Description("")] string QQ, + [Description("单位:秒 0为解除禁言")] int time, [Description("")] int AuthCode) + => NativeMethods.Api_Ban(GroupID, QQ, time, AuthCode); /// - /// + /// //修改匿名权限 /// - /// - /// + /// + /// 真 允许匿名 假 禁止匿名 /// /// - void IQQLightApi.Api_SetAnony([Description("")] string 群号, [Description("")] bool 是否允许匿名聊天, - [Description("")] string AuthCode) - => NativeMethods.Api_SetAnony(群号, 是否允许匿名聊天, AuthCode); + void IQQLightApi.Api_SetAnony([Description("")] string GroupID, [Description("真 允许匿名 假 禁止匿名")] bool IsSetAnony, + [Description("")] int AuthCode) + => NativeMethods.Api_SetAnony(GroupID, IsSetAnony, AuthCode); /// - /// + /// //踢出群成员 /// - /// - /// - /// + /// + /// + /// 不再接受此人加群 /// /// - void IQQLightApi.Api_RemoveMember([Description("")] string 群号, [Description("")] string QQ号, - [Description("")] bool 是否不再接收加群申请, [Description("")] string AuthCode) - => NativeMethods.Api_RemoveMember(群号, QQ号, 是否不再接收加群申请, AuthCode); + void IQQLightApi.Api_RemoveMember([Description("")] string GroupID, [Description("")] string QQID, + [Description("不再接受此人加群")] bool IsBan, [Description("")] int AuthCode) + => NativeMethods.Api_RemoveMember(GroupID, QQID, IsBan, AuthCode); /// - /// + /// //解散群 /// + /// 群号 /// /// - string IQQLightApi.Api_GetCookies([Description("")] string AuthCode) + void IQQLightApi.Api_RemoveGroup([Description("群号")] string GroupID, [Description("")] int AuthCode) + => NativeMethods.Api_RemoveGroup(GroupID, AuthCode); + + /// + /// //取得操作网页所需要的Cookies + /// + /// + /// + string IQQLightApi.Api_GetCookies([Description("")] int AuthCode) => NativeMethods.Api_GetCookies(AuthCode); /// - /// + /// //取得QQ空间Token /// /// /// - string IQQLightApi.Api_GetClientKey([Description("")] string AuthCode) - => NativeMethods.Api_GetClientKey(AuthCode); + string IQQLightApi.Api_GetQzoneToken([Description("")] int AuthCode) + => NativeMethods.Api_GetQzoneToken(AuthCode); /// - /// + /// //取得QQ空间Cookies /// /// /// - string IQQLightApi.Api_GetLoginQQ([Description("")] string AuthCode) - => NativeMethods.Api_GetLoginQQ(AuthCode); + string IQQLightApi.Api_GetQzoneCookies([Description("")] int AuthCode) + => NativeMethods.Api_GetQzoneCookies(AuthCode); /// - /// 是否开启/关闭 + /// //发表说说 /// + /// /// /// - bool IQQLightApi.Api_GetPluginState([Description("")] string AuthCode) - => NativeMethods.Api_GetPluginState(AuthCode); + string IQQLightApi.Api_SendTaotao([Description("")] string Str, [Description("")] int AuthCode) + => NativeMethods.Api_SendTaotao(Str, AuthCode); /// - /// 框架为插件所创建的一个目录 + /// //取得所登录的QQ /// /// /// - string IQQLightApi.Api_GetPath([Description("")] string AuthCode) + string IQQLightApi.Api_GetLoginQQ([Description("")] int AuthCode) + => NativeMethods.Api_GetLoginQQ(AuthCode); + + /// + /// //框架为插件所创建的插件目录 + /// + /// + /// + string IQQLightApi.Api_GetPath([Description("")] int AuthCode) => NativeMethods.Api_GetPath(AuthCode); /// - /// 机器人发送消息 + /// //置插件错误管理 /// - /// 1.好友消息 2.群消息 3.群临时消息 4.讨论组消息 5.讨论组临时消息 6.QQ临时消息 - /// - /// 类型为2,4时可留空 - /// + /// + /// /// /// - void IQQLightApi.Api_SendMsg([Description("1.好友消息 2.群消息 3.群临时消息 4.讨论组消息 5.讨论组临时消息 6.QQ临时消息")] - int 类型, [Description("")] string 群组, [Description("类型为2,4时可留空")] string QQ号, [Description("")] string 内容, - [Description("")] string AuthCode) - => NativeMethods.Api_SendMsg(类型, 群组, QQ号, 内容, AuthCode); + string IQQLightApi.Api_Error([Description("")] string Code, [Description("")] string Str, + [Description("")] int AuthCode) + => NativeMethods.Api_Error(Code, Str, AuthCode); /// - /// 处理加群消息 + /// //机器人发送消息,返回值为该条消息的ID /// - /// - /// + /// 1.好友消息 2.群消息 3.群临时消息 4.讨论组消息 5.讨论组临时消息 6.QQ临时消息 + /// + /// 类型为2,4时可留空 + /// + /// + /// + string IQQLightApi.Api_SendMsg([Description("1.好友消息 2.群消息 3.群临时消息 4.讨论组消息 5.讨论组临时消息 6.QQ临时消息")] + int Type, [Description("")] string GroupID, [Description("类型为2,4时可留空")] string QQID, + [Description("")] string Msg, [Description("")] int AuthCode) + => NativeMethods.Api_SendMsg(Type, GroupID, QQID, Msg, AuthCode); + + /// + /// //处理加群消息 + /// + /// + /// /// - /// 1.同意 2.拒绝 3.忽略 - /// 参数可为空,且为 拒绝 时有效 + /// 1.同意 2.拒绝 3.忽略 + /// 参数可为空,且为 拒绝 时有效 /// /// - void IQQLightApi.Api_SetGroupAdd([Description("")] string 群号, [Description("")] string QQ号, - [Description("")] string Seq, [Description("1.同意 2.拒绝 3.忽略")] int 操作方式, - [Description("参数可为空,且为 拒绝 时有效")] string 拒绝理由, [Description("")] string AuthCode) - => NativeMethods.Api_SetGroupAdd(群号, QQ号, Seq, 操作方式, 拒绝理由, AuthCode); + void IQQLightApi.Api_SetGroupAdd([Description("")] string GroupID, [Description("")] string QQID, + [Description("")] string Seq, [Description("1.同意 2.拒绝 3.忽略")] int Type, + [Description("参数可为空,且为 拒绝 时有效")] string Reason, [Description("")] int AuthCode) + => NativeMethods.Api_SetGroupAdd(GroupID, QQID, Seq, Type, Reason, AuthCode); /// - /// 处理加好友消息 + /// //处理加好友消息 /// - /// - /// 1.同意 2.拒绝 3.忽略 - /// 参数可为空,且为 拒绝 时有效 + /// + /// 1.同意 2.拒绝 3.忽略 + /// 参数可为空,且为 拒绝 时有效 /// /// - void IQQLightApi.Api_SetFriendAdd([Description("")] string QQ号, [Description("1.同意 2.拒绝 3.忽略")] int 操作方式, - [Description("参数可为空,且为 拒绝 时有效")] string 拒绝理由, [Description("")] string AuthCode) - => NativeMethods.Api_SetFriendAdd(QQ号, 操作方式, 拒绝理由, AuthCode); + void IQQLightApi.Api_SetFriendAdd([Description("")] string QQID, [Description("1.同意 2.拒绝 3.忽略")] int Type, + [Description("参数可为空,且为 拒绝 时有效")] string Reason, [Description("")] int AuthCode) + => NativeMethods.Api_SetFriendAdd(QQID, Type, Reason, AuthCode); /// - /// + /// //向框架推送一条日志 /// - /// - /// - /// + /// 日志类型(自定义) + /// 日志内容 + /// 日志颜色 + /// + /// + void IQQLightApi.Api_SendLog([Description("日志类型(自定义)")] string Type, [Description("日志内容")] string Msg, + [Description("日志颜色")] int FontColor, [Description("")] int AuthCode) + => NativeMethods.Api_SendLog(Type, Msg, FontColor, AuthCode); + + /// + /// //修改好友备注 + /// + /// + /// + /// + /// + void IQQLightApi.Api_SetFriendName([Description("")] string QQID, [Description("")] string Name, + [Description("")] int AuthCode) + => NativeMethods.Api_SetFriendName(QQID, Name, AuthCode); + + /// + /// //删除好友 + /// + /// + /// + /// + void IQQLightApi.Api_DeleteFriend([Description("")] string QQID, [Description("")] int AuthCode) + => NativeMethods.Api_DeleteFriend(QQID, AuthCode); + + /// + /// //主动添加群 + /// + /// + /// /// /// - void IQQLightApi.Api_SendLog([Description("")] string 类型, [Description("")] string 内容, - [Description("")] int 字体颜色, [Description("")] string AuthCode) - => NativeMethods.Api_SendLog(类型, 内容, 字体颜色, AuthCode); + void IQQLightApi.Api_AddGroup([Description("")] string GroupID, [Description("")] string 附加信息, + [Description("")] int AuthCode) + => NativeMethods.Api_AddGroup(GroupID, 附加信息, AuthCode); + + /// + /// //主动添加好友 + /// + /// + /// + /// + /// + void IQQLightApi.Api_AddFriend([Description("")] string QQID, [Description("")] string Info, + [Description("")] int AuthCode) + => NativeMethods.Api_AddFriend(QQID, Info, AuthCode); + + /// + /// //返回卡片点歌JSON代码 + /// + /// + /// + /// + string IQQLightApi.Api_JsonMusic([Description("")] string SongID, [Description("")] int AuthCode) + => NativeMethods.Api_JsonMusic(SongID, AuthCode); + + /// + /// //取得群内成员的名片 + /// + /// + /// + /// + /// + string IQQLightApi.Api_GetGroupCard([Description("")] string GroupID, [Description("")] string QQID, + [Description("")] int AuthCode) + => NativeMethods.Api_GetGroupCard(GroupID, QQID, AuthCode); + + /// + /// //取指定QQ的昵称 + /// + /// + /// + /// + string IQQLightApi.Api_GetNick([Description("")] string QQID, [Description("")] int AuthCode) + => NativeMethods.Api_GetNick(QQID, AuthCode); /// /// /// - /// - /// + /// /// /// - void IQQLightApi.Api_SetFriendName([Description("")] string 好友QQ, [Description("")] string 备注名, - [Description("")] string AuthCode) - => NativeMethods.Api_SetFriendName(好友QQ, 备注名, AuthCode); + string IQQLightApi.Api_GetGroupName([Description("")] string GroupID, [Description("")] int AuthCode) + => NativeMethods.Api_GetGroupName(GroupID, AuthCode); /// /// /// - /// /// /// - void IQQLightApi.Api_DeleteFriend([Description("")] string 好友QQ, [Description("")] string AuthCode) - => NativeMethods.Api_DeleteFriend(好友QQ, AuthCode); + string IQQLightApi.Api_GetSoftVersion([Description("")] int AuthCode) + => NativeMethods.Api_GetSoftVersion(AuthCode); /// /// /// - /// - /// + /// /// /// - void IQQLightApi.Api_AddGroup([Description("")] string 群号, [Description("")] string 附加信息, - [Description("")] string AuthCode) - => NativeMethods.Api_AddGroup(群号, 附加信息, AuthCode); + string IQQLightApi.Api_GetGroupIntroduce([Description("")] string GroupID, [Description("")] int AuthCode) + => NativeMethods.Api_GetGroupIntroduce(GroupID, AuthCode); /// /// /// - /// - /// + /// /// /// - void IQQLightApi.Api_AddFriend([Description("")] string 目标QQ, [Description("")] string 附加信息, - [Description("")] string AuthCode) - => NativeMethods.Api_AddFriend(目标QQ, 附加信息, AuthCode); + string IQQLightApi.Api_GetGroupOwner([Description("")] string GroupID, [Description("")] int AuthCode) + => NativeMethods.Api_GetGroupOwner(GroupID, AuthCode); /// - /// 返回网易云点歌XML + /// //修改群成员的名片 /// - /// + /// + /// + /// /// /// - string IQQLightApi.Api_163Music([Description("")] string 歌曲ID, [Description("")] string AuthCode) - => NativeMethods.Api_163Music(歌曲ID, AuthCode); + void IQQLightApi.Api_SetGroupCard([Description("")] string GroupID, [Description("")] string QQID, + [Description("")] string NewCard, [Description("")] int AuthCode) + => NativeMethods.Api_SetGroupCard(GroupID, QQID, NewCard, AuthCode); /// - /// 返回QQ点歌XML + /// //取得某个QQ的名片赞数量 /// - /// + /// /// /// - string IQQLightApi.Api_QQMusic([Description("")] string 歌曲ID, [Description("")] string AuthCode) - => NativeMethods.Api_QQMusic(歌曲ID, AuthCode); + string IQQLightApi.Api_GetPraiseNum([Description("")] string QQID, [Description("")] int AuthCode) + => NativeMethods.Api_GetPraiseNum(QQID, AuthCode); /// - /// 返回Json点歌XML + /// //取得某个QQ的等级 /// - /// + /// /// /// - string IQQLightApi.Api_JsonMusic([Description("")] string 歌曲ID, [Description("")] string AuthCode) - => NativeMethods.Api_JsonMusic(歌曲ID, AuthCode); + int IQQLightApi.Api_GetQQLevel([Description("")] string QQID, [Description("")] int AuthCode) + => NativeMethods.Api_GetQQLevel(QQID, AuthCode); /// - /// 置插件错误管理 + /// /// - /// - /// + /// /// /// - string IQQLightApi.Api_Error([Description("")] string Code, [Description("")] string Str, - [Description("")] string AuthCode) - => NativeMethods.Api_Error(Code, Str, AuthCode); + void IQQLightApi.Api_SetNick([Description("")] string NewNick, [Description("")] int AuthCode) + => NativeMethods.Api_SetNick(NewNick, AuthCode); /// - /// 取得群内成员的名片 + /// /// - /// - /// + /// + /// /// /// - string IQQLightApi.Api_GetGroupCard([Description("")] string 群号, [Description("")] string QQ号, - [Description("")] string AuthCode) - => NativeMethods.Api_GetGroupCard(群号, QQ号, AuthCode); + string IQQLightApi.Api_Taotaodolike([Description("")] string QQID, [Description("")] string URL, + [Description("")] int AuthCode) + => NativeMethods.Api_Taotaodolike(QQID, URL, AuthCode); /// - /// 取得某个QQ的昵称 + /// /// - /// + /// + /// + /// /// /// - string IQQLightApi.Api_GetNick([Description("")] string QQ号, [Description("")] string AuthCode) - => NativeMethods.Api_GetNick(QQ号, AuthCode); + string IQQLightApi.Api_Taotaofeeds([Description("")] string QQID, [Description("")] string URL, + [Description("")] string Content, [Description("")] int AuthCode) + => NativeMethods.Api_Taotaofeeds(QQID, URL, Content, AuthCode); /// - /// 修改群内成员的名片 + /// /// - /// - /// - /// + /// /// /// - void IQQLightApi.Api_SetGroupCard([Description("")] string 群号, [Description("")] string QQ号, - [Description("")] string 新名片, [Description("")] string AuthCode) - => NativeMethods.Api_SetGroupCard(群号, QQ号, 新名片, AuthCode); + int IQQLightApi.Api_GetQQAge([Description("")] string QQID, [Description("")] int AuthCode) + => NativeMethods.Api_GetQQAge(QQID, AuthCode); /// - /// 取得某个QQ的名片赞数量 + /// /// - /// + /// /// /// - string IQQLightApi.Api_GetPraiseNum([Description("")] string QQ号, [Description("")] string AuthCode) - => NativeMethods.Api_GetPraiseNum(QQ号, AuthCode); + int IQQLightApi.Api_GetQQSex([Description("")] string QQID, [Description("")] int AuthCode) + => NativeMethods.Api_GetQQSex(QQID, AuthCode); /// - /// 以JSON形式取得好友列表 + /// //以JSON形式取得好友列表 /// + /// /// /// - string IQQLightApi.Api_GetFriendList([Description("")] string AuthCode) - => NativeMethods.Api_GetFriendList(AuthCode); + string IQQLightApi.Api_GetFriendList([Description("")] bool Cache, [Description("")] int AuthCode) + => NativeMethods.Api_GetFriendList(Cache, AuthCode); /// - /// 以JSON形式取得群列表 + /// //以JSON形式取得群列表 /// + /// /// /// - string IQQLightApi.Api_GetGroupList([Description("")] string AuthCode) - => NativeMethods.Api_GetGroupList(AuthCode); + string IQQLightApi.Api_GetGroupList([Description("")] bool Cache, [Description("")] int AuthCode) + => NativeMethods.Api_GetGroupList(Cache, AuthCode); /// - /// 以JSON形式取得群成员列表 + /// //以JSON形式取得群成员列表 /// - /// + /// + /// /// /// - string IQQLightApi.Api_GetGroupMemberList([Description("")] string 群号, [Description("")] string AuthCode) - => NativeMethods.Api_GetGroupMemberList(群号, AuthCode); + string IQQLightApi.Api_GetGroupMemberList([Description("")] string GroupID, [Description("")] bool Cache, + [Description("")] int AuthCode) + => NativeMethods.Api_GetGroupMemberList(GroupID, Cache, AuthCode); /// - /// 以JSON形式取得某QQ个人信息 + /// //以JSON形式取得某QQ个人信息 /// - /// + /// /// /// - string IQQLightApi.Api_GetQQInfo([Description("")] string QQ号, [Description("")] string AuthCode) - => NativeMethods.Api_GetQQInfo(QQ号, AuthCode); + string IQQLightApi.Api_GetQQInfo([Description("")] string QQID, [Description("")] int AuthCode) + => NativeMethods.Api_GetQQInfo(QQID, AuthCode); /// - /// 以JSON形式取得某群信息 + /// //以JSON形式取得某群信息 /// - /// + /// /// /// - string IQQLightApi.Api_GetGroupInfo([Description("")] string 群号, [Description("")] string AuthCode) - => NativeMethods.Api_GetGroupInfo(群号, AuthCode); + string IQQLightApi.Api_GetGroupInfo([Description("")] string GroupID, [Description("")] int AuthCode) + => NativeMethods.Api_GetGroupInfo(GroupID, AuthCode); /// - /// 让机器人快速重启 + /// //撤回自身消息 发出消息不可以秒撤回,腾讯限制,1~2s后才可撤回 /// + /// 1.好友消息 2.群消息 3.群临时消息 4.讨论组消息 5.讨论组临时消息 6.QQ临时消息 + /// 撤回群消息、群临时消息、讨论组消息、讨论组临时消息必须填写,其余情况可留空 + /// 撤回好友消息、群临时消息、讨论组临时消息、QQ临时消息必须填写,其余情况可留空 + /// 撤回的消息ID,机器人发送消息会返回自身的消息ID /// /// - string IQQLightApi.Api_Restart([Description("")] string AuthCode) - => NativeMethods.Api_Restart(AuthCode); + void IQQLightApi.Api_DeleteMsg([Description("1.好友消息 2.群消息 3.群临时消息 4.讨论组消息 5.讨论组临时消息 6.QQ临时消息")] + int Type, [Description("撤回群消息、群临时消息、讨论组消息、讨论组临时消息必须填写,其余情况可留空")] + string GroupID, [Description("撤回好友消息、群临时消息、讨论组临时消息、QQ临时消息必须填写,其余情况可留空")] + string QQID, [Description("撤回的消息ID,机器人发送消息会返回自身的消息ID")] + string MsgID, [Description("")] int AuthCode) + => NativeMethods.Api_DeleteMsg(Type, GroupID, QQID, MsgID, AuthCode); /// - /// 让机器人刷新插件 + /// //改变QQ在线状态 /// + /// 1.我在线上 2.Q我吧 3.离开 4.忙碌 5.请勿打扰 6.隐身 /// /// - string IQQLightApi.Api_UpdatePlugin([Description("")] string AuthCode) - => NativeMethods.Api_UpdatePlugin(AuthCode); + void IQQLightApi.Api_SetQQState([Description("1.我在线上 2.Q我吧 3.离开 4.忙碌 5.请勿打扰 6.隐身")] + int Type, [Description("")] int AuthCode) + => NativeMethods.Api_SetQQState(Type, AuthCode); /// - /// 撤回群成员的消息 机器人必须为管理员 + /// //邀请好友入群 /// - /// - /// + /// + /// + /// + /// + void IQQLightApi.Api_InviteFriend([Description("")] string GroupID, [Description("")] string QQID, + [Description("")] int AuthCode) + => NativeMethods.Api_InviteFriend(GroupID, QQID, AuthCode); + + /// + /// + /// + /// /// /// - string IQQLightApi.Api_DeleteMsg([Description("")] string 群号, [Description("")] string 消息ID, - [Description("")] string AuthCode) - => NativeMethods.Api_DeleteMsg(群号, 消息ID, AuthCode); + string IQQLightApi.Api_GetQQInfo_v2([Description("")] string QQID, [Description("")] int AuthCode) + => NativeMethods.Api_GetQQInfo_v2(QQID, AuthCode); + + /// + /// //取消COM库 + /// + /// + void IQQLightApi.CoUninitialize() + => NativeMethods.CoUninitialize(); + + /// + /// //初始化COM库 + /// + /// + /// + void IQQLightApi.CoInitialize([Description("")] int pvReserved) + => NativeMethods.CoInitialize(pvReserved); /// - /// 改变QQ在线状态 + /// //上传图片,获得图片GUID, /// - /// 1.我在线上 2.Q我吧 3.离开 4.忙碌 5.请勿打扰 6.隐身 + /// 1.私聊图片 2.群聊图片 + /// 私聊图片填写QQID,群聊/讨论组图片填写群号讨论组号 + /// 图片的Hex流 /// /// - string IQQLightApi.Api_SetQQState([Description("1.我在线上 2.Q我吧 3.离开 4.忙碌 5.请勿打扰 6.隐身")] - int 类型, [Description("")] string AuthCode) - => NativeMethods.Api_SetQQState(类型, AuthCode); + string IQQLightApi.Api_UpLoadPic([Description("1.私聊图片 2.群聊图片")] int Type, + [Description("私聊图片填写QQID,群聊/讨论组图片填写群号讨论组号")] + string 对象, [Description("图片的Hex流")] string Bin, [Description("")] int AuthCode) + => NativeMethods.Api_UpLoadPic(Type, 对象, Bin, AuthCode); + + /// + /// //设置插件状态,开启或关闭 + /// + /// 真:启用自身 假:关闭自身 + /// + /// + string IQQLightApi.Api_SetPluginState([Description("真:启用自身 假:关闭自身")] bool State, + [Description("")] int AuthCode) + => NativeMethods.Api_SetPluginState(State, AuthCode); /// /// /// /// - /// + /// /// /// - void IQQLightApi.Api_InviteFriend([Description("")] string 群号, [Description("")] string 好友QQ, - [Description("")] string AuthCode) - => NativeMethods.Api_InviteFriend(群号, 好友QQ, AuthCode); + void IQQLightApi.Api_DeleteFile([Description("")] string 群号, [Description("")] string 文件GUID, + [Description("")] int AuthCode) + => NativeMethods.Api_DeleteFile(群号, 文件GUID, AuthCode); /// /// /// - /// + /// + /// + /// /// /// - string IQQLightApi.Api_GetQQinfo_v2([Description("")] string QQ号, [Description("")] string AuthCode) - => NativeMethods.Api_GetQQinfo_v2(QQ号, AuthCode); + void IQQLightApi.Api_RepeatFile([Description("")] string 来源对象, [Description("")] string 转发群号, + [Description("")] string 文件GUID, [Description("")] int AuthCode) + => NativeMethods.Api_RepeatFile(来源对象, 转发群号, 文件GUID, AuthCode); /// /// /// - /// - /// - /// Hex形式 /// /// - string IQQLightApi.Api_UpLoadPic([Description("")] int 类型, [Description("")] string 对象, - [Description("Hex形式")] string 图片字节集, [Description("")] string AuthCode) - => NativeMethods.Api_UpLoadPic(类型, 对象, 图片字节集, AuthCode); + void IQQLightApi.Api_ClearOffLineFile([Description("")] int AuthCode) + => NativeMethods.Api_ClearOffLineFile(AuthCode); + + /// + /// + /// + /// + /// + /// 址 + /// + /// 址 + /// + /// + /// + /// + int IQQLightApi.WideCharToMultiByte([Description("")] int CodePage, [Description("")] int dwFlags, + [Description("址")] byte[] lpWideCharStr, [Description("")] int cchWideChar, + [Description("址")] string lpMultiByteStr, [Description("")] int cchMultiByte, + [Description("")] int lpDefaultChar, [Description("")] int lpUsedDefaultChar) + => NativeMethods.WideCharToMultiByte(CodePage, dwFlags, lpWideCharStr, cchWideChar, lpMultiByteStr, + cchMultiByte, lpDefaultChar, lpUsedDefaultChar); private static class NativeMethods { /// - /// + /// //给QQ点名片赞,PCQQ点赞不稳定,容易失效 /// - /// + /// /// /// [DllImport("bin/message.dll")] - public static extern void Api_SendPraise([Description("")] string QQ号, [Description("")] string AuthCode); + public static extern void Api_SendPraise([Description("")] string QQID, [Description("")] int AuthCode); /// - /// + /// //抖动好友窗口 /// - /// + /// /// /// [DllImport("bin/message.dll")] - public static extern void Api_SendShake([Description("")] string QQ号, [Description("")] string AuthCode); + public static extern void Api_SendShake([Description("")] string QQID, [Description("")] int AuthCode); /// - /// + /// //取得网页操作时需要用到的bkn/Gtk /// + /// /// /// [DllImport("bin/message.dll")] - public static extern string Api_Getbkn([Description("")] string AuthCode); + public static extern string Api_Getbkn([Description("")] string Cookies, [Description("")] int AuthCode); /// - /// + /// //取得网页操作时需要用到的bkn/Gtk /// - /// + /// /// /// [DllImport("bin/message.dll")] - public static extern void Api_QuitGroup([Description("")] string 群号, [Description("")] string AuthCode); + public static extern string Api_Getbkn_Long([Description("")] string Cookies, + [Description("")] int AuthCode); /// - /// + /// //退出群 /// - /// + /// /// /// [DllImport("bin/message.dll")] - public static extern void Api_QuitDiscussGroup([Description("")] string 讨论组号, - [Description("")] string AuthCode); + public static extern void Api_QuitGroup([Description("")] string GroupID, [Description("")] int AuthCode); /// - /// + /// //退出讨论组 /// - /// + /// /// /// [DllImport("bin/message.dll")] - public static extern void Api_SetSignature([Description("")] string 个性签名, - [Description("")] string AuthCode); + public static extern void Api_QuitDiscussGroup([Description("")] string GroupID, + [Description("")] int AuthCode); /// - /// + /// //修改个性签名 /// - /// - /// + /// /// /// [DllImport("bin/message.dll")] - public static extern void Api_SetDiscussName([Description("")] string 讨论组号, [Description("")] string 名称, - [Description("")] string AuthCode); + public static extern void Api_SetSignature([Description("")] string Signature, + [Description("")] int AuthCode); /// - /// + /// //修改讨论组名称 /// - /// - /// + /// + /// /// /// [DllImport("bin/message.dll")] - public static extern void Api_BanGroup([Description("")] string 群号, [Description("")] bool 是否全群禁言, - [Description("")] string AuthCode); + public static extern void Api_SetDiscussName([Description("")] string DiscussGroupID, + [Description("")] string Name, [Description("")] int AuthCode); /// - /// + /// //修改群名称 /// - /// + /// + /// /// /// [DllImport("bin/message.dll")] - public static extern void Api_RemoveGroup([Description("")] string 群号, [Description("")] string AuthCode); + public static extern void Api_SetGroupName([Description("")] string GroupID, [Description("")] string Name, + [Description("")] int AuthCode); /// - /// + /// //设置全群禁言 /// - /// - /// - /// 真,设置 假,取消 + /// + /// 真 开启全群禁言 假 关闭全群禁言 /// /// [DllImport("bin/message.dll")] - public static extern void Api_SetManager([Description("")] string 群号, [Description("")] string QQ号, - [Description("真,设置 假,取消")] bool 是否设置为管理员, [Description("")] string AuthCode); + public static extern void Api_BanGroup([Description("")] string GroupID, + [Description("真 开启全群禁言 假 关闭全群禁言")] bool IsBanGroup, [Description("")] int AuthCode); /// - /// + /// //设置管理员权限 /// - /// + /// + /// + /// 真,设置 假,取消 + /// + /// + [DllImport("bin/message.dll")] + public static extern void Api_SetManager([Description("")] string GroupID, [Description("")] string QQID, + [Description("真,设置 假,取消")] bool IsManager, [Description("")] int AuthCode); + + /// + /// //禁言群成员 + /// + /// /// - /// 单位:秒 0为解除禁言 + /// 单位:秒 0为解除禁言 /// /// [DllImport("bin/message.dll")] - public static extern void Api_Ban([Description("")] string 群号, [Description("")] string QQ, - [Description("单位:秒 0为解除禁言")] int 禁言时长, [Description("")] string AuthCode); + public static extern void Api_Ban([Description("")] string GroupID, [Description("")] string QQ, + [Description("单位:秒 0为解除禁言")] int time, [Description("")] int AuthCode); /// - /// + /// //修改匿名权限 /// - /// - /// + /// + /// 真 允许匿名 假 禁止匿名 /// /// [DllImport("bin/message.dll")] - public static extern void Api_SetAnony([Description("")] string 群号, [Description("")] bool 是否允许匿名聊天, - [Description("")] string AuthCode); + public static extern void Api_SetAnony([Description("")] string GroupID, + [Description("真 允许匿名 假 禁止匿名")] bool IsSetAnony, [Description("")] int AuthCode); /// - /// + /// //踢出群成员 /// - /// - /// - /// + /// + /// + /// 不再接受此人加群 /// /// [DllImport("bin/message.dll")] - public static extern void Api_RemoveMember([Description("")] string 群号, [Description("")] string QQ号, - [Description("")] bool 是否不再接收加群申请, [Description("")] string AuthCode); + public static extern void Api_RemoveMember([Description("")] string GroupID, [Description("")] string QQID, + [Description("不再接受此人加群")] bool IsBan, [Description("")] int AuthCode); /// - /// + /// //解散群 /// + /// 群号 /// /// [DllImport("bin/message.dll")] - public static extern string Api_GetCookies([Description("")] string AuthCode); + public static extern void Api_RemoveGroup([Description("群号")] string GroupID, + [Description("")] int AuthCode); /// - /// + /// //取得操作网页所需要的Cookies /// /// /// [DllImport("bin/message.dll")] - public static extern string Api_GetClientKey([Description("")] string AuthCode); + public static extern string Api_GetCookies([Description("")] int AuthCode); /// - /// + /// //取得QQ空间Token /// /// /// [DllImport("bin/message.dll")] - public static extern string Api_GetLoginQQ([Description("")] string AuthCode); + public static extern string Api_GetQzoneToken([Description("")] int AuthCode); /// - /// 是否开启/关闭 + /// //取得QQ空间Cookies /// /// /// [DllImport("bin/message.dll")] - public static extern bool Api_GetPluginState([Description("")] string AuthCode); + public static extern string Api_GetQzoneCookies([Description("")] int AuthCode); /// - /// 框架为插件所创建的一个目录 + /// //发表说说 /// + /// /// /// [DllImport("bin/message.dll")] - public static extern string Api_GetPath([Description("")] string AuthCode); + public static extern string Api_SendTaotao([Description("")] string Str, [Description("")] int AuthCode); /// - /// 机器人发送消息 + /// //取得所登录的QQ /// - /// 1.好友消息 2.群消息 3.群临时消息 4.讨论组消息 5.讨论组临时消息 6.QQ临时消息 - /// - /// 类型为2,4时可留空 - /// /// /// [DllImport("bin/message.dll")] - public static extern void Api_SendMsg([Description("1.好友消息 2.群消息 3.群临时消息 4.讨论组消息 5.讨论组临时消息 6.QQ临时消息")] - int 类型, [Description("")] string 群组, [Description("类型为2,4时可留空")] string QQ号, - [Description("")] string 内容, [Description("")] string AuthCode); + public static extern string Api_GetLoginQQ([Description("")] int AuthCode); /// - /// 处理加群消息 + /// //框架为插件所创建的插件目录 /// - /// - /// + /// + /// + [DllImport("bin/message.dll")] + public static extern string Api_GetPath([Description("")] int AuthCode); + + /// + /// //置插件错误管理 + /// + /// + /// + /// + /// + [DllImport("bin/message.dll")] + public static extern string Api_Error([Description("")] string Code, [Description("")] string Str, + [Description("")] int AuthCode); + + /// + /// //机器人发送消息,返回值为该条消息的ID + /// + /// 1.好友消息 2.群消息 3.群临时消息 4.讨论组消息 5.讨论组临时消息 6.QQ临时消息 + /// + /// 类型为2,4时可留空 + /// + /// + /// + [DllImport("bin/message.dll")] + public static extern string Api_SendMsg([Description("1.好友消息 2.群消息 3.群临时消息 4.讨论组消息 5.讨论组临时消息 6.QQ临时消息")] + int Type, [Description("")] string GroupID, [Description("类型为2,4时可留空")] string QQID, + [Description("")] string Msg, [Description("")] int AuthCode); + + /// + /// //处理加群消息 + /// + /// + /// /// - /// 1.同意 2.拒绝 3.忽略 - /// 参数可为空,且为 拒绝 时有效 + /// 1.同意 2.拒绝 3.忽略 + /// 参数可为空,且为 拒绝 时有效 /// /// [DllImport("bin/message.dll")] - public static extern void Api_SetGroupAdd([Description("")] string 群号, [Description("")] string QQ号, - [Description("")] string Seq, [Description("1.同意 2.拒绝 3.忽略")] int 操作方式, - [Description("参数可为空,且为 拒绝 时有效")] string 拒绝理由, [Description("")] string AuthCode); + public static extern void Api_SetGroupAdd([Description("")] string GroupID, [Description("")] string QQID, + [Description("")] string Seq, [Description("1.同意 2.拒绝 3.忽略")] int Type, + [Description("参数可为空,且为 拒绝 时有效")] string Reason, [Description("")] int AuthCode); /// - /// 处理加好友消息 + /// //处理加好友消息 /// - /// - /// 1.同意 2.拒绝 3.忽略 - /// 参数可为空,且为 拒绝 时有效 + /// + /// 1.同意 2.拒绝 3.忽略 + /// 参数可为空,且为 拒绝 时有效 /// /// [DllImport("bin/message.dll")] - public static extern void Api_SetFriendAdd([Description("")] string QQ号, - [Description("1.同意 2.拒绝 3.忽略")] int 操作方式, [Description("参数可为空,且为 拒绝 时有效")] string 拒绝理由, - [Description("")] string AuthCode); + public static extern void Api_SetFriendAdd([Description("")] string QQID, + [Description("1.同意 2.拒绝 3.忽略")] int Type, [Description("参数可为空,且为 拒绝 时有效")] string Reason, + [Description("")] int AuthCode); /// - /// + /// //向框架推送一条日志 + /// + /// 日志类型(自定义) + /// 日志内容 + /// 日志颜色 + /// + /// + [DllImport("bin/message.dll")] + public static extern void Api_SendLog([Description("日志类型(自定义)")] string Type, + [Description("日志内容")] string Msg, [Description("日志颜色")] int FontColor, [Description("")] int AuthCode); + + /// + /// //修改好友备注 /// - /// - /// - /// + /// + /// /// /// [DllImport("bin/message.dll")] - public static extern void Api_SendLog([Description("")] string 类型, [Description("")] string 内容, - [Description("")] int 字体颜色, [Description("")] string AuthCode); + public static extern void Api_SetFriendName([Description("")] string QQID, [Description("")] string Name, + [Description("")] int AuthCode); + + /// + /// //删除好友 + /// + /// + /// + /// + [DllImport("bin/message.dll")] + public static extern void Api_DeleteFriend([Description("")] string QQID, [Description("")] int AuthCode); + + /// + /// //主动添加群 + /// + /// + /// + /// + /// + [DllImport("bin/message.dll")] + public static extern void Api_AddGroup([Description("")] string GroupID, [Description("")] string 附加信息, + [Description("")] int AuthCode); + + /// + /// //主动添加好友 + /// + /// + /// + /// + /// + [DllImport("bin/message.dll")] + public static extern void Api_AddFriend([Description("")] string QQID, [Description("")] string Info, + [Description("")] int AuthCode); + + /// + /// //返回卡片点歌JSON代码 + /// + /// + /// + /// + [DllImport("bin/message.dll")] + public static extern string Api_JsonMusic([Description("")] string SongID, [Description("")] int AuthCode); + + /// + /// //取得群内成员的名片 + /// + /// + /// + /// + /// + [DllImport("bin/message.dll")] + public static extern string Api_GetGroupCard([Description("")] string GroupID, + [Description("")] string QQID, [Description("")] int AuthCode); + + /// + /// //取指定QQ的昵称 + /// + /// + /// + /// + [DllImport("bin/message.dll")] + public static extern string Api_GetNick([Description("")] string QQID, [Description("")] int AuthCode); /// /// /// - /// - /// + /// /// /// [DllImport("bin/message.dll")] - public static extern void Api_SetFriendName([Description("")] string 好友QQ, [Description("")] string 备注名, - [Description("")] string AuthCode); + public static extern string Api_GetGroupName([Description("")] string GroupID, + [Description("")] int AuthCode); /// /// /// - /// /// /// [DllImport("bin/message.dll")] - public static extern void Api_DeleteFriend([Description("")] string 好友QQ, - [Description("")] string AuthCode); + public static extern string Api_GetSoftVersion([Description("")] int AuthCode); /// /// /// - /// - /// + /// /// /// [DllImport("bin/message.dll")] - public static extern void Api_AddGroup([Description("")] string 群号, [Description("")] string 附加信息, - [Description("")] string AuthCode); + public static extern string Api_GetGroupIntroduce([Description("")] string GroupID, + [Description("")] int AuthCode); /// /// /// - /// - /// + /// /// /// [DllImport("bin/message.dll")] - public static extern void Api_AddFriend([Description("")] string 目标QQ, [Description("")] string 附加信息, - [Description("")] string AuthCode); + public static extern string Api_GetGroupOwner([Description("")] string GroupID, + [Description("")] int AuthCode); /// - /// 返回网易云点歌XML + /// //修改群成员的名片 /// - /// + /// + /// + /// /// /// [DllImport("bin/message.dll")] - public static extern string Api_163Music([Description("")] string 歌曲ID, [Description("")] string AuthCode); + public static extern void Api_SetGroupCard([Description("")] string GroupID, [Description("")] string QQID, + [Description("")] string NewCard, [Description("")] int AuthCode); /// - /// 返回QQ点歌XML + /// //取得某个QQ的名片赞数量 /// - /// + /// /// /// [DllImport("bin/message.dll")] - public static extern string Api_QQMusic([Description("")] string 歌曲ID, [Description("")] string AuthCode); + public static extern string Api_GetPraiseNum([Description("")] string QQID, [Description("")] int AuthCode); /// - /// 返回Json点歌XML + /// //取得某个QQ的等级 /// - /// + /// /// /// [DllImport("bin/message.dll")] - public static extern string Api_JsonMusic([Description("")] string 歌曲ID, [Description("")] string AuthCode); + public static extern int Api_GetQQLevel([Description("")] string QQID, [Description("")] int AuthCode); /// - /// 置插件错误管理 + /// /// - /// - /// + /// /// /// [DllImport("bin/message.dll")] - public static extern string Api_Error([Description("")] string Code, [Description("")] string Str, - [Description("")] string AuthCode); + public static extern void Api_SetNick([Description("")] string NewNick, [Description("")] int AuthCode); /// - /// 取得群内成员的名片 + /// /// - /// - /// + /// + /// /// /// [DllImport("bin/message.dll")] - public static extern string Api_GetGroupCard([Description("")] string 群号, [Description("")] string QQ号, - [Description("")] string AuthCode); + public static extern string Api_Taotaodolike([Description("")] string QQID, [Description("")] string URL, + [Description("")] int AuthCode); /// - /// 取得某个QQ的昵称 + /// /// - /// + /// + /// + /// /// /// [DllImport("bin/message.dll")] - public static extern string Api_GetNick([Description("")] string QQ号, [Description("")] string AuthCode); + public static extern string Api_Taotaofeeds([Description("")] string QQID, [Description("")] string URL, + [Description("")] string Content, [Description("")] int AuthCode); /// - /// 修改群内成员的名片 + /// /// - /// - /// - /// + /// /// /// [DllImport("bin/message.dll")] - public static extern void Api_SetGroupCard([Description("")] string 群号, [Description("")] string QQ号, - [Description("")] string 新名片, [Description("")] string AuthCode); + public static extern int Api_GetQQAge([Description("")] string QQID, [Description("")] int AuthCode); /// - /// 取得某个QQ的名片赞数量 + /// /// - /// + /// /// /// [DllImport("bin/message.dll")] - public static extern string Api_GetPraiseNum([Description("")] string QQ号, - [Description("")] string AuthCode); + public static extern int Api_GetQQSex([Description("")] string QQID, [Description("")] int AuthCode); /// - /// 以JSON形式取得好友列表 + /// //以JSON形式取得好友列表 /// + /// /// /// [DllImport("bin/message.dll")] - public static extern string Api_GetFriendList([Description("")] string AuthCode); + public static extern string Api_GetFriendList([Description("")] bool Cache, [Description("")] int AuthCode); /// - /// 以JSON形式取得群列表 + /// //以JSON形式取得群列表 /// + /// /// /// [DllImport("bin/message.dll")] - public static extern string Api_GetGroupList([Description("")] string AuthCode); + public static extern string Api_GetGroupList([Description("")] bool Cache, [Description("")] int AuthCode); /// - /// 以JSON形式取得群成员列表 + /// //以JSON形式取得群成员列表 /// - /// + /// + /// /// /// [DllImport("bin/message.dll")] - public static extern string Api_GetGroupMemberList([Description("")] string 群号, - [Description("")] string AuthCode); + public static extern string Api_GetGroupMemberList([Description("")] string GroupID, + [Description("")] bool Cache, [Description("")] int AuthCode); /// - /// 以JSON形式取得某QQ个人信息 + /// //以JSON形式取得某QQ个人信息 /// - /// + /// /// /// [DllImport("bin/message.dll")] - public static extern string Api_GetQQInfo([Description("")] string QQ号, [Description("")] string AuthCode); + public static extern string Api_GetQQInfo([Description("")] string QQID, [Description("")] int AuthCode); /// - /// 以JSON形式取得某群信息 + /// //以JSON形式取得某群信息 /// - /// + /// /// /// [DllImport("bin/message.dll")] - public static extern string - Api_GetGroupInfo([Description("")] string 群号, [Description("")] string AuthCode); + public static extern string Api_GetGroupInfo([Description("")] string GroupID, + [Description("")] int AuthCode); /// - /// 让机器人快速重启 + /// //撤回自身消息 发出消息不可以秒撤回,腾讯限制,1~2s后才可撤回 /// + /// 1.好友消息 2.群消息 3.群临时消息 4.讨论组消息 5.讨论组临时消息 6.QQ临时消息 + /// 撤回群消息、群临时消息、讨论组消息、讨论组临时消息必须填写,其余情况可留空 + /// 撤回好友消息、群临时消息、讨论组临时消息、QQ临时消息必须填写,其余情况可留空 + /// 撤回的消息ID,机器人发送消息会返回自身的消息ID /// /// [DllImport("bin/message.dll")] - public static extern string Api_Restart([Description("")] string AuthCode); + public static extern void Api_DeleteMsg([Description("1.好友消息 2.群消息 3.群临时消息 4.讨论组消息 5.讨论组临时消息 6.QQ临时消息")] + int Type, [Description("撤回群消息、群临时消息、讨论组消息、讨论组临时消息必须填写,其余情况可留空")] + string GroupID, [Description("撤回好友消息、群临时消息、讨论组临时消息、QQ临时消息必须填写,其余情况可留空")] + string QQID, [Description("撤回的消息ID,机器人发送消息会返回自身的消息ID")] + string MsgID, [Description("")] int AuthCode); /// - /// 让机器人刷新插件 + /// //改变QQ在线状态 /// + /// 1.我在线上 2.Q我吧 3.离开 4.忙碌 5.请勿打扰 6.隐身 /// /// [DllImport("bin/message.dll")] - public static extern string Api_UpdatePlugin([Description("")] string AuthCode); + public static extern void Api_SetQQState([Description("1.我在线上 2.Q我吧 3.离开 4.忙碌 5.请勿打扰 6.隐身")] + int Type, [Description("")] int AuthCode); /// - /// 撤回群成员的消息 机器人必须为管理员 + /// //邀请好友入群 /// - /// - /// + /// + /// /// /// [DllImport("bin/message.dll")] - public static extern string Api_DeleteMsg([Description("")] string 群号, [Description("")] string 消息ID, - [Description("")] string AuthCode); + public static extern void Api_InviteFriend([Description("")] string GroupID, [Description("")] string QQID, + [Description("")] int AuthCode); /// - /// 改变QQ在线状态 + /// /// - /// 1.我在线上 2.Q我吧 3.离开 4.忙碌 5.请勿打扰 6.隐身 + /// /// /// [DllImport("bin/message.dll")] - public static extern string Api_SetQQState([Description("1.我在线上 2.Q我吧 3.离开 4.忙碌 5.请勿打扰 6.隐身")] - int 类型, [Description("")] string AuthCode); + public static extern string Api_GetQQInfo_v2([Description("")] string QQID, [Description("")] int AuthCode); + + /// + /// //取消COM库 + /// + /// + [DllImport("bin/message.dll")] + public static extern void CoUninitialize(); + + /// + /// //初始化COM库 + /// + /// + /// + [DllImport("bin/message.dll")] + public static extern void CoInitialize([Description("")] int pvReserved); + + /// + /// //上传图片,获得图片GUID, + /// + /// 1.私聊图片 2.群聊图片 + /// 私聊图片填写QQID,群聊/讨论组图片填写群号讨论组号 + /// 图片的Hex流 + /// + /// + [DllImport("bin/message.dll")] + public static extern string Api_UpLoadPic([Description("1.私聊图片 2.群聊图片")] int Type, + [Description("私聊图片填写QQID,群聊/讨论组图片填写群号讨论组号")] + string 对象, [Description("图片的Hex流")] string Bin, [Description("")] int AuthCode); + + /// + /// //设置插件状态,开启或关闭 + /// + /// 真:启用自身 假:关闭自身 + /// + /// + [DllImport("bin/message.dll")] + public static extern string Api_SetPluginState([Description("真:启用自身 假:关闭自身")] bool State, + [Description("")] int AuthCode); /// /// /// /// - /// + /// /// /// [DllImport("bin/message.dll")] - public static extern void Api_InviteFriend([Description("")] string 群号, [Description("")] string 好友QQ, - [Description("")] string AuthCode); + public static extern void Api_DeleteFile([Description("")] string 群号, [Description("")] string 文件GUID, + [Description("")] int AuthCode); /// /// /// - /// + /// + /// + /// /// /// [DllImport("bin/message.dll")] - public static extern string Api_GetQQinfo_v2([Description("")] string QQ号, - [Description("")] string AuthCode); + public static extern void Api_RepeatFile([Description("")] string 来源对象, [Description("")] string 转发群号, + [Description("")] string 文件GUID, [Description("")] int AuthCode); /// /// /// - /// - /// - /// Hex形式 /// /// [DllImport("bin/message.dll")] - public static extern string Api_UpLoadPic([Description("")] int 类型, [Description("")] string 对象, - [Description("Hex形式")] string 图片字节集, [Description("")] string AuthCode); + public static extern void Api_ClearOffLineFile([Description("")] int AuthCode); + + /// + /// + /// + /// + /// + /// 址 + /// + /// 址 + /// + /// + /// + /// + [DllImport("bin/message.dll")] + public static extern int WideCharToMultiByte([Description("")] int CodePage, [Description("")] int dwFlags, + [Description("址")] byte[] lpWideCharStr, [Description("")] int cchWideChar, + [Description("址")] string lpMultiByteStr, [Description("")] int cchMultiByte, + [Description("")] int lpDefaultChar, [Description("")] int lpUsedDefaultChar); } } } \ No newline at end of file diff --git a/src/Newbe.Mahua.QQLight.Native/QqLightAuthCodeContainer.cs b/src/Newbe.Mahua.QQLight.Native/QqLightAuthCodeContainer.cs index e913d9f..c79c22d 100644 --- a/src/Newbe.Mahua.QQLight.Native/QqLightAuthCodeContainer.cs +++ b/src/Newbe.Mahua.QQLight.Native/QqLightAuthCodeContainer.cs @@ -2,11 +2,11 @@ { internal class QqLightAuthCodeContainer : IQqLightAuthCodeContainer { - public string AuthCode + public int AuthCode { get => StaticAuthCode; } - public static string StaticAuthCode { get; set; } + public static int StaticAuthCode { get; set; } } } \ No newline at end of file diff --git a/src/Newbe.Mahua.QQLight.Native/packages.config b/src/Newbe.Mahua.QQLight.Native/packages.config index 47324c7..b1f1fe0 100644 --- a/src/Newbe.Mahua.QQLight.Native/packages.config +++ b/src/Newbe.Mahua.QQLight.Native/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/src/Newbe.Mahua.QQLight/IQqLightAuthCodeContainer.cs b/src/Newbe.Mahua.QQLight/IQqLightAuthCodeContainer.cs index 0521413..73e01b4 100644 --- a/src/Newbe.Mahua.QQLight/IQqLightAuthCodeContainer.cs +++ b/src/Newbe.Mahua.QQLight/IQqLightAuthCodeContainer.cs @@ -2,6 +2,6 @@ { public interface IQqLightAuthCodeContainer { - string AuthCode { get; } + int AuthCode { get; } } } diff --git a/src/Newbe.Mahua.QQLight/MahuaEventOutputs/BecomeFriends.cs b/src/Newbe.Mahua.QQLight/MahuaEventOutputs/BecomeFriends.cs deleted file mode 100644 index 822828f..0000000 --- a/src/Newbe.Mahua.QQLight/MahuaEventOutputs/BecomeFriends.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace Newbe.Mahua.QQLight.MahuaEventOutputs -{ - public class BecomeFriends : QQLighEventOutput - { - public override string TypeCode { get; } = nameof(BecomeFriends); - public string Fromqq { get; set; } - } -} \ No newline at end of file diff --git a/src/Newbe.Mahua.QQLight/MahuaEventOutputs/FriendChange.cs b/src/Newbe.Mahua.QQLight/MahuaEventOutputs/FriendChange.cs new file mode 100644 index 0000000..ac3752d --- /dev/null +++ b/src/Newbe.Mahua.QQLight/MahuaEventOutputs/FriendChange.cs @@ -0,0 +1,9 @@ +namespace Newbe.Mahua.QQLight.MahuaEventOutputs +{ + public class FriendChange : QQLighEventOutput + { + public override string TypeCode { get; } = nameof(GetNewMsg); + public string Fromqq { get; set; } + public int Type { get; set; } + } +} \ No newline at end of file diff --git a/src/Newbe.Mahua.QQLight/MahuaEventOutputs/Information.cs b/src/Newbe.Mahua.QQLight/MahuaEventOutputs/Information.cs index d67fc07..2e4d0bc 100644 --- a/src/Newbe.Mahua.QQLight/MahuaEventOutputs/Information.cs +++ b/src/Newbe.Mahua.QQLight/MahuaEventOutputs/Information.cs @@ -3,6 +3,6 @@ namespace Newbe.Mahua.QQLight.MahuaEventOutputs public class Information : QQLighEventOutput { public override string TypeCode { get; } = nameof(Information); - public string AuthCode { get; set; } + public int AuthCode { get; set; } } } \ No newline at end of file diff --git a/src/Newbe.Mahua.QQLight/MahuaEventOutputs/UpdataCookies.cs b/src/Newbe.Mahua.QQLight/MahuaEventOutputs/UpdataCookies.cs deleted file mode 100644 index 86da23b..0000000 --- a/src/Newbe.Mahua.QQLight/MahuaEventOutputs/UpdataCookies.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace Newbe.Mahua.QQLight.MahuaEventOutputs -{ - public class UpdataCookies : QQLighEventOutput - { - public override string TypeCode { get; } = nameof(UpdataCookies); - } -} \ No newline at end of file diff --git a/src/Newbe.Mahua.QQLight/QQLightMahuaApiHandler.cs b/src/Newbe.Mahua.QQLight/QQLightMahuaApiHandler.cs index ef6cb5a..bdcdd83 100644 --- a/src/Newbe.Mahua.QQLight/QQLightMahuaApiHandler.cs +++ b/src/Newbe.Mahua.QQLight/QQLightMahuaApiHandler.cs @@ -5,7 +5,7 @@ // this file is generate from tools, do not change this file -// generate time 2019/01/23 +// generate time 2019/12/15 namespace Newbe.Mahua.QQLight { @@ -30,191 +30,255 @@ public Task Run(string typeCode, IReadOnlyDictionary data) switch (typeCode) { case "Api_SendPraise": - _qQLightApi.Api_SendPraise(QQ号: data["QQ号"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); + _qQLightApi.Api_SendPraise(QQID: data["QQID"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); return Task.CompletedTask; case "Api_SendShake": - _qQLightApi.Api_SendShake(QQ号: data["QQ号"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); + _qQLightApi.Api_SendShake(QQID: data["QQID"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); return Task.CompletedTask; case "Api_Getbkn": var Api_GetbknResult = - _qQLightApi.Api_Getbkn(AuthCode: _qqLightAuthCodeContainer.AuthCode); + _qQLightApi.Api_Getbkn(Cookies: data["Cookies"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); return _mahuaCenter.HandleMahuaOutput(new Api_GetbknApiOut { Result = Api_GetbknResult }); + case "Api_Getbkn_Long": + var Api_Getbkn_LongResult = + _qQLightApi.Api_Getbkn_Long(Cookies: data["Cookies"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); + return _mahuaCenter.HandleMahuaOutput(new Api_Getbkn_LongApiOut + { Result = Api_Getbkn_LongResult }); case "Api_QuitGroup": - _qQLightApi.Api_QuitGroup(群号: data["群号"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); + _qQLightApi.Api_QuitGroup(GroupID: data["GroupID"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); return Task.CompletedTask; case "Api_QuitDiscussGroup": - _qQLightApi.Api_QuitDiscussGroup(讨论组号: data["讨论组号"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); + _qQLightApi.Api_QuitDiscussGroup(GroupID: data["GroupID"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); return Task.CompletedTask; case "Api_SetSignature": - _qQLightApi.Api_SetSignature(个性签名: data["个性签名"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); + _qQLightApi.Api_SetSignature(Signature: data["Signature"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); return Task.CompletedTask; case "Api_SetDiscussName": - _qQLightApi.Api_SetDiscussName(讨论组号: data["讨论组号"].ToString(), 名称: data["名称"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); + _qQLightApi.Api_SetDiscussName(DiscussGroupID: data["DiscussGroupID"].ToString(), Name: data["Name"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); return Task.CompletedTask; - case "Api_BanGroup": - _qQLightApi.Api_BanGroup(群号: data["群号"].ToString(), 是否全群禁言: Convert.ToBoolean(data["是否全群禁言"]), AuthCode: _qqLightAuthCodeContainer.AuthCode); + case "Api_SetGroupName": + _qQLightApi.Api_SetGroupName(GroupID: data["GroupID"].ToString(), Name: data["Name"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); return Task.CompletedTask; - case "Api_RemoveGroup": - _qQLightApi.Api_RemoveGroup(群号: data["群号"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); + case "Api_BanGroup": + _qQLightApi.Api_BanGroup(GroupID: data["GroupID"].ToString(), IsBanGroup: Convert.ToBoolean(data["IsBanGroup"]), AuthCode: _qqLightAuthCodeContainer.AuthCode); return Task.CompletedTask; case "Api_SetManager": - _qQLightApi.Api_SetManager(群号: data["群号"].ToString(), QQ号: data["QQ号"].ToString(), 是否设置为管理员: Convert.ToBoolean(data["是否设置为管理员"]), AuthCode: _qqLightAuthCodeContainer.AuthCode); + _qQLightApi.Api_SetManager(GroupID: data["GroupID"].ToString(), QQID: data["QQID"].ToString(), IsManager: Convert.ToBoolean(data["IsManager"]), AuthCode: _qqLightAuthCodeContainer.AuthCode); return Task.CompletedTask; case "Api_Ban": - _qQLightApi.Api_Ban(群号: data["群号"].ToString(), QQ: data["QQ"].ToString(), 禁言时长: Convert.ToInt32(data["禁言时长"]), AuthCode: _qqLightAuthCodeContainer.AuthCode); + _qQLightApi.Api_Ban(GroupID: data["GroupID"].ToString(), QQ: data["QQ"].ToString(), time: Convert.ToInt32(data["time"]), AuthCode: _qqLightAuthCodeContainer.AuthCode); return Task.CompletedTask; case "Api_SetAnony": - _qQLightApi.Api_SetAnony(群号: data["群号"].ToString(), 是否允许匿名聊天: Convert.ToBoolean(data["是否允许匿名聊天"]), AuthCode: _qqLightAuthCodeContainer.AuthCode); + _qQLightApi.Api_SetAnony(GroupID: data["GroupID"].ToString(), IsSetAnony: Convert.ToBoolean(data["IsSetAnony"]), AuthCode: _qqLightAuthCodeContainer.AuthCode); return Task.CompletedTask; case "Api_RemoveMember": - _qQLightApi.Api_RemoveMember(群号: data["群号"].ToString(), QQ号: data["QQ号"].ToString(), 是否不再接收加群申请: Convert.ToBoolean(data["是否不再接收加群申请"]), AuthCode: _qqLightAuthCodeContainer.AuthCode); + _qQLightApi.Api_RemoveMember(GroupID: data["GroupID"].ToString(), QQID: data["QQID"].ToString(), IsBan: Convert.ToBoolean(data["IsBan"]), AuthCode: _qqLightAuthCodeContainer.AuthCode); + return Task.CompletedTask; + case "Api_RemoveGroup": + _qQLightApi.Api_RemoveGroup(GroupID: data["GroupID"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); return Task.CompletedTask; case "Api_GetCookies": var Api_GetCookiesResult = _qQLightApi.Api_GetCookies(AuthCode: _qqLightAuthCodeContainer.AuthCode); return _mahuaCenter.HandleMahuaOutput(new Api_GetCookiesApiOut { Result = Api_GetCookiesResult }); - case "Api_GetClientKey": - var Api_GetClientKeyResult = - _qQLightApi.Api_GetClientKey(AuthCode: _qqLightAuthCodeContainer.AuthCode); - return _mahuaCenter.HandleMahuaOutput(new Api_GetClientKeyApiOut - { Result = Api_GetClientKeyResult }); + case "Api_GetQzoneToken": + var Api_GetQzoneTokenResult = + _qQLightApi.Api_GetQzoneToken(AuthCode: _qqLightAuthCodeContainer.AuthCode); + return _mahuaCenter.HandleMahuaOutput(new Api_GetQzoneTokenApiOut + { Result = Api_GetQzoneTokenResult }); + case "Api_GetQzoneCookies": + var Api_GetQzoneCookiesResult = + _qQLightApi.Api_GetQzoneCookies(AuthCode: _qqLightAuthCodeContainer.AuthCode); + return _mahuaCenter.HandleMahuaOutput(new Api_GetQzoneCookiesApiOut + { Result = Api_GetQzoneCookiesResult }); + case "Api_SendTaotao": + var Api_SendTaotaoResult = + _qQLightApi.Api_SendTaotao(Str: data["Str"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); + return _mahuaCenter.HandleMahuaOutput(new Api_SendTaotaoApiOut + { Result = Api_SendTaotaoResult }); case "Api_GetLoginQQ": var Api_GetLoginQQResult = _qQLightApi.Api_GetLoginQQ(AuthCode: _qqLightAuthCodeContainer.AuthCode); return _mahuaCenter.HandleMahuaOutput(new Api_GetLoginQQApiOut { Result = Api_GetLoginQQResult }); - case "Api_GetPluginState": - var Api_GetPluginStateResult = - _qQLightApi.Api_GetPluginState(AuthCode: _qqLightAuthCodeContainer.AuthCode); - return _mahuaCenter.HandleMahuaOutput(new Api_GetPluginStateApiOut - { Result = Api_GetPluginStateResult }); case "Api_GetPath": var Api_GetPathResult = _qQLightApi.Api_GetPath(AuthCode: _qqLightAuthCodeContainer.AuthCode); return _mahuaCenter.HandleMahuaOutput(new Api_GetPathApiOut { Result = Api_GetPathResult }); + case "Api_Error": + var Api_ErrorResult = + _qQLightApi.Api_Error(Code: data["Code"].ToString(), Str: data["Str"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); + return _mahuaCenter.HandleMahuaOutput(new Api_ErrorApiOut + { Result = Api_ErrorResult }); case "Api_SendMsg": - _qQLightApi.Api_SendMsg(类型: Convert.ToInt32(data["类型"]), 群组: data["群组"].ToString(), QQ号: data["QQ号"].ToString(), 内容: data["内容"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); - return Task.CompletedTask; + var Api_SendMsgResult = + _qQLightApi.Api_SendMsg(Type: Convert.ToInt32(data["Type"]), GroupID: data["GroupID"].ToString(), QQID: data["QQID"].ToString(), Msg: data["Msg"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); + return _mahuaCenter.HandleMahuaOutput(new Api_SendMsgApiOut + { Result = Api_SendMsgResult }); case "Api_SetGroupAdd": - _qQLightApi.Api_SetGroupAdd(群号: data["群号"].ToString(), QQ号: data["QQ号"].ToString(), Seq: data["Seq"].ToString(), 操作方式: Convert.ToInt32(data["操作方式"]), 拒绝理由: data["拒绝理由"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); + _qQLightApi.Api_SetGroupAdd(GroupID: data["GroupID"].ToString(), QQID: data["QQID"].ToString(), Seq: data["Seq"].ToString(), Type: Convert.ToInt32(data["Type"]), Reason: data["Reason"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); return Task.CompletedTask; case "Api_SetFriendAdd": - _qQLightApi.Api_SetFriendAdd(QQ号: data["QQ号"].ToString(), 操作方式: Convert.ToInt32(data["操作方式"]), 拒绝理由: data["拒绝理由"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); + _qQLightApi.Api_SetFriendAdd(QQID: data["QQID"].ToString(), Type: Convert.ToInt32(data["Type"]), Reason: data["Reason"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); return Task.CompletedTask; case "Api_SendLog": - _qQLightApi.Api_SendLog(类型: data["类型"].ToString(), 内容: data["内容"].ToString(), 字体颜色: Convert.ToInt32(data["字体颜色"]), AuthCode: _qqLightAuthCodeContainer.AuthCode); + _qQLightApi.Api_SendLog(Type: data["Type"].ToString(), Msg: data["Msg"].ToString(), FontColor: Convert.ToInt32(data["FontColor"]), AuthCode: _qqLightAuthCodeContainer.AuthCode); return Task.CompletedTask; case "Api_SetFriendName": - _qQLightApi.Api_SetFriendName(好友QQ: data["好友QQ"].ToString(), 备注名: data["备注名"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); + _qQLightApi.Api_SetFriendName(QQID: data["QQID"].ToString(), Name: data["Name"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); return Task.CompletedTask; case "Api_DeleteFriend": - _qQLightApi.Api_DeleteFriend(好友QQ: data["好友QQ"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); + _qQLightApi.Api_DeleteFriend(QQID: data["QQID"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); return Task.CompletedTask; case "Api_AddGroup": - _qQLightApi.Api_AddGroup(群号: data["群号"].ToString(), 附加信息: data["附加信息"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); + _qQLightApi.Api_AddGroup(GroupID: data["GroupID"].ToString(), 附加信息: data["附加信息"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); return Task.CompletedTask; case "Api_AddFriend": - _qQLightApi.Api_AddFriend(目标QQ: data["目标QQ"].ToString(), 附加信息: data["附加信息"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); + _qQLightApi.Api_AddFriend(QQID: data["QQID"].ToString(), Info: data["Info"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); return Task.CompletedTask; - case "Api_163Music": - var Api_163MusicResult = - _qQLightApi.Api_163Music(歌曲ID: data["歌曲ID"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); - return _mahuaCenter.HandleMahuaOutput(new Api_163MusicApiOut - { Result = Api_163MusicResult }); - case "Api_QQMusic": - var Api_QQMusicResult = - _qQLightApi.Api_QQMusic(歌曲ID: data["歌曲ID"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); - return _mahuaCenter.HandleMahuaOutput(new Api_QQMusicApiOut - { Result = Api_QQMusicResult }); case "Api_JsonMusic": var Api_JsonMusicResult = - _qQLightApi.Api_JsonMusic(歌曲ID: data["歌曲ID"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); + _qQLightApi.Api_JsonMusic(SongID: data["SongID"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); return _mahuaCenter.HandleMahuaOutput(new Api_JsonMusicApiOut { Result = Api_JsonMusicResult }); - case "Api_Error": - var Api_ErrorResult = - _qQLightApi.Api_Error(Code: data["Code"].ToString(), Str: data["Str"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); - return _mahuaCenter.HandleMahuaOutput(new Api_ErrorApiOut - { Result = Api_ErrorResult }); case "Api_GetGroupCard": var Api_GetGroupCardResult = - _qQLightApi.Api_GetGroupCard(群号: data["群号"].ToString(), QQ号: data["QQ号"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); + _qQLightApi.Api_GetGroupCard(GroupID: data["GroupID"].ToString(), QQID: data["QQID"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); return _mahuaCenter.HandleMahuaOutput(new Api_GetGroupCardApiOut { Result = Api_GetGroupCardResult }); case "Api_GetNick": var Api_GetNickResult = - _qQLightApi.Api_GetNick(QQ号: data["QQ号"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); + _qQLightApi.Api_GetNick(QQID: data["QQID"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); return _mahuaCenter.HandleMahuaOutput(new Api_GetNickApiOut { Result = Api_GetNickResult }); + case "Api_GetGroupName": + var Api_GetGroupNameResult = + _qQLightApi.Api_GetGroupName(GroupID: data["GroupID"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); + return _mahuaCenter.HandleMahuaOutput(new Api_GetGroupNameApiOut + { Result = Api_GetGroupNameResult }); + case "Api_GetSoftVersion": + var Api_GetSoftVersionResult = + _qQLightApi.Api_GetSoftVersion(AuthCode: _qqLightAuthCodeContainer.AuthCode); + return _mahuaCenter.HandleMahuaOutput(new Api_GetSoftVersionApiOut + { Result = Api_GetSoftVersionResult }); + case "Api_GetGroupIntroduce": + var Api_GetGroupIntroduceResult = + _qQLightApi.Api_GetGroupIntroduce(GroupID: data["GroupID"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); + return _mahuaCenter.HandleMahuaOutput(new Api_GetGroupIntroduceApiOut + { Result = Api_GetGroupIntroduceResult }); + case "Api_GetGroupOwner": + var Api_GetGroupOwnerResult = + _qQLightApi.Api_GetGroupOwner(GroupID: data["GroupID"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); + return _mahuaCenter.HandleMahuaOutput(new Api_GetGroupOwnerApiOut + { Result = Api_GetGroupOwnerResult }); case "Api_SetGroupCard": - _qQLightApi.Api_SetGroupCard(群号: data["群号"].ToString(), QQ号: data["QQ号"].ToString(), 新名片: data["新名片"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); + _qQLightApi.Api_SetGroupCard(GroupID: data["GroupID"].ToString(), QQID: data["QQID"].ToString(), NewCard: data["NewCard"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); return Task.CompletedTask; case "Api_GetPraiseNum": var Api_GetPraiseNumResult = - _qQLightApi.Api_GetPraiseNum(QQ号: data["QQ号"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); + _qQLightApi.Api_GetPraiseNum(QQID: data["QQID"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); return _mahuaCenter.HandleMahuaOutput(new Api_GetPraiseNumApiOut { Result = Api_GetPraiseNumResult }); + case "Api_GetQQLevel": + var Api_GetQQLevelResult = + _qQLightApi.Api_GetQQLevel(QQID: data["QQID"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); + return _mahuaCenter.HandleMahuaOutput(new Api_GetQQLevelApiOut + { Result = Api_GetQQLevelResult }); + case "Api_SetNick": + _qQLightApi.Api_SetNick(NewNick: data["NewNick"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); + return Task.CompletedTask; + case "Api_Taotaodolike": + var Api_TaotaodolikeResult = + _qQLightApi.Api_Taotaodolike(QQID: data["QQID"].ToString(), URL: data["URL"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); + return _mahuaCenter.HandleMahuaOutput(new Api_TaotaodolikeApiOut + { Result = Api_TaotaodolikeResult }); + case "Api_Taotaofeeds": + var Api_TaotaofeedsResult = + _qQLightApi.Api_Taotaofeeds(QQID: data["QQID"].ToString(), URL: data["URL"].ToString(), Content: data["Content"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); + return _mahuaCenter.HandleMahuaOutput(new Api_TaotaofeedsApiOut + { Result = Api_TaotaofeedsResult }); + case "Api_GetQQAge": + var Api_GetQQAgeResult = + _qQLightApi.Api_GetQQAge(QQID: data["QQID"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); + return _mahuaCenter.HandleMahuaOutput(new Api_GetQQAgeApiOut + { Result = Api_GetQQAgeResult }); + case "Api_GetQQSex": + var Api_GetQQSexResult = + _qQLightApi.Api_GetQQSex(QQID: data["QQID"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); + return _mahuaCenter.HandleMahuaOutput(new Api_GetQQSexApiOut + { Result = Api_GetQQSexResult }); case "Api_GetFriendList": var Api_GetFriendListResult = - _qQLightApi.Api_GetFriendList(AuthCode: _qqLightAuthCodeContainer.AuthCode); + _qQLightApi.Api_GetFriendList(Cache: Convert.ToBoolean(data["Cache"]), AuthCode: _qqLightAuthCodeContainer.AuthCode); return _mahuaCenter.HandleMahuaOutput(new Api_GetFriendListApiOut { Result = Api_GetFriendListResult }); case "Api_GetGroupList": var Api_GetGroupListResult = - _qQLightApi.Api_GetGroupList(AuthCode: _qqLightAuthCodeContainer.AuthCode); + _qQLightApi.Api_GetGroupList(Cache: Convert.ToBoolean(data["Cache"]), AuthCode: _qqLightAuthCodeContainer.AuthCode); return _mahuaCenter.HandleMahuaOutput(new Api_GetGroupListApiOut { Result = Api_GetGroupListResult }); case "Api_GetGroupMemberList": var Api_GetGroupMemberListResult = - _qQLightApi.Api_GetGroupMemberList(群号: data["群号"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); + _qQLightApi.Api_GetGroupMemberList(GroupID: data["GroupID"].ToString(), Cache: Convert.ToBoolean(data["Cache"]), AuthCode: _qqLightAuthCodeContainer.AuthCode); return _mahuaCenter.HandleMahuaOutput(new Api_GetGroupMemberListApiOut { Result = Api_GetGroupMemberListResult }); case "Api_GetQQInfo": var Api_GetQQInfoResult = - _qQLightApi.Api_GetQQInfo(QQ号: data["QQ号"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); + _qQLightApi.Api_GetQQInfo(QQID: data["QQID"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); return _mahuaCenter.HandleMahuaOutput(new Api_GetQQInfoApiOut { Result = Api_GetQQInfoResult }); case "Api_GetGroupInfo": var Api_GetGroupInfoResult = - _qQLightApi.Api_GetGroupInfo(群号: data["群号"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); + _qQLightApi.Api_GetGroupInfo(GroupID: data["GroupID"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); return _mahuaCenter.HandleMahuaOutput(new Api_GetGroupInfoApiOut { Result = Api_GetGroupInfoResult }); - case "Api_Restart": - var Api_RestartResult = - _qQLightApi.Api_Restart(AuthCode: _qqLightAuthCodeContainer.AuthCode); - return _mahuaCenter.HandleMahuaOutput(new Api_RestartApiOut - { Result = Api_RestartResult }); - case "Api_UpdatePlugin": - var Api_UpdatePluginResult = - _qQLightApi.Api_UpdatePlugin(AuthCode: _qqLightAuthCodeContainer.AuthCode); - return _mahuaCenter.HandleMahuaOutput(new Api_UpdatePluginApiOut - { Result = Api_UpdatePluginResult }); case "Api_DeleteMsg": - var Api_DeleteMsgResult = - _qQLightApi.Api_DeleteMsg(群号: data["群号"].ToString(), 消息ID: data["消息ID"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); - return _mahuaCenter.HandleMahuaOutput(new Api_DeleteMsgApiOut - { Result = Api_DeleteMsgResult }); + _qQLightApi.Api_DeleteMsg(Type: Convert.ToInt32(data["Type"]), GroupID: data["GroupID"].ToString(), QQID: data["QQID"].ToString(), MsgID: data["MsgID"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); + return Task.CompletedTask; case "Api_SetQQState": - var Api_SetQQStateResult = - _qQLightApi.Api_SetQQState(类型: Convert.ToInt32(data["类型"]), AuthCode: _qqLightAuthCodeContainer.AuthCode); - return _mahuaCenter.HandleMahuaOutput(new Api_SetQQStateApiOut - { Result = Api_SetQQStateResult }); + _qQLightApi.Api_SetQQState(Type: Convert.ToInt32(data["Type"]), AuthCode: _qqLightAuthCodeContainer.AuthCode); + return Task.CompletedTask; case "Api_InviteFriend": - _qQLightApi.Api_InviteFriend(群号: data["群号"].ToString(), 好友QQ: data["好友QQ"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); + _qQLightApi.Api_InviteFriend(GroupID: data["GroupID"].ToString(), QQID: data["QQID"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); + return Task.CompletedTask; + case "Api_GetQQInfo_v2": + var Api_GetQQInfo_v2Result = + _qQLightApi.Api_GetQQInfo_v2(QQID: data["QQID"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); + return _mahuaCenter.HandleMahuaOutput(new Api_GetQQInfo_v2ApiOut + { Result = Api_GetQQInfo_v2Result }); + case "CoUninitialize": + _qQLightApi.CoUninitialize(); + return Task.CompletedTask; + case "CoInitialize": + _qQLightApi.CoInitialize(pvReserved: Convert.ToInt32(data["pvReserved"])); return Task.CompletedTask; - case "Api_GetQQinfo_v2": - var Api_GetQQinfo_v2Result = - _qQLightApi.Api_GetQQinfo_v2(QQ号: data["QQ号"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); - return _mahuaCenter.HandleMahuaOutput(new Api_GetQQinfo_v2ApiOut - { Result = Api_GetQQinfo_v2Result }); case "Api_UpLoadPic": var Api_UpLoadPicResult = - _qQLightApi.Api_UpLoadPic(类型: Convert.ToInt32(data["类型"]), 对象: data["对象"].ToString(), 图片字节集: data["图片字节集"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); + _qQLightApi.Api_UpLoadPic(Type: Convert.ToInt32(data["Type"]), 对象: data["对象"].ToString(), Bin: data["Bin"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); return _mahuaCenter.HandleMahuaOutput(new Api_UpLoadPicApiOut { Result = Api_UpLoadPicResult }); + case "Api_SetPluginState": + var Api_SetPluginStateResult = + _qQLightApi.Api_SetPluginState(State: Convert.ToBoolean(data["State"]), AuthCode: _qqLightAuthCodeContainer.AuthCode); + return _mahuaCenter.HandleMahuaOutput(new Api_SetPluginStateApiOut + { Result = Api_SetPluginStateResult }); + case "Api_DeleteFile": + _qQLightApi.Api_DeleteFile(群号: data["群号"].ToString(), 文件GUID: data["文件GUID"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); + return Task.CompletedTask; + case "Api_RepeatFile": + _qQLightApi.Api_RepeatFile(来源对象: data["来源对象"].ToString(), 转发群号: data["转发群号"].ToString(), 文件GUID: data["文件GUID"].ToString(), AuthCode: _qqLightAuthCodeContainer.AuthCode); + return Task.CompletedTask; + case "Api_ClearOffLineFile": + _qQLightApi.Api_ClearOffLineFile(AuthCode: _qqLightAuthCodeContainer.AuthCode); + return Task.CompletedTask; + case "WideCharToMultiByte": + var WideCharToMultiByteResult = + _qQLightApi.WideCharToMultiByte(CodePage: Convert.ToInt32(data["CodePage"]), dwFlags: Convert.ToInt32(data["dwFlags"]), lpWideCharStr: Convert.FromBase64String(data["lpWideCharStr"].ToString()), cchWideChar: Convert.ToInt32(data["cchWideChar"]), lpMultiByteStr: data["lpMultiByteStr"].ToString(), cchMultiByte: Convert.ToInt32(data["cchMultiByte"]), lpDefaultChar: Convert.ToInt32(data["lpDefaultChar"]), lpUsedDefaultChar: Convert.ToInt32(data["lpUsedDefaultChar"])); + return _mahuaCenter.HandleMahuaOutput(new WideCharToMultiByteApiOut + { Result = WideCharToMultiByteResult }); default: throw new ArgumentOutOfRangeException(nameof(typeCode)); @@ -230,6 +294,14 @@ public class Api_GetbknApiOut : QQLightApiOutput public override string TypeCode => nameof(Api_GetbknApiOut); } /// + /// api out of method Api_Getbkn_Long + /// + public class Api_Getbkn_LongApiOut : QQLightApiOutput + { + public string Result { get; set; } + public override string TypeCode => nameof(Api_Getbkn_LongApiOut); + } + /// /// api out of method Api_GetCookies /// public class Api_GetCookiesApiOut : QQLightApiOutput @@ -238,28 +310,36 @@ public class Api_GetCookiesApiOut : QQLightApiOutput public override string TypeCode => nameof(Api_GetCookiesApiOut); } /// - /// api out of method Api_GetClientKey + /// api out of method Api_GetQzoneToken /// - public class Api_GetClientKeyApiOut : QQLightApiOutput + public class Api_GetQzoneTokenApiOut : QQLightApiOutput { public string Result { get; set; } - public override string TypeCode => nameof(Api_GetClientKeyApiOut); + public override string TypeCode => nameof(Api_GetQzoneTokenApiOut); } /// - /// api out of method Api_GetLoginQQ + /// api out of method Api_GetQzoneCookies /// - public class Api_GetLoginQQApiOut : QQLightApiOutput + public class Api_GetQzoneCookiesApiOut : QQLightApiOutput { public string Result { get; set; } - public override string TypeCode => nameof(Api_GetLoginQQApiOut); + public override string TypeCode => nameof(Api_GetQzoneCookiesApiOut); + } + /// + /// api out of method Api_SendTaotao + /// + public class Api_SendTaotaoApiOut : QQLightApiOutput + { + public string Result { get; set; } + public override string TypeCode => nameof(Api_SendTaotaoApiOut); } /// - /// api out of method Api_GetPluginState + /// api out of method Api_GetLoginQQ /// - public class Api_GetPluginStateApiOut : QQLightApiOutput + public class Api_GetLoginQQApiOut : QQLightApiOutput { - public bool Result { get; set; } - public override string TypeCode => nameof(Api_GetPluginStateApiOut); + public string Result { get; set; } + public override string TypeCode => nameof(Api_GetLoginQQApiOut); } /// /// api out of method Api_GetPath @@ -270,20 +350,20 @@ public class Api_GetPathApiOut : QQLightApiOutput public override string TypeCode => nameof(Api_GetPathApiOut); } /// - /// api out of method Api_163Music + /// api out of method Api_Error /// - public class Api_163MusicApiOut : QQLightApiOutput + public class Api_ErrorApiOut : QQLightApiOutput { public string Result { get; set; } - public override string TypeCode => nameof(Api_163MusicApiOut); + public override string TypeCode => nameof(Api_ErrorApiOut); } /// - /// api out of method Api_QQMusic + /// api out of method Api_SendMsg /// - public class Api_QQMusicApiOut : QQLightApiOutput + public class Api_SendMsgApiOut : QQLightApiOutput { public string Result { get; set; } - public override string TypeCode => nameof(Api_QQMusicApiOut); + public override string TypeCode => nameof(Api_SendMsgApiOut); } /// /// api out of method Api_JsonMusic @@ -294,14 +374,6 @@ public class Api_JsonMusicApiOut : QQLightApiOutput public override string TypeCode => nameof(Api_JsonMusicApiOut); } /// - /// api out of method Api_Error - /// - public class Api_ErrorApiOut : QQLightApiOutput - { - public string Result { get; set; } - public override string TypeCode => nameof(Api_ErrorApiOut); - } - /// /// api out of method Api_GetGroupCard /// public class Api_GetGroupCardApiOut : QQLightApiOutput @@ -318,6 +390,38 @@ public class Api_GetNickApiOut : QQLightApiOutput public override string TypeCode => nameof(Api_GetNickApiOut); } /// + /// api out of method Api_GetGroupName + /// + public class Api_GetGroupNameApiOut : QQLightApiOutput + { + public string Result { get; set; } + public override string TypeCode => nameof(Api_GetGroupNameApiOut); + } + /// + /// api out of method Api_GetSoftVersion + /// + public class Api_GetSoftVersionApiOut : QQLightApiOutput + { + public string Result { get; set; } + public override string TypeCode => nameof(Api_GetSoftVersionApiOut); + } + /// + /// api out of method Api_GetGroupIntroduce + /// + public class Api_GetGroupIntroduceApiOut : QQLightApiOutput + { + public string Result { get; set; } + public override string TypeCode => nameof(Api_GetGroupIntroduceApiOut); + } + /// + /// api out of method Api_GetGroupOwner + /// + public class Api_GetGroupOwnerApiOut : QQLightApiOutput + { + public string Result { get; set; } + public override string TypeCode => nameof(Api_GetGroupOwnerApiOut); + } + /// /// api out of method Api_GetPraiseNum /// public class Api_GetPraiseNumApiOut : QQLightApiOutput @@ -326,6 +430,46 @@ public class Api_GetPraiseNumApiOut : QQLightApiOutput public override string TypeCode => nameof(Api_GetPraiseNumApiOut); } /// + /// api out of method Api_GetQQLevel + /// + public class Api_GetQQLevelApiOut : QQLightApiOutput + { + public int Result { get; set; } + public override string TypeCode => nameof(Api_GetQQLevelApiOut); + } + /// + /// api out of method Api_Taotaodolike + /// + public class Api_TaotaodolikeApiOut : QQLightApiOutput + { + public string Result { get; set; } + public override string TypeCode => nameof(Api_TaotaodolikeApiOut); + } + /// + /// api out of method Api_Taotaofeeds + /// + public class Api_TaotaofeedsApiOut : QQLightApiOutput + { + public string Result { get; set; } + public override string TypeCode => nameof(Api_TaotaofeedsApiOut); + } + /// + /// api out of method Api_GetQQAge + /// + public class Api_GetQQAgeApiOut : QQLightApiOutput + { + public int Result { get; set; } + public override string TypeCode => nameof(Api_GetQQAgeApiOut); + } + /// + /// api out of method Api_GetQQSex + /// + public class Api_GetQQSexApiOut : QQLightApiOutput + { + public int Result { get; set; } + public override string TypeCode => nameof(Api_GetQQSexApiOut); + } + /// /// api out of method Api_GetFriendList /// public class Api_GetFriendListApiOut : QQLightApiOutput @@ -366,51 +510,35 @@ public class Api_GetGroupInfoApiOut : QQLightApiOutput public override string TypeCode => nameof(Api_GetGroupInfoApiOut); } /// - /// api out of method Api_Restart + /// api out of method Api_GetQQInfo_v2 /// - public class Api_RestartApiOut : QQLightApiOutput + public class Api_GetQQInfo_v2ApiOut : QQLightApiOutput { public string Result { get; set; } - public override string TypeCode => nameof(Api_RestartApiOut); + public override string TypeCode => nameof(Api_GetQQInfo_v2ApiOut); } /// - /// api out of method Api_UpdatePlugin - /// - public class Api_UpdatePluginApiOut : QQLightApiOutput - { - public string Result { get; set; } - public override string TypeCode => nameof(Api_UpdatePluginApiOut); - } - /// - /// api out of method Api_DeleteMsg - /// - public class Api_DeleteMsgApiOut : QQLightApiOutput - { - public string Result { get; set; } - public override string TypeCode => nameof(Api_DeleteMsgApiOut); - } - /// - /// api out of method Api_SetQQState + /// api out of method Api_UpLoadPic /// - public class Api_SetQQStateApiOut : QQLightApiOutput + public class Api_UpLoadPicApiOut : QQLightApiOutput { public string Result { get; set; } - public override string TypeCode => nameof(Api_SetQQStateApiOut); + public override string TypeCode => nameof(Api_UpLoadPicApiOut); } /// - /// api out of method Api_GetQQinfo_v2 + /// api out of method Api_SetPluginState /// - public class Api_GetQQinfo_v2ApiOut : QQLightApiOutput + public class Api_SetPluginStateApiOut : QQLightApiOutput { public string Result { get; set; } - public override string TypeCode => nameof(Api_GetQQinfo_v2ApiOut); + public override string TypeCode => nameof(Api_SetPluginStateApiOut); } /// - /// api out of method Api_UpLoadPic + /// api out of method WideCharToMultiByte /// - public class Api_UpLoadPicApiOut : QQLightApiOutput + public class WideCharToMultiByteApiOut : QQLightApiOutput { - public string Result { get; set; } - public override string TypeCode => nameof(Api_UpLoadPicApiOut); + public int Result { get; set; } + public override string TypeCode => nameof(WideCharToMultiByteApiOut); } } diff --git a/src/Newbe.Mahua/MahuaPlatform.cs b/src/Newbe.Mahua/MahuaPlatform.cs index 1a98fc1..f868d38 100644 --- a/src/Newbe.Mahua/MahuaPlatform.cs +++ b/src/Newbe.Mahua/MahuaPlatform.cs @@ -20,19 +20,16 @@ public enum MahuaPlatform /// /// Amanda /// - [Obsolete("已经不再支持该平台")] - Amanda, + [Obsolete("已经不再支持该平台")] Amanda, /// /// CleverQQ /// - [Obsolete("已经不再支持该平台")] - CleverQQ, + [Obsolete("已经不再支持该平台")] CleverQQ, /// /// QqLight /// QQLight, - } -} +} \ No newline at end of file diff --git a/src/Newbe.Mahua/NativeApi/ICqpApi.cs b/src/Newbe.Mahua/NativeApi/ICqpApi.cs index fc476ac..18dbd7e 100644 --- a/src/Newbe.Mahua/NativeApi/ICqpApi.cs +++ b/src/Newbe.Mahua/NativeApi/ICqpApi.cs @@ -2,22 +2,22 @@ namespace Newbe.Mahua.NativeApi { - // generate at 2019/1/6 3:33:46 +00:00 + // generate at 2019/12/15 12:07:28 +00:00 public interface ICqpApi { /// - /// 发送好友消息 + /// 发送好友消息 /// /// - /// 目标QQ + /// 目标帐号 /// 消息内容 /// [Description("发送好友消息")] - int CQ_sendPrivateMsg([Description("")] int AuthCode, [Description("目标QQ")] long QQID, + int CQ_sendPrivateMsg([Description("")] int AuthCode, [Description("目标帐号")] long Account, [Description("消息内容")] string msg); /// - /// 发送群消息 + /// 发送群消息 /// /// /// 目标群 @@ -28,7 +28,7 @@ int CQ_sendGroupMsg([Description("")] int AuthCode, [Description("目标群")] l [Description("消息内容")] string msg); /// - /// 发送讨论组消息 + /// 发送讨论组消息 /// /// /// 目标讨论组 @@ -39,7 +39,7 @@ int CQ_sendDiscussMsg([Description("")] int AuthCode, [Description("目标讨论 [Description("消息内容")] string msg); /// - /// 撤回消息 + /// 撤回消息 /// /// /// 消息ID @@ -48,37 +48,75 @@ int CQ_sendDiscussMsg([Description("")] int AuthCode, [Description("目标讨论 int CQ_deleteMsg([Description("")] int AuthCode, [Description("消息ID")] long MsgId); /// - /// 发送赞 + /// 发送赞 /// /// - /// 目标QQ + /// 目标帐号 /// 赞的次数,最多10次 /// [Description("发送赞")] - int CQ_sendLikeV2([Description("")] int AuthCode, [Description("目标QQ")] long QQID, + int CQ_sendLikeV2([Description("")] int AuthCode, [Description("目标帐号")] long Account, [Description("赞的次数,最多10次")] int times); /// - /// 取Cookies(慎用 + /// 取Cookies(慎用 /// /// + /// 目标域名,如 api.example.com /// [Description("取Cookies(慎用")] - string CQ_getCookies([Description("")] int AuthCode); + string CQ_getCookiesV2([Description("")] int AuthCode, [Description("目标域名,如 api.example.com")] + string domain); /// - /// 接收语音 + /// 【已弃用】接收语音,并返回语音文件相对路径 /// /// /// 收到消息中的语音文件名(file) /// 应用所需的格式 /// - [Description("接收语音")] + [Description("【已弃用】接收语音,并返回语音文件相对路径")] string CQ_getRecord([Description("")] int AuthCode, [Description("收到消息中的语音文件名(file)")] string file, [Description("应用所需的格式")] string outformat); /// - /// 取CsrfToken(慎用 + /// 接收语音,并返回语音文件绝对路径 + /// + /// + /// 收到消息中的语音文件名(file) + /// 应用所需的格式 + /// + [Description("接收语音,并返回语音文件绝对路径")] + string CQ_getRecordV2([Description("")] int AuthCode, [Description("收到消息中的语音文件名(file)")] string file, + [Description("应用所需的格式")] string outformat); + + /// + /// 接收图片,并返回图片文件绝对路径 + /// + /// + /// 收到消息中的图片文件名(file) + /// + [Description("接收图片,并返回图片文件绝对路径")] + string CQ_getImage([Description("")] int AuthCode, [Description("收到消息中的图片文件名(file)")] string file); + + /// + /// 是否支持发送图片,返回大于 0 为支持,等于 0 为不支持 + /// + /// + /// + [Description("是否支持发送图片,返回大于 0 为支持,等于 0 为不支持")] + int CQ_canSendImage([Description("")] int AuthCode); + + /// + /// 是否支持发送语音,返回大于 0 为支持,等于 0 为不支持 + /// + /// + /// + [Description("是否支持发送语音,返回大于 0 为支持,等于 0 为不支持")] + int CQ_canSendRecord([Description("")] int AuthCode); + + /// + /// 取CsrfToken(慎用 /// /// /// @@ -86,7 +124,7 @@ string CQ_getRecord([Description("")] int AuthCode, [Description("收到消息 int CQ_getCsrfToken([Description("")] int AuthCode); /// - /// 取应用目录 + /// 取应用目录 /// /// /// @@ -94,15 +132,15 @@ string CQ_getRecord([Description("")] int AuthCode, [Description("收到消息 string CQ_getAppDirectory([Description("")] int AuthCode); /// - /// 取登录QQ + /// 取登录帐号 /// /// /// - [Description("取登录QQ")] + [Description("取登录帐号")] long CQ_getLoginQQ([Description("")] int AuthCode); /// - /// 取登录昵称 + /// 取登录昵称 /// /// /// @@ -110,60 +148,60 @@ string CQ_getRecord([Description("")] int AuthCode, [Description("收到消息 string CQ_getLoginNick([Description("")] int AuthCode); /// - /// 置群员移除 + /// 置群员移除 /// /// /// 目标群 - /// 目标QQ + /// 目标帐号 /// 如果为真,则“不再接收此人加群申请”,请慎用 /// [Description("置群员移除")] int CQ_setGroupKick([Description("")] int AuthCode, [Description("目标群")] long 群号, - [Description("目标QQ")] long QQID, [Description("如果为真,则“不再接收此人加群申请”,请慎用")] + [Description("目标帐号")] long Account, [Description("如果为真,则“不再接收此人加群申请”,请慎用")] bool 拒绝再加群); /// - /// 置群员禁言 + /// 置群员禁言 /// /// /// 目标群 - /// 目标QQ + /// 目标帐号 /// 禁言的时间,单位为秒。如果要解禁,这里填写0 /// [Description("置群员禁言")] int CQ_setGroupBan([Description("")] int AuthCode, [Description("目标群")] long 群号, - [Description("目标QQ")] long QQID, [Description("禁言的时间,单位为秒。如果要解禁,这里填写0")] + [Description("目标帐号")] long Account, [Description("禁言的时间,单位为秒。如果要解禁,这里填写0")] long 禁言时间); /// - /// 置群管理员 + /// 置群管理员 /// /// /// 目标群 - /// 被设置的QQ + /// 被设置的帐号 /// 真/设置管理员 假/取消管理员 /// [Description("置群管理员")] int CQ_setGroupAdmin([Description("")] int AuthCode, [Description("目标群")] long 群号, - [Description("被设置的QQ")] long QQID, [Description("真/设置管理员 假/取消管理员")] bool 成为管理员); + [Description("被设置的帐号")] long Account, [Description("真/设置管理员 假/取消管理员")] bool 成为管理员); /// - /// 置群成员专属头衔 + /// 置群成员专属头衔 /// /// /// 目标群 - /// 目标QQ + /// 目标帐号 /// 如果要删除,这里填空 /// 专属头衔有效期,单位为秒。如果永久有效,这里填写-1 /// [Description("置群成员专属头衔")] int CQ_setGroupSpecialTitle([Description("")] int AuthCode, [Description("目标群")] long 群号, - [Description("目标QQ")] long QQID, [Description("如果要删除,这里填空")] string 头衔, + [Description("目标帐号")] long Account, [Description("如果要删除,这里填空")] string 头衔, [Description("专属头衔有效期,单位为秒。如果永久有效,这里填写-1")] long 过期时间); /// - /// 置全群禁言 + /// 置全群禁言 /// /// /// 目标群 @@ -174,7 +212,7 @@ int CQ_setGroupWholeBan([Description("")] int AuthCode, [Description("目标群" [Description("真/开启 假/关闭")] bool 开启禁言); /// - /// 置匿名群员禁言 + /// 置匿名群员禁言 /// /// /// 目标群 @@ -186,7 +224,7 @@ int CQ_setGroupAnonymousBan([Description("")] int AuthCode, [Description("目标 [Description("群消息事件收到的“匿名”参数")] string 匿名, [Description("禁言的时间,单位为秒。不支持解禁")] long 禁言时间); /// - /// 置群匿名设置 + /// 置群匿名设置 /// /// /// @@ -197,19 +235,19 @@ int CQ_setGroupAnonymous([Description("")] int AuthCode, [Description("")] long [Description("")] bool 开启匿名); /// - /// 置群成员名片 + /// 置群成员名片 /// /// /// 目标群 - /// 被设置的QQ + /// 被设置的帐号 /// /// [Description("置群成员名片")] int CQ_setGroupCard([Description("")] int AuthCode, [Description("目标群")] long 群号, - [Description("被设置的QQ")] long QQID, [Description("")] string 新名片_昵称); + [Description("被设置的帐号")] long Account, [Description("")] string 新名片_昵称); /// - /// 置群退出 + /// 置群退出 /// /// /// 目标群 @@ -221,7 +259,7 @@ int CQ_setGroupLeave([Description("")] int AuthCode, [Description("目标群")] bool 是否解散); /// - /// 置讨论组退出 + /// 置讨论组退出 /// /// /// 目标讨论组 @@ -230,7 +268,7 @@ int CQ_setGroupLeave([Description("")] int AuthCode, [Description("目标群")] int CQ_setDiscussLeave([Description("")] int AuthCode, [Description("目标讨论组")] long 讨论组号); /// - /// 置好友添加请求 + /// 置好友添加请求 /// /// /// 请求事件收到的“反馈标识”参数 @@ -242,7 +280,7 @@ int CQ_setFriendAddRequest([Description("")] int AuthCode, [Description("请求 [Description("#请求_通过 或 #请求_拒绝")] int 反馈类型, [Description("添加后的好友备注")] string 备注); /// - /// 置群添加请求 + /// 置群添加请求 /// /// /// 请求事件收到的“反馈标识”参数 @@ -257,7 +295,7 @@ int CQ_setGroupAddRequestV2([Description("")] int AuthCode, [Description("请求 string 理由); /// - /// 增加运行日志 + /// 增加运行日志 /// /// /// #Log_ 开头常量 @@ -269,7 +307,7 @@ int CQ_addLog([Description("")] int AuthCode, [Description("#Log_ 开头常量") [Description("")] string 内容); /// - /// 置致命错误提示 + /// 置致命错误提示 /// /// /// @@ -278,28 +316,28 @@ int CQ_addLog([Description("")] int AuthCode, [Description("#Log_ 开头常量") int CQ_setFatal([Description("")] int AuthCode, [Description("")] string 错误信息); /// - /// 取群成员信息(支持缓存) + /// 取群成员信息(支持缓存) /// /// - /// 目标QQ所在群 - /// 目标QQ + /// 目标帐号所在群 + /// 目标帐号 /// /// [Description("取群成员信息(支持缓存)")] - string CQ_getGroupMemberInfoV2([Description("")] int AuthCode, [Description("目标QQ所在群")] long 群号, - [Description("目标QQ")] long QQID, [Description("")] bool 不使用缓存); + string CQ_getGroupMemberInfoV2([Description("")] int AuthCode, [Description("目标帐号所在群")] long 群号, + [Description("目标帐号")] long Account, [Description("")] bool 不使用缓存); /// - /// 取群成员列表 + /// 取群成员列表 /// /// - /// 目标QQ所在群 + /// 目标帐号所在群 /// [Description("取群成员列表")] - string CQ_getGroupMemberList([Description("")] int AuthCode, [Description("目标QQ所在群")] long 群号); + string CQ_getGroupMemberList([Description("")] int AuthCode, [Description("目标帐号所在群")] long 群号); /// - /// 取群列表 + /// 取群列表 /// /// /// @@ -307,14 +345,66 @@ string CQ_getGroupMemberInfoV2([Description("")] int AuthCode, [Description("目 string CQ_getGroupList([Description("")] int AuthCode); /// - /// 取陌生人信息(支持缓存) + /// 取好友列表 + /// + /// + /// 保留参数,请传入“假” + /// + [Description("取好友列表")] + string CQ_getFriendList([Description("")] int AuthCode, [Description("保留参数,请传入“假”")] bool reserved); + + /// + /// 取陌生人信息(支持缓存) /// /// - /// 目标QQ + /// 目标帐号 /// /// [Description("取陌生人信息(支持缓存)")] - string CQ_getStrangerInfo([Description("")] int AuthCode, [Description("目标QQ")] long QQID, + string CQ_getStrangerInfo([Description("")] int AuthCode, [Description("目标帐号")] long Account, + [Description("")] bool 不使用缓存); + + /// + /// 取群信息(支持缓存) + /// + /// + /// 目标群 + /// + /// + [Description("取群信息(支持缓存)")] + string CQ_getGroupInfo([Description("")] int AuthCode, [Description("目标群")] long 群号, [Description("")] bool 不使用缓存); + + /// + /// + /// + /// 址 + /// 址 + /// + /// + /// 址 + /// 0 + /// 0 + /// + [Description("")] + bool CryptStringToBinaryA([Description("址")] string pszString, [Description("址")] int cchString, + [Description("")] int dwFlags, [Description("")] int pbBinary, [Description("址")] int pcbBinary, + [Description("0")] int pdwSkip, [Description("0")] int pdwFlags); + + /// + /// + /// + /// 址 + /// 址 + /// + /// 址 + /// 址 + /// 0 + /// 0 + /// + [Description("")] + bool CryptStringToBinaryA([Description("址")] string pszString, [Description("址")] int cchString, + [Description("")] int dwFlags, [Description("址")] byte[] pbBinary, [Description("址")] int pcbBinary, + [Description("0")] int pdwSkip, [Description("0")] int pdwFlags); } } \ No newline at end of file diff --git a/src/Newbe.Mahua/NativeApi/IMpqApi.cs b/src/Newbe.Mahua/NativeApi/IMpqApi.cs index c830301..3f48ca2 100644 --- a/src/Newbe.Mahua/NativeApi/IMpqApi.cs +++ b/src/Newbe.Mahua/NativeApi/IMpqApi.cs @@ -2,11 +2,11 @@ namespace Newbe.Mahua.NativeApi { - // generate at 2019/1/22 13:16:20 +00:00 + // generate at 2019/12/15 9:16:11 +00:00 public interface IMpqApi { /// - /// 根据提交的QQ号计算得到页面操作用参数Bkn或G_tk` + /// 根据提交的QQ号计算得到页面操作用参数Bkn或G_tk` /// /// /// @@ -14,7 +14,7 @@ public interface IMpqApi string Api_GetGtk_Bkn([Description("")] string 响应的QQ); /// - /// 根据提交的QQ号计算得到页面操作用参数长Bkn或长G_tk` + /// 根据提交的QQ号计算得到页面操作用参数长Bkn或长G_tk` /// /// /// @@ -22,7 +22,7 @@ public interface IMpqApi string Api_GetBkn32([Description("")] string 响应的QQ); /// - /// 根据提交的QQ号计算得到页面操作用参数长Ldw` + /// 根据提交的QQ号计算得到页面操作用参数长Ldw` /// /// /// @@ -30,28 +30,28 @@ public interface IMpqApi string Api_GetLdw([Description("")] string 响应的QQ); /// - /// 取得框架所在目录.可能鸡肋了。` + /// 取得框架所在目录.可能鸡肋了。` /// /// [Description("取得框架所在目录.可能鸡肋了。`")] string Api_GetRunPath(); /// - /// 取得当前框架内在线可用的QQ列表` + /// 取得当前框架内在线可用的QQ列表` /// /// [Description("取得当前框架内在线可用的QQ列表`")] string Api_GetOnlineQQlist(); /// - /// 取得框架内所有QQ列表。包括未登录以及登录失败的QQ` + /// 取得框架内所有QQ列表。包括未登录以及登录失败的QQ` /// /// [Description("取得框架内所有QQ列表。包括未登录以及登录失败的QQ`")] string Api_GetQQlist(); /// - /// 根据QQ取得对应的会话秘钥` + /// 根据QQ取得对应的会话秘钥` /// /// /// @@ -59,7 +59,7 @@ public interface IMpqApi string Api_GetSessionkey([Description("")] string 响应的QQ); /// - /// 取得页面登录用的Clientkey` + /// 取得页面登录用的Clientkey` /// /// /// @@ -67,7 +67,7 @@ public interface IMpqApi string Api_GetClientkey([Description("")] string 响应的QQ); /// - /// 取得页面登录用的长Clientkey` + /// 取得页面登录用的长Clientkey` /// /// /// @@ -75,7 +75,7 @@ public interface IMpqApi string Api_GetLongClientkey([Description("")] string 响应的QQ); /// - /// 取得页面操作用的Cookies` + /// 取得页面操作用的Cookies` /// /// /// @@ -83,14 +83,14 @@ public interface IMpqApi string Api_GetCookies([Description("")] string 响应的QQ); /// - /// 取得框架内设置的信息发送前缀` + /// 取得框架内设置的信息发送前缀` /// /// [Description("取得框架内设置的信息发送前缀`")] string Api_GetPrefix(); /// - /// 将群名片加入高速缓存当作.` + /// 将群名片加入高速缓存当作.` /// /// /// @@ -100,7 +100,7 @@ public interface IMpqApi void Api_Cache_NameCard([Description("")] string 群号, [Description("")] string QQ, [Description("")] string 名片); /// - /// 将指定QQ移出QQ黑名单` + /// 将指定QQ移出QQ黑名单` /// /// /// @@ -109,7 +109,7 @@ public interface IMpqApi void Api_DBan([Description("")] string 响应的QQ, [Description("")] string QQ); /// - /// 将指定QQ列入QQ黑名单` + /// 将指定QQ列入QQ黑名单` /// /// /// @@ -118,7 +118,7 @@ public interface IMpqApi void Api_Ban([Description("")] string 响应的QQ, [Description("")] string QQ); /// - /// 禁言群成员` + /// 禁言群成员` /// /// /// 禁言对象所在群. @@ -131,7 +131,18 @@ bool Api_Shutup([Description("")] string 响应的QQ, [Description("禁言对象 int 时长); /// - /// 发群公告` + /// 根据群号+QQ判断指定群员是否被禁言 获取失败的情况下亦会返回假 + /// + /// + /// 欲判断对象所在群. + /// 欲判断对象 + /// + [Description("根据群号+QQ判断指定群员是否被禁言 获取失败的情况下亦会返回假")] + bool Api_IsShutup([Description("")] string 响应的QQ, [Description("欲判断对象所在群.")] string 群号, + [Description("欲判断对象")] string QQ); + + /// + /// 发群公告` /// /// /// @@ -143,7 +154,7 @@ void Api_SetNotice([Description("")] string 响应的QQ, [Description("")] strin [Description("")] string 内容); /// - /// 取群公告` + /// 取群公告` /// /// /// @@ -152,7 +163,7 @@ void Api_SetNotice([Description("")] string 响应的QQ, [Description("")] strin string Api_GetNotice([Description("")] string 响应的QQ, [Description("")] string 群号); /// - /// 取群名片` + /// 取群名片` /// /// /// @@ -163,7 +174,7 @@ string Api_GetNameCard([Description("")] string 响应的QQ, [Description("")] s [Description("")] string QQ); /// - /// 设置群名片` + /// 设置群名片` /// /// /// @@ -175,7 +186,7 @@ void Api_SetNameCard([Description("")] string 响应的QQ, [Description("")] str [Description("")] string 名片); /// - /// 退出讨论组` + /// 退出讨论组` /// /// /// @@ -184,7 +195,7 @@ void Api_SetNameCard([Description("")] string 响应的QQ, [Description("")] str void Api_QuitDG([Description("")] string 响应的QQ, [Description("")] string 讨论组ID); /// - /// 删除好友` + /// 删除好友` /// /// /// @@ -193,7 +204,7 @@ void Api_SetNameCard([Description("")] string 响应的QQ, [Description("")] str bool Api_DelFriend([Description("")] string 响应的QQ, [Description("")] string QQ); /// - /// 将对象移除群` + /// 将对象移除群` /// /// /// @@ -203,7 +214,7 @@ void Api_SetNameCard([Description("")] string 响应的QQ, [Description("")] str bool Api_Kick([Description("")] string 响应的QQ, [Description("")] string 群号, [Description("")] string 对象); /// - /// 主动加群.为了避免广告、群发行为。出现验证码时将会直接失败不处理` + /// 主动加群.为了避免广告、群发行为。出现验证码时将会直接失败不处理` /// /// /// @@ -213,7 +224,7 @@ void Api_SetNameCard([Description("")] string 响应的QQ, [Description("")] str void Api_JoinGroup([Description("")] string 响应的QQ, [Description("")] string 群号, [Description("")] string 附加理由); /// - /// 退出群` + /// 退出群` /// /// /// @@ -222,7 +233,7 @@ void Api_SetNameCard([Description("")] string 响应的QQ, [Description("")] str void Api_QuitGroup([Description("")] string 响应的QQ, [Description("")] string 群号); /// - /// 返回值:成功返回图片GUID用于发送该图片.失败返回空. 图片尺寸应小于4MB` + /// 返回值:成功返回图片GUID用于发送该图片.失败返回空. 图片尺寸应小于4MB` /// /// 机器人QQ /// 1好友2群 注:好友图和群图的GUID并不相同并不通用 需要非别上传。群、讨论组用类型2 临时会话、好友信息需要类型1 @@ -236,7 +247,7 @@ string Api_UploadPic([Description("机器人QQ")] string 响应的QQ, [Description("址, 图片字节集数据或字节集数据指针()")] byte[] 参_图片数据); /// - /// 根据图片GUID取得图片下载连接 失败返回空` + /// 根据图片GUID取得图片下载连接 失败返回空` /// /// {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}.jpg这样的GUID /// @@ -245,7 +256,7 @@ string Api_GuidGetPicLink([Description("{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}.j string 图片GUID); /// - /// 回复信息 请尽量避免使用该API` + /// 回复信息 请尽量避免使用该API` /// /// /// 1好友 2群 3讨论组 4群临时会话 5讨论组临时会话 @@ -257,7 +268,7 @@ int Api_Reply([Description("")] string 响应的QQ, [Description("1好友 2群 3 int 信息类型, [Description("接收这条信息的对象")] string 回复对象, [Description("信息内容")] string 内容); /// - /// 向对象、目标发送信息 支持好友 群 讨论组 群临时会话 讨论组临时会话` + /// 向对象、目标发送信息 支持好友 群 讨论组 群临时会话 讨论组临时会话` /// /// /// 1好友 2群 3讨论组 4群临时会话 5讨论组临时会话 @@ -272,7 +283,7 @@ int Api_SendMsg([Description("")] string 响应的QQ, [Description("1好友 2群 string 收信群_讨论组, [Description("最终接收这条信息的对象QQ")] string 收信对象, [Description("信息内容")] string 内容); /// - /// 发送封包` + /// 发送封包` /// /// /// @@ -280,7 +291,7 @@ int Api_SendMsg([Description("")] string 响应的QQ, [Description("1好友 2群 string Api_Send([Description("")] string 封包内容); /// - /// 在框架记录页输出一行信息` + /// 在框架记录页输出一行信息` /// /// 输出的内容 /// @@ -288,14 +299,14 @@ int Api_SendMsg([Description("")] string 响应的QQ, [Description("1好友 2群 int Api_OutPut([Description("输出的内容")] string 内容); /// - /// 取得本插件启用状态` + /// 取得本插件启用状态` /// /// [Description("取得本插件启用状态`")] bool Api_IsEnable(); /// - /// 登录一个现存的QQ` + /// 登录一个现存的QQ` /// /// 欲登录的Q /// @@ -303,7 +314,7 @@ int Api_SendMsg([Description("")] string 响应的QQ, [Description("1好友 2群 bool Api_Login([Description("欲登录的Q")] string QQ); /// - /// 让指定QQ下线` + /// 让指定QQ下线` /// /// /// @@ -311,7 +322,7 @@ int Api_SendMsg([Description("")] string 响应的QQ, [Description("1好友 2群 void Api_Logout([Description("")] string QQ); /// - /// tean加密算法` + /// tean加密算法` /// /// /// @@ -320,7 +331,7 @@ int Api_SendMsg([Description("")] string 响应的QQ, [Description("1好友 2群 string Api_Tea加密([Description("")] string 加密内容, [Description("")] string Key); /// - /// tean解密算法` + /// tean解密算法` /// /// /// @@ -329,7 +340,7 @@ int Api_SendMsg([Description("")] string 响应的QQ, [Description("1好友 2群 string Api_Tea解密([Description("")] string 解密内容, [Description("")] string Key); /// - /// 取用户名` + /// 取用户名` /// /// /// @@ -337,7 +348,7 @@ int Api_SendMsg([Description("")] string 响应的QQ, [Description("1好友 2群 string Api_GetNick([Description("")] string QQ); /// - /// 取QQ等级+QQ会员等级 返回json格式信息` + /// 取QQ等级+QQ会员等级 返回json格式信息` /// /// /// @@ -345,7 +356,7 @@ int Api_SendMsg([Description("")] string 响应的QQ, [Description("1好友 2群 string Api_GetQQLevel([Description("")] string QQ); /// - /// 群号转群ID` + /// 群号转群ID` /// /// /// @@ -353,7 +364,7 @@ int Api_SendMsg([Description("")] string 响应的QQ, [Description("1好友 2群 string Api_GNGetGid([Description("")] string 群号); /// - /// 群ID转群号` + /// 群ID转群号` /// /// /// @@ -361,35 +372,35 @@ int Api_SendMsg([Description("")] string 响应的QQ, [Description("1好友 2群 string Api_GidGetGN([Description("")] string 群ID); /// - /// 取框架版本号(发布时间戳` + /// 取框架版本号(发布时间戳` /// /// [Description("取框架版本号(发布时间戳`")] int Api_GetVersion(); /// - /// 取框架版本名` + /// 取框架版本名` /// /// [Description("取框架版本名`")] string Api_GetVersionName(); /// - /// 取当前框架内部时间戳_周期性与服务器时间同步` + /// 取当前框架内部时间戳_周期性与服务器时间同步` /// /// [Description("取当前框架内部时间戳_周期性与服务器时间同步`")] int Api_GetTimeStamp(); /// - /// 取得框架输出列表内所有信息` + /// 取得框架输出列表内所有信息` /// /// [Description("取得框架输出列表内所有信息`")] string Api_GetLog(); /// - /// 判断是否处于被屏蔽群信息状态。` + /// 判断是否处于被屏蔽群信息状态。` /// /// /// @@ -397,7 +408,7 @@ int Api_SendMsg([Description("")] string 响应的QQ, [Description("1好友 2群 bool Api_IfBlock([Description("")] string 响应的QQ); /// - /// 取包括群主在内的群管列表` + /// 取包括群主在内的群管列表` /// /// /// @@ -406,7 +417,7 @@ int Api_SendMsg([Description("")] string 响应的QQ, [Description("1好友 2群 string Api_GetAdminList([Description("")] string 响应的QQ, [Description("")] string 群号); /// - /// 发说说` + /// 发说说` /// /// /// @@ -415,7 +426,7 @@ int Api_SendMsg([Description("")] string 响应的QQ, [Description("1好友 2群 string Api_AddTaotao([Description("")] string 响应的QQ, [Description("")] string 内容); /// - /// 取个签` + /// 取个签` /// /// /// @@ -424,7 +435,7 @@ int Api_SendMsg([Description("")] string 响应的QQ, [Description("1好友 2群 string Api_GetSign([Description("")] string 响应的QQ, [Description("")] string 对象); /// - /// 设置个签` + /// 设置个签` /// /// /// @@ -433,7 +444,7 @@ int Api_SendMsg([Description("")] string 响应的QQ, [Description("1好友 2群 string Api_SetSign([Description("")] string 响应的QQ, [Description("")] string 内容); /// - /// 通过qun.qzone.qq.com接口取得取群列表.成功返回转码后的JSON格式文本信息` + /// 通过qun.qzone.qq.com接口取得取群列表.成功返回转码后的JSON格式文本信息` /// /// /// @@ -441,7 +452,7 @@ int Api_SendMsg([Description("")] string 响应的QQ, [Description("1好友 2群 string Api_GetGroupListA([Description("")] string 响应的QQ); /// - /// 通过qun.qq.com接口取得取群列表.成功返回转码后的JSON格式文本信息` + /// 通过qun.qq.com接口取得取群列表.成功返回转码后的JSON格式文本信息` /// /// /// @@ -449,7 +460,7 @@ int Api_SendMsg([Description("")] string 响应的QQ, [Description("1好友 2群 string Api_GetGroupListB([Description("")] string 响应的QQ); /// - /// 通过qun.qq.com接口取得群成员列表 成功返回转码后的JSON格式文本` + /// 通过qun.qq.com接口取得群成员列表 成功返回转码后的JSON格式文本` /// /// /// @@ -458,7 +469,7 @@ int Api_SendMsg([Description("")] string 响应的QQ, [Description("1好友 2群 string Api_GetGroupMemberA([Description("")] string 响应的QQ, [Description("")] string 群号); /// - /// 通过qun.qzone.qq.com接口取得群成员列表 成功返回转码后的JSON格式文本` + /// 通过qun.qzone.qq.com接口取得群成员列表 成功返回转码后的JSON格式文本` /// /// /// @@ -467,7 +478,7 @@ int Api_SendMsg([Description("")] string 响应的QQ, [Description("1好友 2群 string Api_GetGroupMemberB([Description("")] string 响应的QQ, [Description("")] string 群号); /// - /// 通过qun.qq.com接口取得好友列表。成功返回转码后的JSON文本` + /// 通过qun.qq.com接口取得好友列表。成功返回转码后的JSON文本` /// /// /// @@ -475,7 +486,7 @@ int Api_SendMsg([Description("")] string 响应的QQ, [Description("1好友 2群 string Api_GetFriendList([Description("")] string 响应的QQ); /// - /// 取Q龄 成功返回Q龄 失败返回-1` + /// 取Q龄 成功返回Q龄 失败返回-1` /// /// /// @@ -484,7 +495,7 @@ int Api_SendMsg([Description("")] string 响应的QQ, [Description("1好友 2群 int Api_GetQQAge([Description("")] string 响应的QQ, [Description("")] string QQ); /// - /// 取年龄 成功返回年龄 失败返回-1` + /// 取年龄 成功返回年龄 失败返回-1` /// /// /// @@ -493,7 +504,7 @@ int Api_SendMsg([Description("")] string 响应的QQ, [Description("1好友 2群 int Api_GetAge([Description("")] string 响应的QQ, [Description("")] string QQ); /// - /// 取个人说明` + /// 取个人说明` /// /// /// 对象QQ @@ -502,7 +513,7 @@ int Api_SendMsg([Description("")] string 响应的QQ, [Description("1好友 2群 string Api_GetPersonalProfile([Description("")] string 响应的QQ, [Description("对象QQ")] string QQ); /// - /// 取邮箱 成功返回邮箱 失败返回空` + /// 取邮箱 成功返回邮箱 失败返回空` /// /// /// @@ -511,7 +522,7 @@ int Api_SendMsg([Description("")] string 响应的QQ, [Description("1好友 2群 string Api_GetEmail([Description("")] string 响应的QQ, [Description("")] string QQ); /// - /// 取对象性别 1男 2女 未或失败返回-1` + /// 取对象性别 1男 2女 未或失败返回-1` /// /// /// @@ -520,7 +531,7 @@ int Api_SendMsg([Description("")] string 响应的QQ, [Description("1好友 2群 int Api_GetGender([Description("")] string 响应的QQ, [Description("")] string QQ); /// - /// 向好友发送‘正在输入’的状态信息.当好友收到信息之后 “正在输入”状态会立刻被打断` + /// 向好友发送‘正在输入’的状态信息.当好友收到信息之后 “正在输入”状态会立刻被打断` /// /// /// @@ -529,7 +540,7 @@ int Api_SendMsg([Description("")] string 响应的QQ, [Description("1好友 2群 int Api_SendTyping([Description("")] string 响应的QQ, [Description("")] string QQ); /// - /// 向好友发送窗口抖动信息` + /// 向好友发送窗口抖动信息` /// /// /// @@ -538,14 +549,14 @@ int Api_SendMsg([Description("")] string 响应的QQ, [Description("1好友 2群 int Api_SendShake([Description("")] string 响应的QQ, [Description("")] string QQ); /// - /// 取得框架内随机一个在线且可以使用的QQ` + /// 取得框架内随机一个在线且可以使用的QQ` /// /// [Description("取得框架内随机一个在线且可以使用的QQ`")] string Api_GetRadomOnlineQQ(); /// - /// 往帐号列表添加一个Q.当该Q已存在时则覆盖密码` + /// 往帐号列表添加一个Q.当该Q已存在时则覆盖密码` /// /// /// @@ -557,7 +568,7 @@ bool Api_AddQQ([Description("")] string QQ, [Description("")] string 密码, bool 自动登录); /// - /// 设置在线状态+附加信息 ` + /// 设置在线状态+附加信息 ` /// /// /// 1~6 分别对应我在线上, Q我吧, 离开, 忙碌, 请勿打扰, 隐身 @@ -568,14 +579,14 @@ bool Api_SetOLStatus([Description("")] string 响应的QQ, [Description("1~6 分 int 在线状态, [Description("最大255字节")] string 状态附加信息); /// - /// 取得机器码` + /// 取得机器码` /// /// [Description("取得机器码`")] string Api_GetMC(); /// - /// 邀请对象加入群 失败返回错误理由` + /// 邀请对象加入群 失败返回错误理由` /// /// /// 多个好友用换行分割 @@ -586,7 +597,7 @@ string Api_GroupInvitation([Description("")] string 响应的QQ, [Description(" [Description("")] string 群号); /// - /// 创建一个讨论组 成功返回讨论组ID 失败返回空 注:每24小时只能创建100个讨论组 悠着点用` + /// 创建一个讨论组 成功返回讨论组ID 失败返回空 注:每24小时只能创建100个讨论组 悠着点用` /// /// /// @@ -594,7 +605,7 @@ string Api_GroupInvitation([Description("")] string 响应的QQ, [Description(" string Api_CreateDG([Description("")] string 响应的QQ); /// - /// 将对象移除讨论组.成功返回空 失败返回理由` + /// 将对象移除讨论组.成功返回空 失败返回理由` /// /// /// @@ -604,7 +615,7 @@ string Api_GroupInvitation([Description("")] string 响应的QQ, [Description(" string Api_KickDG([Description("")] string 响应的QQ, [Description("")] string 讨论组ID, [Description("")] string 成员); /// - /// 邀请对象加入讨论组 成功返回空 失败返回理由` + /// 邀请对象加入讨论组 成功返回空 失败返回理由` /// /// /// @@ -615,7 +626,7 @@ string Api_DGInvitation([Description("")] string 响应的QQ, [Description("")] [Description("多个成员用换行符分割")] string 成员组); /// - /// 成功返回以换行符分割的讨论组号列表.最大为100个讨论组 失败返回空` + /// 成功返回以换行符分割的讨论组号列表.最大为100个讨论组 失败返回空` /// /// /// @@ -623,7 +634,7 @@ string Api_DGInvitation([Description("")] string 响应的QQ, [Description("")] string Api_GetDGList([Description("")] string 响应的QQ); /// - /// 向对象发送一条音乐信息(所谓的点歌)次数不限` + /// 向对象发送一条音乐信息(所谓的点歌)次数不限` /// /// /// 同Api_SendMsg 1好友 2群 3讨论组 4群临时会话 5讨论组临时会话 @@ -650,7 +661,23 @@ bool Api_SendMusic([Description("")] string 响应的QQ, [Description("同Api_Se string 音乐来源图标连接); /// - /// ` + /// ` + /// + /// + /// 同Api_SendMsg 1好友 2群 3讨论组 4群临时会话 5讨论组临时会话 + /// 发群内、临时会话必填 好友可不填 + /// 临时会话、好友必填 发至群内可不填 + /// + /// 00 基本 02 点歌 其他不明 + /// + [Description("`")] + bool Api_SendXml([Description("")] string 响应的QQ, [Description("同Api_SendMsg 1好友 2群 3讨论组 4群临时会话 5讨论组临时会话")] + int 收信对象类型, [Description("发群内、临时会话必填 好友可不填")] string 收信对象所属群_讨论组, + [Description("临时会话、好友必填 发至群内可不填")] string 收信对象QQ, [Description("")] string ObjectMsg, + [Description("00 基本 02 点歌 其他不明")] int 结构子类型); + + /// + /// ` /// /// /// 同Api_SendMsg 1好友 2群 3讨论组 4群临时会话 5讨论组临时会话 @@ -667,12 +694,272 @@ bool Api_SendObjectMsg([Description("")] string 响应的QQ, [Description("00 基本 02 点歌 其他不明")] int 结构子类型); /// - /// 判断对象是否为好友(双向)` + /// 判断对象是否为好友(双向)` /// /// /// /// [Description("判断对象是否为好友(双向)`")] bool Api_IsFriend([Description("")] string 响应的QQ, [Description("")] string 对象QQ); + + /// + /// 主动加好友 成功返回真 失败返回假 当对象设置需要正确回答问题或不允许任何人添加时无条件失败 + /// + /// 机器人QQ + /// 加谁 + /// 加好友提交的理由 + /// + [Description("主动加好友 成功返回真 失败返回假 当对象设置需要正确回答问题或不允许任何人添加时无条件失败")] + bool Api_AddFriend([Description("机器人QQ")] string 响应的QQ, [Description("加谁")] string 对象QQ, + [Description("加好友提交的理由")] string 附加理由); + + /// + /// 无参 用于插件自身请求禁用插件自身 + /// + /// + [Description("无参 用于插件自身请求禁用插件自身")] + void Api_SelfDisable(); + + /// + /// 取协议客户端类型常量 失败返回0 + /// + /// + [Description("取协议客户端类型常量 失败返回0")] + int Api_GetClientType(); + + /// + /// 取协议客户端版本号常量 失败返回0 + /// + /// + [Description("取协议客户端版本号常量 失败返回0")] + int Api_GetClientVer(); + + /// + /// 取协议客户端公开版本号常量 失败返回0 + /// + /// + [Description("取协议客户端公开版本号常量 失败返回0")] + int Api_GetPubNo(); + + /// + /// 取协议客户端主版本号常量 失败返回0 + /// + /// + [Description("取协议客户端主版本号常量 失败返回0")] + int Api_GetMainVer(); + + /// + /// 取协议客户端通信模块(TXSSO)版本号常量 失败返回0 + /// + /// + [Description("取协议客户端通信模块(TXSSO)版本号常量 失败返回0")] + int Api_GetTXSSOVer(); + + /// + /// 通过音频、语音guid取得下载连接 + /// + /// + /// 格式:{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx}.amr + /// + [Description("通过音频、语音guid取得下载连接")] + string Api_GuidGetVoiceLink([Description("")] string 响应的QQ, + [Description("格式:{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx}.amr")] + string GUID); + + /// + /// 上传音频文件 成功返回guid用于发送 + /// + /// + /// 音频字节集数据 + /// + [Description("上传音频文件 成功返回guid用于发送")] + string Api_UploadVoice([Description("")] string 响应的QQ, [Description("音频字节集数据")] byte[] amr音频数据); + + /// + /// 移除由Api_AddLogHandler添加、设置的日志处理函数 + /// + /// + [Description("移除由Api_AddLogHandler添加、设置的日志处理函数")] + void Api_RemoveLogHandler(); + + /// + /// 取群名 + /// + /// + /// + /// + [Description("取群名")] + string Api_GetGroupName([Description("")] string 响应的QQ, [Description("")] string 群号); + + /// + /// 移除\取消由Api_SetMsgFilter所添加\设置的处理函数 + /// + /// + [Description("移除/取消由Api_SetMsgFilter所添加/设置的处理函数")] + void Api_RemoveMsgFilter(); + + /// + /// QQ名片赞 10赞每Q每日 至多50人\日系列 成功返回空 失败返回理由(腾讯爸爸给出的) 一次一赞 速度请自行管控以免冻结 + /// + /// + /// + /// + [Description("QQ名片赞 10赞每Q每日 至多50人/日系列 成功返回空 失败返回理由(腾讯爸爸给出的) 一次一赞 速度请自行管控以免冻结")] + string Api_Like([Description("")] string 参_响应的QQ, [Description("")] string 参_被赞QQ); + + /// + /// 上传群文件 + /// + /// + /// + /// 实际显示在群文件列表中的文件名 + /// 本地文件路径 选填 + /// 图片字节集数据 选填 + /// + [Description("上传群文件")] + bool Api_UploadGroupFile([Description("")] string 参_响应的QQ, [Description("")] string 参_群号, + [Description("实际显示在群文件列表中的文件名")] string 参_上传文件名, [Description("本地文件路径 选填")] string 参_路径, + [Description("图片字节集数据 选填")] byte[] 参_图片数据); + + /// + /// 根据图片GUID取得图片下载连接 失败返回空 + /// + /// {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}.jpg这样的GUID + /// 1好友\临时会话图片 2 群图 + /// 好友QQ或群号 根据参数2填写 + /// + [Description("根据图片GUID取得图片下载连接 失败返回空")] + string Api_GuidGetPicLinkEx([Description("{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}.jpg这样的GUID")] + string 参_图片GUID, [Description("1好友/临时会话图片 2 群图")] int 参_图片类型, + [Description("好友QQ或群号 根据参数2填写")] string 参_图片参考对象); + + /// + /// 撤回群信息 需为群管 + /// + /// 机器人QQ + /// Event函数中的'参_原始信息' 经过解密后的封包字节数据 + /// + [Description("撤回群信息 需为群管")] + bool Api_CancelGroupMsgA([Description("机器人QQ")] string 响应的QQ, [Description("Event函数中的'参_原始信息' 经过解密后的封包字节数据")] + string 原始信息); + + /// + /// 取得用于登陆腾讯子业务的Cookies 如xxx.qq.com + /// + /// + /// 如qun.qq.com + /// + [Description("取得用于登陆腾讯子业务的Cookies 如xxx.qq.com")] + string Api_GetCookiesByDomain([Description("")] string 响应的QQ, [Description("如qun.qq.com")] string 域名); + + /// + /// + /// + /// + /// + [Description("")] + void Api_ChangeProtocol([Description("")] int i); + + /// + /// 从框架中删除QQ + /// + /// + /// + [Description("从框架中删除QQ")] + void Api_DeleteQQ([Description("")] string 被操作QQ); + + /// + /// + /// + /// + /// 同Api_SendMsg 1好友 2群 3讨论组 4群临时会话 5讨论组临时会话 + /// 文本型, , 发群内、临时会话必填 好友可不填 + /// 临时会话、好友必填 发至群内可不填 + /// + /// + [Description("")] + bool Api_SendAppMsg([Description("")] string 响应的QQ, [Description("同Api_SendMsg 1好友 2群 3讨论组 4群临时会话 5讨论组临时会话")] + int 收信对象类型, [Description("文本型, , 发群内、临时会话必填 好友可不填")] + string 信对象所属群_讨论组, [Description("临时会话、好友必填 发至群内可不填")] string 收信对象QQ, [Description("")] string AppMsg); + + /// + /// 取生日 失败返回空 未公开生日信息返回 "0年0月0日" + /// + /// + /// + /// + [Description("取生日 失败返回空 未公开生日信息返回 \"0 年0月0日\"")] + string Api_GetBirthday([Description("")] string 响应的QQ, [Description("")] string QQ); + + /// + /// 取用户个人信息页面字节数据 包含各种资料 返回内容为原始明文数据 + /// + /// + /// + /// + [Description("取用户个人信息页面字节数据 包含各种资料 返回内容为原始明文数据")] + string Api_GetUserInfo([Description("")] string 响应的QQ, [Description("")] string QQ); + + /// + /// + /// + /// + /// + [Description("")] + string Api_GetFriendListA([Description("")] string 响应的QQ); + + /// + /// 仅商用版可用 + /// + /// + [Description("仅商用版可用")] + string Api_GetLoginQRCode(); + + /// + /// 仅商用版可用 上传头像 接受字节集参数 返回值:0 上传成功 -1参数有误 -2图片大于1MB -3获取上传令牌失败受限 -4其他理由上传失败 + /// + /// 机器人QQ + /// 图片字节集数据,由于易语言DLL限制你可能在这里读到的是"整数型" 请自己改成字节集,图片不限PNG JPG 大小1MB以内 + /// + [Description("仅商用版可用 上传头像 接受字节集参数 返回值:0 上传成功 -1参数有误 -2图片大于1MB -3获取上传令牌失败受限 -4其他理由上传失败")] + int Api_UploadCface_Byte([Description("机器人QQ")] string 参_响应的QQ, + [Description("图片字节集数据,由于易语言DLL限制你可能在这里读到的是\"整数型\" 请自己改成字节集,图片不限PNG JPG 大小1MB以内")] + int 参_图片数据); + + /// + /// 仅商用版可用 上传头像 接受路径参数 URL 或 本地路径 返回值:0 上传成功 -1参数有误 -2图片大于1MB -3获取上传令牌失败受限 -4其他理由上传失败 + /// + /// 机器人QQ + /// 路径 可选URL 或 本地路径 http://www.baidu,com/图片.jpg C:\1.jpg, + /// + [Description("仅商用版可用 上传头像 接受路径参数 URL 或 本地路径 返回值:0 上传成功 -1参数有误 -2图片大于1MB -3获取上传令牌失败受限 -4其他理由上传失败")] + int Api_UploadCface_Path([Description("机器人QQ")] string 参_响应的QQ, + [Description("路径 可选URL 或 本地路径 http://www.baidu,com/图片.jpg C:/1.jpg,")] + string 参_图片路径); + + /// + /// 异步处理被加好友事件 在事件1001下返回值需>30 如50 以强制忽略且确保无其他插件处理 + /// + /// 在事件1001下取得 参_原始信息 填入 + /// 0忽略 10同意 20拒绝 30单向同意(成为单向好友) + /// 拒绝时的附加理由 可以留空 + /// + [Description("异步处理被加好友事件 在事件1001下返回值需>30 如50 以强制忽略且确保无其他插件处理")] + void Api_HandleFriendRequestAsync([Description("在事件1001下取得 参_原始信息 填入")] string 参_原始信息, + [Description("0忽略 10同意 20拒绝 30单向同意(成为单向好友)")] + int 参_处理方式, [Description("拒绝时的附加理由 可以留空")] string 参_附加信息); + + /// + /// 异步处理被加群类事件 在事件200x下返回值需>30 如50 以强制忽略且确保无其他插件处理 + /// + /// 机器人QQ + /// 在事件200x下取得 参_原始信息 填入 + /// 0忽略 10同意 20拒绝 30拒绝并不再接受 + /// 拒绝时的附加理由 可以留空 + /// + [Description("异步处理被加群类事件 在事件200x下返回值需>30 如50 以强制忽略且确保无其他插件处理")] + void Api_HandleGroupRequestAsync([Description("机器人QQ")] string 参_响应的QQ, + [Description("在事件200x下取得 参_原始信息 填入")] string 参_原始信息, [Description("0忽略 10同意 20拒绝 30拒绝并不再接受")] + int 参_处理方式, [Description("拒绝时的附加理由 可以留空")] string 参_附加信息); } } \ No newline at end of file diff --git a/src/Newbe.Mahua/NativeApi/IQQLightApi.cs b/src/Newbe.Mahua/NativeApi/IQQLightApi.cs index f844e93..15fca01 100644 --- a/src/Newbe.Mahua/NativeApi/IQQLightApi.cs +++ b/src/Newbe.Mahua/NativeApi/IQQLightApi.cs @@ -2,464 +2,635 @@ namespace Newbe.Mahua.NativeApi { - // generate at 2019/1/22 14:04:44 +00:00 + // generate at 2019/12/15 8:54:12 +00:00 public interface IQQLightApi { /// - /// + /// //给QQ点名片赞,PCQQ点赞不稳定,容易失效 /// - /// + /// /// /// - [Description("")] - void Api_SendPraise([Description("")] string QQ号, [Description("")] string AuthCode); + [Description("//给QQ点名片赞,PCQQ点赞不稳定,容易失效")] + void Api_SendPraise([Description("")] string QQID, [Description("")] int AuthCode); /// - /// + /// //抖动好友窗口 /// - /// + /// /// /// - [Description("")] - void Api_SendShake([Description("")] string QQ号, [Description("")] string AuthCode); + [Description("//抖动好友窗口")] + void Api_SendShake([Description("")] string QQID, [Description("")] int AuthCode); /// - /// + /// //取得网页操作时需要用到的bkn/Gtk /// + /// /// /// - [Description("")] - string Api_Getbkn([Description("")] string AuthCode); + [Description("//取得网页操作时需要用到的bkn/Gtk")] + string Api_Getbkn([Description("")] string Cookies, [Description("")] int AuthCode); /// - /// + /// //取得网页操作时需要用到的bkn/Gtk /// - /// + /// /// /// - [Description("")] - void Api_QuitGroup([Description("")] string 群号, [Description("")] string AuthCode); + [Description("//取得网页操作时需要用到的bkn/Gtk")] + string Api_Getbkn_Long([Description("")] string Cookies, [Description("")] int AuthCode); /// - /// + /// //退出群 /// - /// + /// /// /// - [Description("")] - void Api_QuitDiscussGroup([Description("")] string 讨论组号, [Description("")] string AuthCode); + [Description("//退出群")] + void Api_QuitGroup([Description("")] string GroupID, [Description("")] int AuthCode); /// - /// + /// //退出讨论组 /// - /// + /// /// /// - [Description("")] - void Api_SetSignature([Description("")] string 个性签名, [Description("")] string AuthCode); + [Description("//退出讨论组")] + void Api_QuitDiscussGroup([Description("")] string GroupID, [Description("")] int AuthCode); /// - /// + /// //修改个性签名 /// - /// - /// + /// /// /// - [Description("")] - void Api_SetDiscussName([Description("")] string 讨论组号, [Description("")] string 名称, - [Description("")] string AuthCode); + [Description("//修改个性签名")] + void Api_SetSignature([Description("")] string Signature, [Description("")] int AuthCode); /// - /// + /// //修改讨论组名称 /// - /// - /// + /// + /// /// /// - [Description("")] - void Api_BanGroup([Description("")] string 群号, [Description("")] bool 是否全群禁言, - [Description("")] string AuthCode); + [Description("//修改讨论组名称")] + void Api_SetDiscussName([Description("")] string DiscussGroupID, [Description("")] string Name, + [Description("")] int AuthCode); /// - /// + /// //修改群名称 /// - /// + /// + /// /// /// - [Description("")] - void Api_RemoveGroup([Description("")] string 群号, [Description("")] string AuthCode); + [Description("//修改群名称")] + void Api_SetGroupName([Description("")] string GroupID, [Description("")] string Name, + [Description("")] int AuthCode); /// - /// + /// //设置全群禁言 /// - /// - /// - /// 真,设置 假,取消 + /// + /// 真 开启全群禁言 假 关闭全群禁言 /// /// - [Description("")] - void Api_SetManager([Description("")] string 群号, [Description("")] string QQ号, - [Description("真,设置 假,取消")] bool 是否设置为管理员, [Description("")] string AuthCode); + [Description("//设置全群禁言")] + void Api_BanGroup([Description("")] string GroupID, [Description("真 开启全群禁言 假 关闭全群禁言")] bool IsBanGroup, + [Description("")] int AuthCode); /// - /// + /// //设置管理员权限 /// - /// + /// + /// + /// 真,设置 假,取消 + /// + /// + [Description("//设置管理员权限")] + void Api_SetManager([Description("")] string GroupID, [Description("")] string QQID, + [Description("真,设置 假,取消")] bool IsManager, [Description("")] int AuthCode); + + /// + /// //禁言群成员 + /// + /// /// - /// 单位:秒 0为解除禁言 + /// 单位:秒 0为解除禁言 /// /// - [Description("")] - void Api_Ban([Description("")] string 群号, [Description("")] string QQ, [Description("单位:秒 0为解除禁言")] int 禁言时长, - [Description("")] string AuthCode); + [Description("//禁言群成员")] + void Api_Ban([Description("")] string GroupID, [Description("")] string QQ, + [Description("单位:秒 0为解除禁言")] int time, [Description("")] int AuthCode); /// - /// + /// //修改匿名权限 /// - /// - /// + /// + /// 真 允许匿名 假 禁止匿名 /// /// - [Description("")] - void Api_SetAnony([Description("")] string 群号, [Description("")] bool 是否允许匿名聊天, - [Description("")] string AuthCode); + [Description("//修改匿名权限")] + void Api_SetAnony([Description("")] string GroupID, [Description("真 允许匿名 假 禁止匿名")] bool IsSetAnony, + [Description("")] int AuthCode); /// - /// + /// //踢出群成员 /// - /// - /// - /// + /// + /// + /// 不再接受此人加群 /// /// - [Description("")] - void Api_RemoveMember([Description("")] string 群号, [Description("")] string QQ号, - [Description("")] bool 是否不再接收加群申请, [Description("")] string AuthCode); + [Description("//踢出群成员")] + void Api_RemoveMember([Description("")] string GroupID, [Description("")] string QQID, + [Description("不再接受此人加群")] bool IsBan, [Description("")] int AuthCode); /// - /// + /// //解散群 /// + /// 群号 /// /// - [Description("")] - string Api_GetCookies([Description("")] string AuthCode); + [Description("//解散群")] + void Api_RemoveGroup([Description("群号")] string GroupID, [Description("")] int AuthCode); /// - /// + /// //取得操作网页所需要的Cookies /// /// /// - [Description("")] - string Api_GetClientKey([Description("")] string AuthCode); + [Description("//取得操作网页所需要的Cookies")] + string Api_GetCookies([Description("")] int AuthCode); /// - /// + /// //取得QQ空间Token /// /// /// - [Description("")] - string Api_GetLoginQQ([Description("")] string AuthCode); + [Description("//取得QQ空间Token")] + string Api_GetQzoneToken([Description("")] int AuthCode); /// - /// 是否开启/关闭 + /// //取得QQ空间Cookies /// /// /// - [Description("是否开启/关闭")] - bool Api_GetPluginState([Description("")] string AuthCode); + [Description("//取得QQ空间Cookies")] + string Api_GetQzoneCookies([Description("")] int AuthCode); /// - /// 框架为插件所创建的一个目录 + /// //发表说说 /// + /// /// /// - [Description("框架为插件所创建的一个目录")] - string Api_GetPath([Description("")] string AuthCode); + [Description("//发表说说")] + string Api_SendTaotao([Description("")] string Str, [Description("")] int AuthCode); /// - /// 机器人发送消息 + /// //取得所登录的QQ /// - /// 1.好友消息 2.群消息 3.群临时消息 4.讨论组消息 5.讨论组临时消息 6.QQ临时消息 - /// - /// 类型为2,4时可留空 - /// /// /// - [Description("机器人发送消息")] - void Api_SendMsg([Description("1.好友消息 2.群消息 3.群临时消息 4.讨论组消息 5.讨论组临时消息 6.QQ临时消息")] - int 类型, [Description("")] string 群组, [Description("类型为2,4时可留空")] string QQ号, [Description("")] string 内容, - [Description("")] string AuthCode); + [Description("//取得所登录的QQ")] + string Api_GetLoginQQ([Description("")] int AuthCode); /// - /// 处理加群消息 + /// //框架为插件所创建的插件目录 /// - /// - /// + /// + /// + [Description("//框架为插件所创建的插件目录")] + string Api_GetPath([Description("")] int AuthCode); + + /// + /// //置插件错误管理 + /// + /// + /// + /// + /// + [Description("//置插件错误管理")] + string Api_Error([Description("")] string Code, [Description("")] string Str, [Description("")] int AuthCode); + + /// + /// //机器人发送消息,返回值为该条消息的ID + /// + /// 1.好友消息 2.群消息 3.群临时消息 4.讨论组消息 5.讨论组临时消息 6.QQ临时消息 + /// + /// 类型为2,4时可留空 + /// + /// + /// + [Description("//机器人发送消息,返回值为该条消息的ID")] + string Api_SendMsg([Description("1.好友消息 2.群消息 3.群临时消息 4.讨论组消息 5.讨论组临时消息 6.QQ临时消息")] + int Type, [Description("")] string GroupID, [Description("类型为2,4时可留空")] string QQID, + [Description("")] string Msg, [Description("")] int AuthCode); + + /// + /// //处理加群消息 + /// + /// + /// /// - /// 1.同意 2.拒绝 3.忽略 - /// 参数可为空,且为 拒绝 时有效 + /// 1.同意 2.拒绝 3.忽略 + /// 参数可为空,且为 拒绝 时有效 /// /// - [Description("处理加群消息")] - void Api_SetGroupAdd([Description("")] string 群号, [Description("")] string QQ号, [Description("")] string Seq, - [Description("1.同意 2.拒绝 3.忽略")] int 操作方式, [Description("参数可为空,且为 拒绝 时有效")] string 拒绝理由, - [Description("")] string AuthCode); + [Description("//处理加群消息")] + void Api_SetGroupAdd([Description("")] string GroupID, [Description("")] string QQID, + [Description("")] string Seq, [Description("1.同意 2.拒绝 3.忽略")] int Type, + [Description("参数可为空,且为 拒绝 时有效")] string Reason, [Description("")] int AuthCode); /// - /// 处理加好友消息 + /// //处理加好友消息 /// - /// - /// 1.同意 2.拒绝 3.忽略 - /// 参数可为空,且为 拒绝 时有效 + /// + /// 1.同意 2.拒绝 3.忽略 + /// 参数可为空,且为 拒绝 时有效 /// /// - [Description("处理加好友消息")] - void Api_SetFriendAdd([Description("")] string QQ号, [Description("1.同意 2.拒绝 3.忽略")] int 操作方式, - [Description("参数可为空,且为 拒绝 时有效")] string 拒绝理由, [Description("")] string AuthCode); + [Description("//处理加好友消息")] + void Api_SetFriendAdd([Description("")] string QQID, [Description("1.同意 2.拒绝 3.忽略")] int Type, + [Description("参数可为空,且为 拒绝 时有效")] string Reason, [Description("")] int AuthCode); /// - /// + /// //向框架推送一条日志 /// - /// - /// - /// + /// 日志类型(自定义) + /// 日志内容 + /// 日志颜色 /// /// - [Description("")] - void Api_SendLog([Description("")] string 类型, [Description("")] string 内容, [Description("")] int 字体颜色, - [Description("")] string AuthCode); + [Description("//向框架推送一条日志")] + void Api_SendLog([Description("日志类型(自定义)")] string Type, [Description("日志内容")] string Msg, + [Description("日志颜色")] int FontColor, [Description("")] int AuthCode); + + /// + /// //修改好友备注 + /// + /// + /// + /// + /// + [Description("//修改好友备注")] + void Api_SetFriendName([Description("")] string QQID, [Description("")] string Name, + [Description("")] int AuthCode); + + /// + /// //删除好友 + /// + /// + /// + /// + [Description("//删除好友")] + void Api_DeleteFriend([Description("")] string QQID, [Description("")] int AuthCode); + + /// + /// //主动添加群 + /// + /// + /// + /// + /// + [Description("//主动添加群")] + void Api_AddGroup([Description("")] string GroupID, [Description("")] string 附加信息, + [Description("")] int AuthCode); + + /// + /// //主动添加好友 + /// + /// + /// + /// + /// + [Description("//主动添加好友")] + void Api_AddFriend([Description("")] string QQID, [Description("")] string Info, + [Description("")] int AuthCode); + + /// + /// //返回卡片点歌JSON代码 + /// + /// + /// + /// + [Description("//返回卡片点歌JSON代码")] + string Api_JsonMusic([Description("")] string SongID, [Description("")] int AuthCode); + + /// + /// //取得群内成员的名片 + /// + /// + /// + /// + /// + [Description("//取得群内成员的名片")] + string Api_GetGroupCard([Description("")] string GroupID, [Description("")] string QQID, + [Description("")] int AuthCode); + + /// + /// //取指定QQ的昵称 + /// + /// + /// + /// + [Description("//取指定QQ的昵称")] + string Api_GetNick([Description("")] string QQID, [Description("")] int AuthCode); /// /// /// - /// - /// + /// /// /// [Description("")] - void Api_SetFriendName([Description("")] string 好友QQ, [Description("")] string 备注名, - [Description("")] string AuthCode); + string Api_GetGroupName([Description("")] string GroupID, [Description("")] int AuthCode); /// /// /// - /// /// /// [Description("")] - void Api_DeleteFriend([Description("")] string 好友QQ, [Description("")] string AuthCode); + string Api_GetSoftVersion([Description("")] int AuthCode); /// /// /// - /// - /// + /// /// /// [Description("")] - void Api_AddGroup([Description("")] string 群号, [Description("")] string 附加信息, - [Description("")] string AuthCode); + string Api_GetGroupIntroduce([Description("")] string GroupID, [Description("")] int AuthCode); /// /// /// - /// - /// + /// /// /// [Description("")] - void Api_AddFriend([Description("")] string 目标QQ, [Description("")] string 附加信息, - [Description("")] string AuthCode); + string Api_GetGroupOwner([Description("")] string GroupID, [Description("")] int AuthCode); /// - /// 返回网易云点歌XML + /// //修改群成员的名片 /// - /// + /// + /// + /// /// /// - [Description("返回网易云点歌XML")] - string Api_163Music([Description("")] string 歌曲ID, [Description("")] string AuthCode); + [Description("//修改群成员的名片")] + void Api_SetGroupCard([Description("")] string GroupID, [Description("")] string QQID, + [Description("")] string NewCard, [Description("")] int AuthCode); /// - /// 返回QQ点歌XML + /// //取得某个QQ的名片赞数量 /// - /// + /// /// /// - [Description("返回QQ点歌XML")] - string Api_QQMusic([Description("")] string 歌曲ID, [Description("")] string AuthCode); + [Description("//取得某个QQ的名片赞数量")] + string Api_GetPraiseNum([Description("")] string QQID, [Description("")] int AuthCode); /// - /// 返回Json点歌XML + /// //取得某个QQ的等级 /// - /// + /// /// /// - [Description("返回Json点歌XML")] - string Api_JsonMusic([Description("")] string 歌曲ID, [Description("")] string AuthCode); + [Description("//取得某个QQ的等级")] + int Api_GetQQLevel([Description("")] string QQID, [Description("")] int AuthCode); /// - /// 置插件错误管理 + /// /// - /// - /// + /// /// /// - [Description("置插件错误管理")] - string Api_Error([Description("")] string Code, [Description("")] string Str, - [Description("")] string AuthCode); + [Description("")] + void Api_SetNick([Description("")] string NewNick, [Description("")] int AuthCode); /// - /// 取得群内成员的名片 + /// /// - /// - /// + /// + /// /// /// - [Description("取得群内成员的名片")] - string Api_GetGroupCard([Description("")] string 群号, [Description("")] string QQ号, - [Description("")] string AuthCode); + [Description("")] + string Api_Taotaodolike([Description("")] string QQID, [Description("")] string URL, + [Description("")] int AuthCode); /// - /// 取得某个QQ的昵称 + /// /// - /// + /// + /// + /// /// /// - [Description("取得某个QQ的昵称")] - string Api_GetNick([Description("")] string QQ号, [Description("")] string AuthCode); + [Description("")] + string Api_Taotaofeeds([Description("")] string QQID, [Description("")] string URL, + [Description("")] string Content, [Description("")] int AuthCode); /// - /// 修改群内成员的名片 + /// /// - /// - /// - /// + /// /// /// - [Description("修改群内成员的名片")] - void Api_SetGroupCard([Description("")] string 群号, [Description("")] string QQ号, [Description("")] string 新名片, - [Description("")] string AuthCode); + [Description("")] + int Api_GetQQAge([Description("")] string QQID, [Description("")] int AuthCode); /// - /// 取得某个QQ的名片赞数量 + /// /// - /// + /// /// /// - [Description("取得某个QQ的名片赞数量")] - string Api_GetPraiseNum([Description("")] string QQ号, [Description("")] string AuthCode); + [Description("")] + int Api_GetQQSex([Description("")] string QQID, [Description("")] int AuthCode); /// - /// 以JSON形式取得好友列表 + /// //以JSON形式取得好友列表 /// + /// /// /// - [Description("以JSON形式取得好友列表")] - string Api_GetFriendList([Description("")] string AuthCode); + [Description("//以JSON形式取得好友列表")] + string Api_GetFriendList([Description("")] bool Cache, [Description("")] int AuthCode); /// - /// 以JSON形式取得群列表 + /// //以JSON形式取得群列表 /// + /// /// /// - [Description("以JSON形式取得群列表")] - string Api_GetGroupList([Description("")] string AuthCode); + [Description("//以JSON形式取得群列表")] + string Api_GetGroupList([Description("")] bool Cache, [Description("")] int AuthCode); /// - /// 以JSON形式取得群成员列表 + /// //以JSON形式取得群成员列表 /// - /// + /// + /// /// /// - [Description("以JSON形式取得群成员列表")] - string Api_GetGroupMemberList([Description("")] string 群号, [Description("")] string AuthCode); + [Description("//以JSON形式取得群成员列表")] + string Api_GetGroupMemberList([Description("")] string GroupID, [Description("")] bool Cache, + [Description("")] int AuthCode); /// - /// 以JSON形式取得某QQ个人信息 + /// //以JSON形式取得某QQ个人信息 /// - /// + /// /// /// - [Description("以JSON形式取得某QQ个人信息")] - string Api_GetQQInfo([Description("")] string QQ号, [Description("")] string AuthCode); + [Description("//以JSON形式取得某QQ个人信息")] + string Api_GetQQInfo([Description("")] string QQID, [Description("")] int AuthCode); /// - /// 以JSON形式取得某群信息 + /// //以JSON形式取得某群信息 /// - /// + /// /// /// - [Description("以JSON形式取得某群信息")] - string Api_GetGroupInfo([Description("")] string 群号, [Description("")] string AuthCode); + [Description("//以JSON形式取得某群信息")] + string Api_GetGroupInfo([Description("")] string GroupID, [Description("")] int AuthCode); /// - /// 让机器人快速重启 + /// //撤回自身消息 发出消息不可以秒撤回,腾讯限制,1~2s后才可撤回 /// + /// 1.好友消息 2.群消息 3.群临时消息 4.讨论组消息 5.讨论组临时消息 6.QQ临时消息 + /// 撤回群消息、群临时消息、讨论组消息、讨论组临时消息必须填写,其余情况可留空 + /// 撤回好友消息、群临时消息、讨论组临时消息、QQ临时消息必须填写,其余情况可留空 + /// 撤回的消息ID,机器人发送消息会返回自身的消息ID /// /// - [Description("让机器人快速重启")] - string Api_Restart([Description("")] string AuthCode); + [Description("//撤回自身消息 发出消息不可以秒撤回,腾讯限制,1~2s后才可撤回")] + void Api_DeleteMsg([Description("1.好友消息 2.群消息 3.群临时消息 4.讨论组消息 5.讨论组临时消息 6.QQ临时消息")] + int Type, [Description("撤回群消息、群临时消息、讨论组消息、讨论组临时消息必须填写,其余情况可留空")] + string GroupID, [Description("撤回好友消息、群临时消息、讨论组临时消息、QQ临时消息必须填写,其余情况可留空")] + string QQID, [Description("撤回的消息ID,机器人发送消息会返回自身的消息ID")] + string MsgID, [Description("")] int AuthCode); /// - /// 让机器人刷新插件 + /// //改变QQ在线状态 /// + /// 1.我在线上 2.Q我吧 3.离开 4.忙碌 5.请勿打扰 6.隐身 /// /// - [Description("让机器人刷新插件")] - string Api_UpdatePlugin([Description("")] string AuthCode); + [Description("//改变QQ在线状态")] + void Api_SetQQState([Description("1.我在线上 2.Q我吧 3.离开 4.忙碌 5.请勿打扰 6.隐身")] + int Type, [Description("")] int AuthCode); /// - /// 撤回群成员的消息 机器人必须为管理员 + /// //邀请好友入群 /// - /// - /// + /// + /// + /// + /// + [Description("//邀请好友入群")] + void Api_InviteFriend([Description("")] string GroupID, [Description("")] string QQID, + [Description("")] int AuthCode); + + /// + /// + /// + /// + /// + /// + [Description("")] + string Api_GetQQInfo_v2([Description("")] string QQID, [Description("")] int AuthCode); + + /// + /// //取消COM库 + /// + /// + [Description("//取消COM库")] + void CoUninitialize(); + + /// + /// //初始化COM库 + /// + /// + /// + [Description("//初始化COM库")] + void CoInitialize([Description("")] int pvReserved); + + /// + /// //上传图片,获得图片GUID, + /// + /// 1.私聊图片 2.群聊图片 + /// 私聊图片填写QQID,群聊/讨论组图片填写群号讨论组号 + /// 图片的Hex流 /// /// - [Description("撤回群成员的消息 机器人必须为管理员")] - string Api_DeleteMsg([Description("")] string 群号, [Description("")] string 消息ID, - [Description("")] string AuthCode); + [Description("//上传图片,获得图片GUID,")] + string Api_UpLoadPic([Description("1.私聊图片 2.群聊图片")] int Type, [Description("私聊图片填写QQID,群聊/讨论组图片填写群号讨论组号")] + string 对象, [Description("图片的Hex流")] string Bin, [Description("")] int AuthCode); /// - /// 改变QQ在线状态 + /// //设置插件状态,开启或关闭 /// - /// 1.我在线上 2.Q我吧 3.离开 4.忙碌 5.请勿打扰 6.隐身 + /// 真:启用自身 假:关闭自身 /// /// - [Description("改变QQ在线状态")] - string Api_SetQQState([Description("1.我在线上 2.Q我吧 3.离开 4.忙碌 5.请勿打扰 6.隐身")] - int 类型, [Description("")] string AuthCode); + [Description("//设置插件状态,开启或关闭")] + string Api_SetPluginState([Description("真:启用自身 假:关闭自身")] bool State, [Description("")] int AuthCode); /// /// /// /// - /// + /// /// /// [Description("")] - void Api_InviteFriend([Description("")] string 群号, [Description("")] string 好友QQ, - [Description("")] string AuthCode); + void Api_DeleteFile([Description("")] string 群号, [Description("")] string 文件GUID, + [Description("")] int AuthCode); /// /// /// - /// + /// + /// + /// /// /// [Description("")] - string Api_GetQQinfo_v2([Description("")] string QQ号, [Description("")] string AuthCode); + void Api_RepeatFile([Description("")] string 来源对象, [Description("")] string 转发群号, + [Description("")] string 文件GUID, [Description("")] int AuthCode); /// /// /// - /// - /// - /// Hex形式 /// /// [Description("")] - string Api_UpLoadPic([Description("")] int 类型, [Description("")] string 对象, [Description("Hex形式")] string 图片字节集, - [Description("")] string AuthCode); + void Api_ClearOffLineFile([Description("")] int AuthCode); + + /// + /// + /// + /// + /// + /// 址 + /// + /// 址 + /// + /// + /// + /// + [Description("")] + int WideCharToMultiByte([Description("")] int CodePage, [Description("")] int dwFlags, + [Description("址")] byte[] lpWideCharStr, [Description("")] int cchWideChar, + [Description("址")] string lpMultiByteStr, [Description("")] int cchMultiByte, + [Description("")] int lpDefaultChar, [Description("")] int lpUsedDefaultChar); } } \ No newline at end of file diff --git a/src/Newbe.Mahua/Newbe.Mahua.csproj b/src/Newbe.Mahua/Newbe.Mahua.csproj index 6946ce6..cde4665 100644 --- a/src/Newbe.Mahua/Newbe.Mahua.csproj +++ b/src/Newbe.Mahua/Newbe.Mahua.csproj @@ -7,7 +7,7 @@ - + diff --git a/src/Newbe.Tools.ELang2CSharp/ELangFuncResolver.cs b/src/Newbe.Tools.ELang2CSharp/ELangFuncResolver.cs index d170286..7ee037e 100644 --- a/src/Newbe.Tools.ELang2CSharp/ELangFuncResolver.cs +++ b/src/Newbe.Tools.ELang2CSharp/ELangFuncResolver.cs @@ -32,7 +32,7 @@ IEnumerable IELangFuncResolver.Resolve(string content) var strArray = str1.Split(','); elangFunc.Name = strArray[3].Trim('"', ' '); elangFunc.ReturnType = strArray[1].Trim(); - elangFunc.Summary = strArray.Length > 4 ? strArray[5].Trim() : string.Empty; + elangFunc.Summary = strArray.Length > 5 ? strArray[5].Trim() : string.Empty; if (array1.Length > 1) { var elangParameterList = new List(); diff --git a/src/Newbe.Tools.ELang2CSharp/Newbe.Tools.ELang2CSharp.csproj b/src/Newbe.Tools.ELang2CSharp/Newbe.Tools.ELang2CSharp.csproj index f4d2e25..4aa483f 100644 --- a/src/Newbe.Tools.ELang2CSharp/Newbe.Tools.ELang2CSharp.csproj +++ b/src/Newbe.Tools.ELang2CSharp/Newbe.Tools.ELang2CSharp.csproj @@ -2,10 +2,20 @@ net461 + Exe - + + + + + + + + + + \ No newline at end of file diff --git a/src/Newbe.Tools.ELang2CSharp/Program.cs b/src/Newbe.Tools.ELang2CSharp/Program.cs index 3a3202c..7128ff6 100644 --- a/src/Newbe.Tools.ELang2CSharp/Program.cs +++ b/src/Newbe.Tools.ELang2CSharp/Program.cs @@ -1,10 +1,4 @@ -// Decompiled with JetBrains decompiler -// Type: Newbe.Tools.ELang2CSharp.Program -// Assembly: Newbe.Tools.ELang2CSharp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null -// MVID: 62AA77D5-9712-46DA-939A-E91A7F96C1CF -// Assembly location: D:\Codes\新建文件夹\Newbe.Tools.ELang2CSharp.exe - -using CommandLine; +using CommandLine; using System; using System.Collections.Generic; using System.IO; diff --git a/src/Newbe.Tools.ELang2CSharp/source/cqp.cs b/src/Newbe.Tools.ELang2CSharp/source/cqp.cs new file mode 100644 index 0000000..ecc3915 --- /dev/null +++ b/src/Newbe.Tools.ELang2CSharp/source/cqp.cs @@ -0,0 +1,1079 @@ +// generate at 2019/12/15 12:07:28 +00:00 +public interface ICqpApi{ +/// +/// 发送好友消息 +/// +/// +/// 目标帐号 +/// 消息内容 +/// +[Description("发送好友消息")]int CQ_sendPrivateMsg([Description("")] int AuthCode,[Description("目标帐号")] long Account,[Description("消息内容")] string msg); +/// +/// 发送群消息 +/// +/// +/// 目标群 +/// 消息内容 +/// +[Description("发送群消息")]int CQ_sendGroupMsg([Description("")] int AuthCode,[Description("目标群")] long 群号,[Description("消息内容")] string msg); +/// +/// 发送讨论组消息 +/// +/// +/// 目标讨论组 +/// 消息内容 +/// +[Description("发送讨论组消息")]int CQ_sendDiscussMsg([Description("")] int AuthCode,[Description("目标讨论组")] long 讨论组号,[Description("消息内容")] string msg); +/// +/// 撤回消息 +/// +/// +/// 消息ID +/// +[Description("撤回消息")]int CQ_deleteMsg([Description("")] int AuthCode,[Description("消息ID")] long MsgId); +/// +/// 发送赞 +/// +/// +/// 目标帐号 +/// 赞的次数,最多10次 +/// +[Description("发送赞")]int CQ_sendLikeV2([Description("")] int AuthCode,[Description("目标帐号")] long Account,[Description("赞的次数,最多10次")] int times); +/// +/// 取Cookies(慎用 +/// +/// +/// 目标域名,如 api.example.com +/// +[Description("取Cookies(慎用")]string CQ_getCookiesV2([Description("")] int AuthCode,[Description("目标域名,如 api.example.com")] string domain); +/// +/// 【已弃用】接收语音,并返回语音文件相对路径 +/// +/// +/// 收到消息中的语音文件名(file) +/// 应用所需的格式 +/// +[Description("【已弃用】接收语音,并返回语音文件相对路径")]string CQ_getRecord([Description("")] int AuthCode,[Description("收到消息中的语音文件名(file)")] string file,[Description("应用所需的格式")] string outformat); +/// +/// 接收语音,并返回语音文件绝对路径 +/// +/// +/// 收到消息中的语音文件名(file) +/// 应用所需的格式 +/// +[Description("接收语音,并返回语音文件绝对路径")]string CQ_getRecordV2([Description("")] int AuthCode,[Description("收到消息中的语音文件名(file)")] string file,[Description("应用所需的格式")] string outformat); +/// +/// 接收图片,并返回图片文件绝对路径 +/// +/// +/// 收到消息中的图片文件名(file) +/// +[Description("接收图片,并返回图片文件绝对路径")]string CQ_getImage([Description("")] int AuthCode,[Description("收到消息中的图片文件名(file)")] string file); +/// +/// 是否支持发送图片,返回大于 0 为支持,等于 0 为不支持 +/// +/// +/// +[Description("是否支持发送图片,返回大于 0 为支持,等于 0 为不支持")]int CQ_canSendImage([Description("")] int AuthCode); +/// +/// 是否支持发送语音,返回大于 0 为支持,等于 0 为不支持 +/// +/// +/// +[Description("是否支持发送语音,返回大于 0 为支持,等于 0 为不支持")]int CQ_canSendRecord([Description("")] int AuthCode); +/// +/// 取CsrfToken(慎用 +/// +/// +/// +[Description("取CsrfToken(慎用")]int CQ_getCsrfToken([Description("")] int AuthCode); +/// +/// 取应用目录 +/// +/// +/// +[Description("取应用目录")]string CQ_getAppDirectory([Description("")] int AuthCode); +/// +/// 取登录帐号 +/// +/// +/// +[Description("取登录帐号")]long CQ_getLoginQQ([Description("")] int AuthCode); +/// +/// 取登录昵称 +/// +/// +/// +[Description("取登录昵称")]string CQ_getLoginNick([Description("")] int AuthCode); +/// +/// 置群员移除 +/// +/// +/// 目标群 +/// 目标帐号 +/// 如果为真,则“不再接收此人加群申请”,请慎用 +/// +[Description("置群员移除")]int CQ_setGroupKick([Description("")] int AuthCode,[Description("目标群")] long 群号,[Description("目标帐号")] long Account,[Description("如果为真,则“不再接收此人加群申请”,请慎用")] bool 拒绝再加群); +/// +/// 置群员禁言 +/// +/// +/// 目标群 +/// 目标帐号 +/// 禁言的时间,单位为秒。如果要解禁,这里填写0 +/// +[Description("置群员禁言")]int CQ_setGroupBan([Description("")] int AuthCode,[Description("目标群")] long 群号,[Description("目标帐号")] long Account,[Description("禁言的时间,单位为秒。如果要解禁,这里填写0")] long 禁言时间); +/// +/// 置群管理员 +/// +/// +/// 目标群 +/// 被设置的帐号 +/// 真/设置管理员 假/取消管理员 +/// +[Description("置群管理员")]int CQ_setGroupAdmin([Description("")] int AuthCode,[Description("目标群")] long 群号,[Description("被设置的帐号")] long Account,[Description("真/设置管理员 假/取消管理员")] bool 成为管理员); +/// +/// 置群成员专属头衔 +/// +/// +/// 目标群 +/// 目标帐号 +/// 如果要删除,这里填空 +/// 专属头衔有效期,单位为秒。如果永久有效,这里填写-1 +/// +[Description("置群成员专属头衔")]int CQ_setGroupSpecialTitle([Description("")] int AuthCode,[Description("目标群")] long 群号,[Description("目标帐号")] long Account,[Description("如果要删除,这里填空")] string 头衔,[Description("专属头衔有效期,单位为秒。如果永久有效,这里填写-1")] long 过期时间); +/// +/// 置全群禁言 +/// +/// +/// 目标群 +/// 真/开启 假/关闭 +/// +[Description("置全群禁言")]int CQ_setGroupWholeBan([Description("")] int AuthCode,[Description("目标群")] long 群号,[Description("真/开启 假/关闭")] bool 开启禁言); +/// +/// 置匿名群员禁言 +/// +/// +/// 目标群 +/// 群消息事件收到的“匿名”参数 +/// 禁言的时间,单位为秒。不支持解禁 +/// +[Description("置匿名群员禁言")]int CQ_setGroupAnonymousBan([Description("")] int AuthCode,[Description("目标群")] long 群号,[Description("群消息事件收到的“匿名”参数")] string 匿名,[Description("禁言的时间,单位为秒。不支持解禁")] long 禁言时间); +/// +/// 置群匿名设置 +/// +/// +/// +/// +/// +[Description("置群匿名设置")]int CQ_setGroupAnonymous([Description("")] int AuthCode,[Description("")] long 群号,[Description("")] bool 开启匿名); +/// +/// 置群成员名片 +/// +/// +/// 目标群 +/// 被设置的帐号 +/// +/// +[Description("置群成员名片")]int CQ_setGroupCard([Description("")] int AuthCode,[Description("目标群")] long 群号,[Description("被设置的帐号")] long Account,[Description("")] string 新名片_昵称); +/// +/// 置群退出 +/// +/// +/// 目标群 +/// 真/解散本群(群主) 假/退出本群(管理、群成员) +/// +[Description("置群退出")]int CQ_setGroupLeave([Description("")] int AuthCode,[Description("目标群")] long 群号,[Description("真/解散本群(群主) 假/退出本群(管理、群成员)")] bool 是否解散); +/// +/// 置讨论组退出 +/// +/// +/// 目标讨论组 +/// +[Description("置讨论组退出")]int CQ_setDiscussLeave([Description("")] int AuthCode,[Description("目标讨论组")] long 讨论组号); +/// +/// 置好友添加请求 +/// +/// +/// 请求事件收到的“反馈标识”参数 +/// #请求_通过 或 #请求_拒绝 +/// 添加后的好友备注 +/// +[Description("置好友添加请求")]int CQ_setFriendAddRequest([Description("")] int AuthCode,[Description("请求事件收到的“反馈标识”参数")] string 请求反馈标识,[Description("#请求_通过 或 #请求_拒绝")] int 反馈类型,[Description("添加后的好友备注")] string 备注); +/// +/// 置群添加请求 +/// +/// +/// 请求事件收到的“反馈标识”参数 +/// 根据请求事件的子类型区分 #请求_群添加 或 #请求_群邀请 +/// #请求_通过 或 #请求_拒绝 +/// 操作理由,仅 #请求_群添加 且 #请求_拒绝 时可用 +/// +[Description("置群添加请求")]int CQ_setGroupAddRequestV2([Description("")] int AuthCode,[Description("请求事件收到的“反馈标识”参数")] string 请求反馈标识,[Description("根据请求事件的子类型区分 #请求_群添加 或 #请求_群邀请")] int 请求类型,[Description("#请求_通过 或 #请求_拒绝")] int 反馈类型,[Description("操作理由,仅 #请求_群添加 且 #请求_拒绝 时可用")] string 理由); +/// +/// 增加运行日志 +/// +/// +/// #Log_ 开头常量 +/// +/// +/// +[Description("增加运行日志")]int CQ_addLog([Description("")] int AuthCode,[Description("#Log_ 开头常量")] int 优先级,[Description("")] string 类型,[Description("")] string 内容); +/// +/// 置致命错误提示 +/// +/// +/// +/// +[Description("置致命错误提示")]int CQ_setFatal([Description("")] int AuthCode,[Description("")] string 错误信息); +/// +/// 取群成员信息(支持缓存) +/// +/// +/// 目标帐号所在群 +/// 目标帐号 +/// +/// +[Description("取群成员信息(支持缓存)")]string CQ_getGroupMemberInfoV2([Description("")] int AuthCode,[Description("目标帐号所在群")] long 群号,[Description("目标帐号")] long Account,[Description("")] bool 不使用缓存); +/// +/// 取群成员列表 +/// +/// +/// 目标帐号所在群 +/// +[Description("取群成员列表")]string CQ_getGroupMemberList([Description("")] int AuthCode,[Description("目标帐号所在群")] long 群号); +/// +/// 取群列表 +/// +/// +/// +[Description("取群列表")]string CQ_getGroupList([Description("")] int AuthCode); +/// +/// 取好友列表 +/// +/// +/// 保留参数,请传入“假” +/// +[Description("取好友列表")]string CQ_getFriendList([Description("")] int AuthCode,[Description("保留参数,请传入“假”")] bool reserved); +/// +/// 取陌生人信息(支持缓存) +/// +/// +/// 目标帐号 +/// +/// +[Description("取陌生人信息(支持缓存)")]string CQ_getStrangerInfo([Description("")] int AuthCode,[Description("目标帐号")] long Account,[Description("")] bool 不使用缓存); +/// +/// 取群信息(支持缓存) +/// +/// +/// 目标群 +/// +/// +[Description("取群信息(支持缓存)")]string CQ_getGroupInfo([Description("")] int AuthCode,[Description("目标群")] long 群号,[Description("")] bool 不使用缓存); +/// +/// +/// +/// 址 +/// 址 +/// +/// +/// 址 +/// 0 +/// 0 +/// +[Description("")]bool CryptStringToBinaryA([Description("址")] string pszString,[Description("址")] int cchString,[Description("")] int dwFlags,[Description("")] int pbBinary,[Description("址")] int pcbBinary,[Description("0")] int pdwSkip,[Description("0")] int pdwFlags); +/// +/// +/// +/// 址 +/// 址 +/// +/// 址 +/// 址 +/// 0 +/// 0 +/// +[Description("")]bool CryptStringToBinaryA([Description("址")] string pszString,[Description("址")] int cchString,[Description("")] int dwFlags,[Description("址")] byte[] pbBinary,[Description("址")] int pcbBinary,[Description("0")] int pdwSkip,[Description("0")] int pdwFlags); +} +public class CqpApi:ICqpApi{ + + /// +/// 发送好友消息 +/// +/// +/// 目标帐号 +/// 消息内容 +/// + + + int ICqpApi.CQ_sendPrivateMsg([Description("")] int AuthCode,[Description("目标帐号")] long Account,[Description("消息内容")] string msg) + =>NativeMethods.CQ_sendPrivateMsg(AuthCode,Account,msg); + /// +/// 发送群消息 +/// +/// +/// 目标群 +/// 消息内容 +/// + + + int ICqpApi.CQ_sendGroupMsg([Description("")] int AuthCode,[Description("目标群")] long 群号,[Description("消息内容")] string msg) + =>NativeMethods.CQ_sendGroupMsg(AuthCode,群号,msg); + /// +/// 发送讨论组消息 +/// +/// +/// 目标讨论组 +/// 消息内容 +/// + + + int ICqpApi.CQ_sendDiscussMsg([Description("")] int AuthCode,[Description("目标讨论组")] long 讨论组号,[Description("消息内容")] string msg) + =>NativeMethods.CQ_sendDiscussMsg(AuthCode,讨论组号,msg); + /// +/// 撤回消息 +/// +/// +/// 消息ID +/// + + + int ICqpApi.CQ_deleteMsg([Description("")] int AuthCode,[Description("消息ID")] long MsgId) + =>NativeMethods.CQ_deleteMsg(AuthCode,MsgId); + /// +/// 发送赞 +/// +/// +/// 目标帐号 +/// 赞的次数,最多10次 +/// + + + int ICqpApi.CQ_sendLikeV2([Description("")] int AuthCode,[Description("目标帐号")] long Account,[Description("赞的次数,最多10次")] int times) + =>NativeMethods.CQ_sendLikeV2(AuthCode,Account,times); + /// +/// 取Cookies(慎用 +/// +/// +/// 目标域名,如 api.example.com +/// + + + string ICqpApi.CQ_getCookiesV2([Description("")] int AuthCode,[Description("目标域名,如 api.example.com")] string domain) + =>NativeMethods.CQ_getCookiesV2(AuthCode,domain); + /// +/// 【已弃用】接收语音,并返回语音文件相对路径 +/// +/// +/// 收到消息中的语音文件名(file) +/// 应用所需的格式 +/// + + + string ICqpApi.CQ_getRecord([Description("")] int AuthCode,[Description("收到消息中的语音文件名(file)")] string file,[Description("应用所需的格式")] string outformat) + =>NativeMethods.CQ_getRecord(AuthCode,file,outformat); + /// +/// 接收语音,并返回语音文件绝对路径 +/// +/// +/// 收到消息中的语音文件名(file) +/// 应用所需的格式 +/// + + + string ICqpApi.CQ_getRecordV2([Description("")] int AuthCode,[Description("收到消息中的语音文件名(file)")] string file,[Description("应用所需的格式")] string outformat) + =>NativeMethods.CQ_getRecordV2(AuthCode,file,outformat); + /// +/// 接收图片,并返回图片文件绝对路径 +/// +/// +/// 收到消息中的图片文件名(file) +/// + + + string ICqpApi.CQ_getImage([Description("")] int AuthCode,[Description("收到消息中的图片文件名(file)")] string file) + =>NativeMethods.CQ_getImage(AuthCode,file); + /// +/// 是否支持发送图片,返回大于 0 为支持,等于 0 为不支持 +/// +/// +/// + + + int ICqpApi.CQ_canSendImage([Description("")] int AuthCode) + =>NativeMethods.CQ_canSendImage(AuthCode); + /// +/// 是否支持发送语音,返回大于 0 为支持,等于 0 为不支持 +/// +/// +/// + + + int ICqpApi.CQ_canSendRecord([Description("")] int AuthCode) + =>NativeMethods.CQ_canSendRecord(AuthCode); + /// +/// 取CsrfToken(慎用 +/// +/// +/// + + + int ICqpApi.CQ_getCsrfToken([Description("")] int AuthCode) + =>NativeMethods.CQ_getCsrfToken(AuthCode); + /// +/// 取应用目录 +/// +/// +/// + + + string ICqpApi.CQ_getAppDirectory([Description("")] int AuthCode) + =>NativeMethods.CQ_getAppDirectory(AuthCode); + /// +/// 取登录帐号 +/// +/// +/// + + + long ICqpApi.CQ_getLoginQQ([Description("")] int AuthCode) + =>NativeMethods.CQ_getLoginQQ(AuthCode); + /// +/// 取登录昵称 +/// +/// +/// + + + string ICqpApi.CQ_getLoginNick([Description("")] int AuthCode) + =>NativeMethods.CQ_getLoginNick(AuthCode); + /// +/// 置群员移除 +/// +/// +/// 目标群 +/// 目标帐号 +/// 如果为真,则“不再接收此人加群申请”,请慎用 +/// + + + int ICqpApi.CQ_setGroupKick([Description("")] int AuthCode,[Description("目标群")] long 群号,[Description("目标帐号")] long Account,[Description("如果为真,则“不再接收此人加群申请”,请慎用")] bool 拒绝再加群) + =>NativeMethods.CQ_setGroupKick(AuthCode,群号,Account,拒绝再加群); + /// +/// 置群员禁言 +/// +/// +/// 目标群 +/// 目标帐号 +/// 禁言的时间,单位为秒。如果要解禁,这里填写0 +/// + + + int ICqpApi.CQ_setGroupBan([Description("")] int AuthCode,[Description("目标群")] long 群号,[Description("目标帐号")] long Account,[Description("禁言的时间,单位为秒。如果要解禁,这里填写0")] long 禁言时间) + =>NativeMethods.CQ_setGroupBan(AuthCode,群号,Account,禁言时间); + /// +/// 置群管理员 +/// +/// +/// 目标群 +/// 被设置的帐号 +/// 真/设置管理员 假/取消管理员 +/// + + + int ICqpApi.CQ_setGroupAdmin([Description("")] int AuthCode,[Description("目标群")] long 群号,[Description("被设置的帐号")] long Account,[Description("真/设置管理员 假/取消管理员")] bool 成为管理员) + =>NativeMethods.CQ_setGroupAdmin(AuthCode,群号,Account,成为管理员); + /// +/// 置群成员专属头衔 +/// +/// +/// 目标群 +/// 目标帐号 +/// 如果要删除,这里填空 +/// 专属头衔有效期,单位为秒。如果永久有效,这里填写-1 +/// + + + int ICqpApi.CQ_setGroupSpecialTitle([Description("")] int AuthCode,[Description("目标群")] long 群号,[Description("目标帐号")] long Account,[Description("如果要删除,这里填空")] string 头衔,[Description("专属头衔有效期,单位为秒。如果永久有效,这里填写-1")] long 过期时间) + =>NativeMethods.CQ_setGroupSpecialTitle(AuthCode,群号,Account,头衔,过期时间); + /// +/// 置全群禁言 +/// +/// +/// 目标群 +/// 真/开启 假/关闭 +/// + + + int ICqpApi.CQ_setGroupWholeBan([Description("")] int AuthCode,[Description("目标群")] long 群号,[Description("真/开启 假/关闭")] bool 开启禁言) + =>NativeMethods.CQ_setGroupWholeBan(AuthCode,群号,开启禁言); + /// +/// 置匿名群员禁言 +/// +/// +/// 目标群 +/// 群消息事件收到的“匿名”参数 +/// 禁言的时间,单位为秒。不支持解禁 +/// + + + int ICqpApi.CQ_setGroupAnonymousBan([Description("")] int AuthCode,[Description("目标群")] long 群号,[Description("群消息事件收到的“匿名”参数")] string 匿名,[Description("禁言的时间,单位为秒。不支持解禁")] long 禁言时间) + =>NativeMethods.CQ_setGroupAnonymousBan(AuthCode,群号,匿名,禁言时间); + /// +/// 置群匿名设置 +/// +/// +/// +/// +/// + + + int ICqpApi.CQ_setGroupAnonymous([Description("")] int AuthCode,[Description("")] long 群号,[Description("")] bool 开启匿名) + =>NativeMethods.CQ_setGroupAnonymous(AuthCode,群号,开启匿名); + /// +/// 置群成员名片 +/// +/// +/// 目标群 +/// 被设置的帐号 +/// +/// + + + int ICqpApi.CQ_setGroupCard([Description("")] int AuthCode,[Description("目标群")] long 群号,[Description("被设置的帐号")] long Account,[Description("")] string 新名片_昵称) + =>NativeMethods.CQ_setGroupCard(AuthCode,群号,Account,新名片_昵称); + /// +/// 置群退出 +/// +/// +/// 目标群 +/// 真/解散本群(群主) 假/退出本群(管理、群成员) +/// + + + int ICqpApi.CQ_setGroupLeave([Description("")] int AuthCode,[Description("目标群")] long 群号,[Description("真/解散本群(群主) 假/退出本群(管理、群成员)")] bool 是否解散) + =>NativeMethods.CQ_setGroupLeave(AuthCode,群号,是否解散); + /// +/// 置讨论组退出 +/// +/// +/// 目标讨论组 +/// + + + int ICqpApi.CQ_setDiscussLeave([Description("")] int AuthCode,[Description("目标讨论组")] long 讨论组号) + =>NativeMethods.CQ_setDiscussLeave(AuthCode,讨论组号); + /// +/// 置好友添加请求 +/// +/// +/// 请求事件收到的“反馈标识”参数 +/// #请求_通过 或 #请求_拒绝 +/// 添加后的好友备注 +/// + + + int ICqpApi.CQ_setFriendAddRequest([Description("")] int AuthCode,[Description("请求事件收到的“反馈标识”参数")] string 请求反馈标识,[Description("#请求_通过 或 #请求_拒绝")] int 反馈类型,[Description("添加后的好友备注")] string 备注) + =>NativeMethods.CQ_setFriendAddRequest(AuthCode,请求反馈标识,反馈类型,备注); + /// +/// 置群添加请求 +/// +/// +/// 请求事件收到的“反馈标识”参数 +/// 根据请求事件的子类型区分 #请求_群添加 或 #请求_群邀请 +/// #请求_通过 或 #请求_拒绝 +/// 操作理由,仅 #请求_群添加 且 #请求_拒绝 时可用 +/// + + + int ICqpApi.CQ_setGroupAddRequestV2([Description("")] int AuthCode,[Description("请求事件收到的“反馈标识”参数")] string 请求反馈标识,[Description("根据请求事件的子类型区分 #请求_群添加 或 #请求_群邀请")] int 请求类型,[Description("#请求_通过 或 #请求_拒绝")] int 反馈类型,[Description("操作理由,仅 #请求_群添加 且 #请求_拒绝 时可用")] string 理由) + =>NativeMethods.CQ_setGroupAddRequestV2(AuthCode,请求反馈标识,请求类型,反馈类型,理由); + /// +/// 增加运行日志 +/// +/// +/// #Log_ 开头常量 +/// +/// +/// + + + int ICqpApi.CQ_addLog([Description("")] int AuthCode,[Description("#Log_ 开头常量")] int 优先级,[Description("")] string 类型,[Description("")] string 内容) + =>NativeMethods.CQ_addLog(AuthCode,优先级,类型,内容); + /// +/// 置致命错误提示 +/// +/// +/// +/// + + + int ICqpApi.CQ_setFatal([Description("")] int AuthCode,[Description("")] string 错误信息) + =>NativeMethods.CQ_setFatal(AuthCode,错误信息); + /// +/// 取群成员信息(支持缓存) +/// +/// +/// 目标帐号所在群 +/// 目标帐号 +/// +/// + + + string ICqpApi.CQ_getGroupMemberInfoV2([Description("")] int AuthCode,[Description("目标帐号所在群")] long 群号,[Description("目标帐号")] long Account,[Description("")] bool 不使用缓存) + =>NativeMethods.CQ_getGroupMemberInfoV2(AuthCode,群号,Account,不使用缓存); + /// +/// 取群成员列表 +/// +/// +/// 目标帐号所在群 +/// + + + string ICqpApi.CQ_getGroupMemberList([Description("")] int AuthCode,[Description("目标帐号所在群")] long 群号) + =>NativeMethods.CQ_getGroupMemberList(AuthCode,群号); + /// +/// 取群列表 +/// +/// +/// + + + string ICqpApi.CQ_getGroupList([Description("")] int AuthCode) + =>NativeMethods.CQ_getGroupList(AuthCode); + /// +/// 取好友列表 +/// +/// +/// 保留参数,请传入“假” +/// + + + string ICqpApi.CQ_getFriendList([Description("")] int AuthCode,[Description("保留参数,请传入“假”")] bool reserved) + =>NativeMethods.CQ_getFriendList(AuthCode,reserved); + /// +/// 取陌生人信息(支持缓存) +/// +/// +/// 目标帐号 +/// +/// + + + string ICqpApi.CQ_getStrangerInfo([Description("")] int AuthCode,[Description("目标帐号")] long Account,[Description("")] bool 不使用缓存) + =>NativeMethods.CQ_getStrangerInfo(AuthCode,Account,不使用缓存); + /// +/// 取群信息(支持缓存) +/// +/// +/// 目标群 +/// +/// + + + string ICqpApi.CQ_getGroupInfo([Description("")] int AuthCode,[Description("目标群")] long 群号,[Description("")] bool 不使用缓存) + =>NativeMethods.CQ_getGroupInfo(AuthCode,群号,不使用缓存); + /// +/// +/// +/// 址 +/// 址 +/// +/// +/// 址 +/// 0 +/// 0 +/// + + + bool ICqpApi.CryptStringToBinaryA([Description("址")] string pszString,[Description("址")] int cchString,[Description("")] int dwFlags,[Description("")] int pbBinary,[Description("址")] int pcbBinary,[Description("0")] int pdwSkip,[Description("0")] int pdwFlags) + =>NativeMethods.CryptStringToBinaryA(pszString,cchString,dwFlags,pbBinary,pcbBinary,pdwSkip,pdwFlags); + /// +/// +/// +/// 址 +/// 址 +/// +/// 址 +/// 址 +/// 0 +/// 0 +/// + + + bool ICqpApi.CryptStringToBinaryA([Description("址")] string pszString,[Description("址")] int cchString,[Description("")] int dwFlags,[Description("址")] byte[] pbBinary,[Description("址")] int pcbBinary,[Description("0")] int pdwSkip,[Description("0")] int pdwFlags) + =>NativeMethods.CryptStringToBinaryA(pszString,cchString,dwFlags,pbBinary,pcbBinary,pdwSkip,pdwFlags); + private static class NativeMethods + { + /// +/// 发送好友消息 +/// +/// +/// 目标帐号 +/// 消息内容 +/// + + [DllImport("CQP.dll")] + public static extern int CQ_sendPrivateMsg([Description("")] int AuthCode,[Description("目标帐号")] long Account,[Description("消息内容")] string msg); + /// +/// 发送群消息 +/// +/// +/// 目标群 +/// 消息内容 +/// + + [DllImport("CQP.dll")] + public static extern int CQ_sendGroupMsg([Description("")] int AuthCode,[Description("目标群")] long 群号,[Description("消息内容")] string msg); + /// +/// 发送讨论组消息 +/// +/// +/// 目标讨论组 +/// 消息内容 +/// + + [DllImport("CQP.dll")] + public static extern int CQ_sendDiscussMsg([Description("")] int AuthCode,[Description("目标讨论组")] long 讨论组号,[Description("消息内容")] string msg); + /// +/// 撤回消息 +/// +/// +/// 消息ID +/// + + [DllImport("CQP.dll")] + public static extern int CQ_deleteMsg([Description("")] int AuthCode,[Description("消息ID")] long MsgId); + /// +/// 发送赞 +/// +/// +/// 目标帐号 +/// 赞的次数,最多10次 +/// + + [DllImport("CQP.dll")] + public static extern int CQ_sendLikeV2([Description("")] int AuthCode,[Description("目标帐号")] long Account,[Description("赞的次数,最多10次")] int times); + /// +/// 取Cookies(慎用 +/// +/// +/// 目标域名,如 api.example.com +/// + + [DllImport("CQP.dll")] + public static extern string CQ_getCookiesV2([Description("")] int AuthCode,[Description("目标域名,如 api.example.com")] string domain); + /// +/// 【已弃用】接收语音,并返回语音文件相对路径 +/// +/// +/// 收到消息中的语音文件名(file) +/// 应用所需的格式 +/// + + [DllImport("CQP.dll")] + public static extern string CQ_getRecord([Description("")] int AuthCode,[Description("收到消息中的语音文件名(file)")] string file,[Description("应用所需的格式")] string outformat); + /// +/// 接收语音,并返回语音文件绝对路径 +/// +/// +/// 收到消息中的语音文件名(file) +/// 应用所需的格式 +/// + + [DllImport("CQP.dll")] + public static extern string CQ_getRecordV2([Description("")] int AuthCode,[Description("收到消息中的语音文件名(file)")] string file,[Description("应用所需的格式")] string outformat); + /// +/// 接收图片,并返回图片文件绝对路径 +/// +/// +/// 收到消息中的图片文件名(file) +/// + + [DllImport("CQP.dll")] + public static extern string CQ_getImage([Description("")] int AuthCode,[Description("收到消息中的图片文件名(file)")] string file); + /// +/// 是否支持发送图片,返回大于 0 为支持,等于 0 为不支持 +/// +/// +/// + + [DllImport("CQP.dll")] + public static extern int CQ_canSendImage([Description("")] int AuthCode); + /// +/// 是否支持发送语音,返回大于 0 为支持,等于 0 为不支持 +/// +/// +/// + + [DllImport("CQP.dll")] + public static extern int CQ_canSendRecord([Description("")] int AuthCode); + /// +/// 取CsrfToken(慎用 +/// +/// +/// + + [DllImport("CQP.dll")] + public static extern int CQ_getCsrfToken([Description("")] int AuthCode); + /// +/// 取应用目录 +/// +/// +/// + + [DllImport("CQP.dll")] + public static extern string CQ_getAppDirectory([Description("")] int AuthCode); + /// +/// 取登录帐号 +/// +/// +/// + + [DllImport("CQP.dll")] + public static extern long CQ_getLoginQQ([Description("")] int AuthCode); + /// +/// 取登录昵称 +/// +/// +/// + + [DllImport("CQP.dll")] + public static extern string CQ_getLoginNick([Description("")] int AuthCode); + /// +/// 置群员移除 +/// +/// +/// 目标群 +/// 目标帐号 +/// 如果为真,则“不再接收此人加群申请”,请慎用 +/// + + [DllImport("CQP.dll")] + public static extern int CQ_setGroupKick([Description("")] int AuthCode,[Description("目标群")] long 群号,[Description("目标帐号")] long Account,[Description("如果为真,则“不再接收此人加群申请”,请慎用")] bool 拒绝再加群); + /// +/// 置群员禁言 +/// +/// +/// 目标群 +/// 目标帐号 +/// 禁言的时间,单位为秒。如果要解禁,这里填写0 +/// + + [DllImport("CQP.dll")] + public static extern int CQ_setGroupBan([Description("")] int AuthCode,[Description("目标群")] long 群号,[Description("目标帐号")] long Account,[Description("禁言的时间,单位为秒。如果要解禁,这里填写0")] long 禁言时间); + /// +/// 置群管理员 +/// +/// +/// 目标群 +/// 被设置的帐号 +/// 真/设置管理员 假/取消管理员 +/// + + [DllImport("CQP.dll")] + public static extern int CQ_setGroupAdmin([Description("")] int AuthCode,[Description("目标群")] long 群号,[Description("被设置的帐号")] long Account,[Description("真/设置管理员 假/取消管理员")] bool 成为管理员); + /// +/// 置群成员专属头衔 +/// +/// +/// 目标群 +/// 目标帐号 +/// 如果要删除,这里填空 +/// 专属头衔有效期,单位为秒。如果永久有效,这里填写-1 +/// + + [DllImport("CQP.dll")] + public static extern int CQ_setGroupSpecialTitle([Description("")] int AuthCode,[Description("目标群")] long 群号,[Description("目标帐号")] long Account,[Description("如果要删除,这里填空")] string 头衔,[Description("专属头衔有效期,单位为秒。如果永久有效,这里填写-1")] long 过期时间); + /// +/// 置全群禁言 +/// +/// +/// 目标群 +/// 真/开启 假/关闭 +/// + + [DllImport("CQP.dll")] + public static extern int CQ_setGroupWholeBan([Description("")] int AuthCode,[Description("目标群")] long 群号,[Description("真/开启 假/关闭")] bool 开启禁言); + /// +/// 置匿名群员禁言 +/// +/// +/// 目标群 +/// 群消息事件收到的“匿名”参数 +/// 禁言的时间,单位为秒。不支持解禁 +/// + + [DllImport("CQP.dll")] + public static extern int CQ_setGroupAnonymousBan([Description("")] int AuthCode,[Description("目标群")] long 群号,[Description("群消息事件收到的“匿名”参数")] string 匿名,[Description("禁言的时间,单位为秒。不支持解禁")] long 禁言时间); + /// +/// 置群匿名设置 +/// +/// +/// +/// +/// + + [DllImport("CQP.dll")] + public static extern int CQ_setGroupAnonymous([Description("")] int AuthCode,[Description("")] long 群号,[Description("")] bool 开启匿名); + /// +/// 置群成员名片 +/// +/// +/// 目标群 +/// 被设置的帐号 +/// +/// + + [DllImport("CQP.dll")] + public static extern int CQ_setGroupCard([Description("")] int AuthCode,[Description("目标群")] long 群号,[Description("被设置的帐号")] long Account,[Description("")] string 新名片_昵称); + /// +/// 置群退出 +/// +/// +/// 目标群 +/// 真/解散本群(群主) 假/退出本群(管理、群成员) +/// + + [DllImport("CQP.dll")] + public static extern int CQ_setGroupLeave([Description("")] int AuthCode,[Description("目标群")] long 群号,[Description("真/解散本群(群主) 假/退出本群(管理、群成员)")] bool 是否解散); + /// +/// 置讨论组退出 +/// +/// +/// 目标讨论组 +/// + + [DllImport("CQP.dll")] + public static extern int CQ_setDiscussLeave([Description("")] int AuthCode,[Description("目标讨论组")] long 讨论组号); + /// +/// 置好友添加请求 +/// +/// +/// 请求事件收到的“反馈标识”参数 +/// #请求_通过 或 #请求_拒绝 +/// 添加后的好友备注 +/// + + [DllImport("CQP.dll")] + public static extern int CQ_setFriendAddRequest([Description("")] int AuthCode,[Description("请求事件收到的“反馈标识”参数")] string 请求反馈标识,[Description("#请求_通过 或 #请求_拒绝")] int 反馈类型,[Description("添加后的好友备注")] string 备注); + /// +/// 置群添加请求 +/// +/// +/// 请求事件收到的“反馈标识”参数 +/// 根据请求事件的子类型区分 #请求_群添加 或 #请求_群邀请 +/// #请求_通过 或 #请求_拒绝 +/// 操作理由,仅 #请求_群添加 且 #请求_拒绝 时可用 +/// + + [DllImport("CQP.dll")] + public static extern int CQ_setGroupAddRequestV2([Description("")] int AuthCode,[Description("请求事件收到的“反馈标识”参数")] string 请求反馈标识,[Description("根据请求事件的子类型区分 #请求_群添加 或 #请求_群邀请")] int 请求类型,[Description("#请求_通过 或 #请求_拒绝")] int 反馈类型,[Description("操作理由,仅 #请求_群添加 且 #请求_拒绝 时可用")] string 理由); + /// +/// 增加运行日志 +/// +/// +/// #Log_ 开头常量 +/// +/// +/// + + [DllImport("CQP.dll")] + public static extern int CQ_addLog([Description("")] int AuthCode,[Description("#Log_ 开头常量")] int 优先级,[Description("")] string 类型,[Description("")] string 内容); + /// +/// 置致命错误提示 +/// +/// +/// +/// + + [DllImport("CQP.dll")] + public static extern int CQ_setFatal([Description("")] int AuthCode,[Description("")] string 错误信息); + /// +/// 取群成员信息(支持缓存) +/// +/// +/// 目标帐号所在群 +/// 目标帐号 +/// +/// + + [DllImport("CQP.dll")] + public static extern string CQ_getGroupMemberInfoV2([Description("")] int AuthCode,[Description("目标帐号所在群")] long 群号,[Description("目标帐号")] long Account,[Description("")] bool 不使用缓存); + /// +/// 取群成员列表 +/// +/// +/// 目标帐号所在群 +/// + + [DllImport("CQP.dll")] + public static extern string CQ_getGroupMemberList([Description("")] int AuthCode,[Description("目标帐号所在群")] long 群号); + /// +/// 取群列表 +/// +/// +/// + + [DllImport("CQP.dll")] + public static extern string CQ_getGroupList([Description("")] int AuthCode); + /// +/// 取好友列表 +/// +/// +/// 保留参数,请传入“假” +/// + + [DllImport("CQP.dll")] + public static extern string CQ_getFriendList([Description("")] int AuthCode,[Description("保留参数,请传入“假”")] bool reserved); + /// +/// 取陌生人信息(支持缓存) +/// +/// +/// 目标帐号 +/// +/// + + [DllImport("CQP.dll")] + public static extern string CQ_getStrangerInfo([Description("")] int AuthCode,[Description("目标帐号")] long Account,[Description("")] bool 不使用缓存); + /// +/// 取群信息(支持缓存) +/// +/// +/// 目标群 +/// +/// + + [DllImport("CQP.dll")] + public static extern string CQ_getGroupInfo([Description("")] int AuthCode,[Description("目标群")] long 群号,[Description("")] bool 不使用缓存); + /// +/// +/// +/// 址 +/// 址 +/// +/// +/// 址 +/// 0 +/// 0 +/// + + [DllImport("CQP.dll")] + public static extern bool CryptStringToBinaryA([Description("址")] string pszString,[Description("址")] int cchString,[Description("")] int dwFlags,[Description("")] int pbBinary,[Description("址")] int pcbBinary,[Description("0")] int pdwSkip,[Description("0")] int pdwFlags); + /// +/// +/// +/// 址 +/// 址 +/// +/// 址 +/// 址 +/// 0 +/// 0 +/// + + [DllImport("CQP.dll")] + public static extern bool CryptStringToBinaryA([Description("址")] string pszString,[Description("址")] int cchString,[Description("")] int dwFlags,[Description("址")] byte[] pbBinary,[Description("址")] int pcbBinary,[Description("0")] int pdwSkip,[Description("0")] int pdwFlags); + } +} diff --git a/src/Newbe.Tools.ELang2CSharp/source/cqp.txt b/src/Newbe.Tools.ELang2CSharp/source/cqp.txt new file mode 100644 index 0000000..df81255 --- /dev/null +++ b/src/Newbe.Tools.ELang2CSharp/source/cqp.txt @@ -0,0 +1,167 @@ +.版本 2 + +.DLL命令 CQ_sendPrivateMsg, 整数型, "CQP.dll", "CQ_sendPrivateMsg", , 发送好友消息 + .参数 AuthCode, 整数型 + .参数 Account, 长整数型, , 目标帐号 + .参数 msg, 文本型, , 消息内容 + +.DLL命令 CQ_sendGroupMsg, 整数型, "CQP.dll", "CQ_sendGroupMsg", , 发送群消息 + .参数 AuthCode, 整数型 + .参数 群号, 长整数型, , 目标群 + .参数 msg, 文本型, , 消息内容 + +.DLL命令 CQ_sendDiscussMsg, 整数型, "CQP.dll", "CQ_sendDiscussMsg", , 发送讨论组消息 + .参数 AuthCode, 整数型 + .参数 讨论组号, 长整数型, , 目标讨论组 + .参数 msg, 文本型, , 消息内容 + +.DLL命令 CQ_deleteMsg, 整数型, "CQP.dll", "CQ_deleteMsg", , 撤回消息 + .参数 AuthCode, 整数型 + .参数 MsgId, 长整数型, , 消息ID + +.DLL命令 CQ_sendLikeV2, 整数型, "CQP.dll", "CQ_sendLikeV2", , 发送赞 + .参数 AuthCode, 整数型 + .参数 Account, 长整数型, , 目标帐号 + .参数 times, 整数型, , 赞的次数,最多10次 + +.DLL命令 CQ_getCookiesV2, 文本型, "CQP.dll", "CQ_getCookiesV2", , 取Cookies(慎用,此接口需要严格授权) + .参数 AuthCode, 整数型 + .参数 domain, 文本型, , 目标域名,如 api.example.com + +.DLL命令 CQ_getRecord, 文本型, "CQP.dll", "CQ_getRecord", , 【已弃用】接收语音,并返回语音文件相对路径 + .参数 AuthCode, 整数型 + .参数 file, 文本型, , 收到消息中的语音文件名(file) + .参数 outformat, 文本型, , 应用所需的格式 + +.DLL命令 CQ_getRecordV2, 文本型, "CQP.dll", "CQ_getRecordV2", , 接收语音,并返回语音文件绝对路径 + .参数 AuthCode, 整数型 + .参数 file, 文本型, , 收到消息中的语音文件名(file) + .参数 outformat, 文本型, , 应用所需的格式 + +.DLL命令 CQ_getImage, 文本型, "CQP.dll", "CQ_getImage", , 接收图片,并返回图片文件绝对路径 + .参数 AuthCode, 整数型 + .参数 file, 文本型, , 收到消息中的图片文件名(file) + +.DLL命令 CQ_canSendImage, 整数型, "CQP.dll", "CQ_canSendImage", , 是否支持发送图片,返回大于 0 为支持,等于 0 为不支持 + .参数 AuthCode, 整数型 + +.DLL命令 CQ_canSendRecord, 整数型, "CQP.dll", "CQ_canSendRecord", , 是否支持发送语音,返回大于 0 为支持,等于 0 为不支持 + .参数 AuthCode, 整数型 + +.DLL命令 CQ_getCsrfToken, 整数型, "CQP.dll", "CQ_getCsrfToken", , 取CsrfToken(慎用,此接口需要严格授权) + .参数 AuthCode, 整数型 + +.DLL命令 CQ_getAppDirectory, 文本型, "CQP.dll", "CQ_getAppDirectory", , 取应用目录 + .参数 AuthCode, 整数型 + +.DLL命令 CQ_getLoginQQ, 长整数型, "CQP.dll", "CQ_getLoginQQ", , 取登录帐号 + .参数 AuthCode, 整数型 + +.DLL命令 CQ_getLoginNick, 文本型, "CQP.dll", "CQ_getLoginNick", , 取登录昵称 + .参数 AuthCode, 整数型 + +.DLL命令 CQ_setGroupKick, 整数型, "CQP.dll", "CQ_setGroupKick", , 置群员移除 + .参数 AuthCode, 整数型 + .参数 群号, 长整数型, , 目标群 + .参数 Account, 长整数型, , 目标帐号 + .参数 拒绝再加群, 逻辑型, , 如果为真,则“不再接收此人加群申请”,请慎用 + +.DLL命令 CQ_setGroupBan, 整数型, "CQP.dll", "CQ_setGroupBan", , 置群员禁言 + .参数 AuthCode, 整数型 + .参数 群号, 长整数型, , 目标群 + .参数 Account, 长整数型, , 目标帐号 + .参数 禁言时间, 长整数型, , 禁言的时间,单位为秒。如果要解禁,这里填写0 + +.DLL命令 CQ_setGroupAdmin, 整数型, "CQP.dll", "CQ_setGroupAdmin", , 置群管理员 + .参数 AuthCode, 整数型 + .参数 群号, 长整数型, , 目标群 + .参数 Account, 长整数型, , 被设置的帐号 + .参数 成为管理员, 逻辑型, , 真/设置管理员 假/取消管理员 + +.DLL命令 CQ_setGroupSpecialTitle, 整数型, "CQP.dll", "CQ_setGroupSpecialTitle", , 置群成员专属头衔 + .参数 AuthCode, 整数型 + .参数 群号, 长整数型, , 目标群 + .参数 Account, 长整数型, , 目标帐号 + .参数 头衔, 文本型, , 如果要删除,这里填空 + .参数 过期时间, 长整数型, , 专属头衔有效期,单位为秒。如果永久有效,这里填写-1 + +.DLL命令 CQ_setGroupWholeBan, 整数型, "CQP.dll", "CQ_setGroupWholeBan", , 置全群禁言 + .参数 AuthCode, 整数型 + .参数 群号, 长整数型, , 目标群 + .参数 开启禁言, 逻辑型, , 真/开启 假/关闭 + +.DLL命令 CQ_setGroupAnonymousBan, 整数型, "CQP.dll", "CQ_setGroupAnonymousBan", , 置匿名群员禁言 + .参数 AuthCode, 整数型 + .参数 群号, 长整数型, , 目标群 + .参数 匿名, 文本型, , 群消息事件收到的“匿名”参数 + .参数 禁言时间, 长整数型, , 禁言的时间,单位为秒。不支持解禁 + +.DLL命令 CQ_setGroupAnonymous, 整数型, "CQP.dll", "CQ_setGroupAnonymous", , 置群匿名设置 + .参数 AuthCode, 整数型 + .参数 群号, 长整数型 + .参数 开启匿名, 逻辑型 + +.DLL命令 CQ_setGroupCard, 整数型, "CQP.dll", "CQ_setGroupCard", , 置群成员名片 + .参数 AuthCode, 整数型 + .参数 群号, 长整数型, , 目标群 + .参数 Account, 长整数型, , 被设置的帐号 + .参数 新名片_昵称, 文本型 + +.DLL命令 CQ_setGroupLeave, 整数型, "CQP.dll", "CQ_setGroupLeave", , 置群退出 + .参数 AuthCode, 整数型 + .参数 群号, 长整数型, , 目标群 + .参数 是否解散, 逻辑型, , 真/解散本群(群主) 假/退出本群(管理、群成员) + +.DLL命令 CQ_setDiscussLeave, 整数型, "CQP.dll", "CQ_setDiscussLeave", , 置讨论组退出 + .参数 AuthCode, 整数型 + .参数 讨论组号, 长整数型, , 目标讨论组 + +.DLL命令 CQ_setFriendAddRequest, 整数型, "CQP.dll", "CQ_setFriendAddRequest", , 置好友添加请求 + .参数 AuthCode, 整数型 + .参数 请求反馈标识, 文本型, , 请求事件收到的“反馈标识”参数 + .参数 反馈类型, 整数型, , #请求_通过 或 #请求_拒绝 + .参数 备注, 文本型, , 添加后的好友备注 + +.DLL命令 CQ_setGroupAddRequestV2, 整数型, "CQP.dll", "CQ_setGroupAddRequestV2", , 置群添加请求 + .参数 AuthCode, 整数型 + .参数 请求反馈标识, 文本型, , 请求事件收到的“反馈标识”参数 + .参数 请求类型, 整数型, , 根据请求事件的子类型区分 #请求_群添加 或 #请求_群邀请 + .参数 反馈类型, 整数型, , #请求_通过 或 #请求_拒绝 + .参数 理由, 文本型, , 操作理由,仅 #请求_群添加 且 #请求_拒绝 时可用 + +.DLL命令 CQ_addLog, 整数型, "CQP.dll", "CQ_addLog", , 增加运行日志 + .参数 AuthCode, 整数型 + .参数 优先级, 整数型, , #Log_ 开头常量 + .参数 类型, 文本型 + .参数 内容, 文本型 + +.DLL命令 CQ_setFatal, 整数型, "CQP.dll", "CQ_setFatal", , 置致命错误提示 + .参数 AuthCode, 整数型 + .参数 错误信息, 文本型 + +.DLL命令 CQ_getGroupMemberInfoV2, 文本型, "CQP.dll", "CQ_getGroupMemberInfoV2", , 取群成员信息(支持缓存) + .参数 AuthCode, 整数型 + .参数 群号, 长整数型, , 目标帐号所在群 + .参数 Account, 长整数型, , 目标帐号 + .参数 不使用缓存, 逻辑型 + +.DLL命令 CQ_getGroupMemberList, 文本型, "CQP.dll", "CQ_getGroupMemberList", , 取群成员列表 + .参数 AuthCode, 整数型 + .参数 群号, 长整数型, , 目标帐号所在群 + +.DLL命令 CQ_getGroupList, 文本型, "CQP.dll", "CQ_getGroupList", , 取群列表 + .参数 AuthCode, 整数型 + +.DLL命令 CQ_getFriendList, 文本型, "CQP.dll", "CQ_getFriendList", , 取好友列表 + .参数 AuthCode, 整数型 + .参数 reserved, 逻辑型, , 保留参数,请传入“假” + +.DLL命令 CQ_getStrangerInfo, 文本型, "CQP.dll", "CQ_getStrangerInfo", , 取陌生人信息(支持缓存) + .参数 AuthCode, 整数型 + .参数 Account, 长整数型, , 目标帐号 + .参数 不使用缓存, 逻辑型 + +.DLL命令 CQ_getGroupInfo, 文本型, "CQP.dll", "CQ_getGroupInfo", , 取群信息(支持缓存) + .参数 AuthCode, 整数型 + .参数 群号, 长整数型, , 目标群 + .参数 不使用缓存, 逻辑型 diff --git a/src/Newbe.Tools.ELang2CSharp/source/mpq.cs b/src/Newbe.Tools.ELang2CSharp/source/mpq.cs new file mode 100644 index 0000000..e4513a0 --- /dev/null +++ b/src/Newbe.Tools.ELang2CSharp/source/mpq.cs @@ -0,0 +1,2625 @@ +// generate at 2019/12/15 9:16:11 +00:00 +public interface IMpqApi{ +/// +/// 根据提交的QQ号计算得到页面操作用参数Bkn或G_tk` +/// +/// +/// +[Description("根据提交的QQ号计算得到页面操作用参数Bkn或G_tk`")]string Api_GetGtk_Bkn([Description("")] string 响应的QQ); +/// +/// 根据提交的QQ号计算得到页面操作用参数长Bkn或长G_tk` +/// +/// +/// +[Description("根据提交的QQ号计算得到页面操作用参数长Bkn或长G_tk`")]string Api_GetBkn32([Description("")] string 响应的QQ); +/// +/// 根据提交的QQ号计算得到页面操作用参数长Ldw` +/// +/// +/// +[Description("根据提交的QQ号计算得到页面操作用参数长Ldw`")]string Api_GetLdw([Description("")] string 响应的QQ); +/// +/// 取得框架所在目录.可能鸡肋了。` +/// +/// +[Description("取得框架所在目录.可能鸡肋了。`")]string Api_GetRunPath(); +/// +/// 取得当前框架内在线可用的QQ列表` +/// +/// +[Description("取得当前框架内在线可用的QQ列表`")]string Api_GetOnlineQQlist(); +/// +/// 取得框架内所有QQ列表。包括未登录以及登录失败的QQ` +/// +/// +[Description("取得框架内所有QQ列表。包括未登录以及登录失败的QQ`")]string Api_GetQQlist(); +/// +/// 根据QQ取得对应的会话秘钥` +/// +/// +/// +[Description("根据QQ取得对应的会话秘钥`")]string Api_GetSessionkey([Description("")] string 响应的QQ); +/// +/// 取得页面登录用的Clientkey` +/// +/// +/// +[Description("取得页面登录用的Clientkey`")]string Api_GetClientkey([Description("")] string 响应的QQ); +/// +/// 取得页面登录用的长Clientkey` +/// +/// +/// +[Description("取得页面登录用的长Clientkey`")]string Api_GetLongClientkey([Description("")] string 响应的QQ); +/// +/// 取得页面操作用的Cookies` +/// +/// +/// +[Description("取得页面操作用的Cookies`")]string Api_GetCookies([Description("")] string 响应的QQ); +/// +/// 取得框架内设置的信息发送前缀` +/// +/// +[Description("取得框架内设置的信息发送前缀`")]string Api_GetPrefix(); +/// +/// 将群名片加入高速缓存当作.` +/// +/// +/// +/// +/// +[Description("将群名片加入高速缓存当作.`")]void Api_Cache_NameCard([Description("")] string 群号,[Description("")] string QQ,[Description("")] string 名片); +/// +/// 将指定QQ移出QQ黑名单` +/// +/// +/// +/// +[Description("将指定QQ移出QQ黑名单`")]void Api_DBan([Description("")] string 响应的QQ,[Description("")] string QQ); +/// +/// 将指定QQ列入QQ黑名单` +/// +/// +/// +/// +[Description("将指定QQ列入QQ黑名单`")]void Api_Ban([Description("")] string 响应的QQ,[Description("")] string QQ); +/// +/// 禁言群成员` +/// +/// +/// 禁言对象所在群. +/// 禁言对象.留空为全群禁言 +/// 单位:秒 最大为1个月. 为零解除对象或全群禁言 +/// +[Description("禁言群成员`")]bool Api_Shutup([Description("")] string 响应的QQ,[Description("禁言对象所在群.")] string 群号,[Description("禁言对象.留空为全群禁言")] string QQ,[Description("单位:秒 最大为1个月. 为零解除对象或全群禁言")] int 时长); +/// +/// 根据群号+QQ判断指定群员是否被禁言 获取失败的情况下亦会返回假 +/// +/// +/// 欲判断对象所在群. +/// 欲判断对象 +/// +[Description("根据群号+QQ判断指定群员是否被禁言 获取失败的情况下亦会返回假")]bool Api_IsShutup([Description("")] string 响应的QQ,[Description("欲判断对象所在群.")] string 群号,[Description("欲判断对象")] string QQ); +/// +/// 发群公告` +/// +/// +/// +/// +/// +/// +[Description("发群公告`")]void Api_SetNotice([Description("")] string 响应的QQ,[Description("")] string 群号,[Description("")] string 标题,[Description("")] string 内容); +/// +/// 取群公告` +/// +/// +/// +/// +[Description("取群公告`")]string Api_GetNotice([Description("")] string 响应的QQ,[Description("")] string 群号); +/// +/// 取群名片` +/// +/// +/// +/// +/// +[Description("取群名片`")]string Api_GetNameCard([Description("")] string 响应的QQ,[Description("")] string 群号,[Description("")] string QQ); +/// +/// 设置群名片` +/// +/// +/// +/// +/// +/// +[Description("设置群名片`")]void Api_SetNameCard([Description("")] string 响应的QQ,[Description("")] string 群号,[Description("")] string QQ,[Description("")] string 名片); +/// +/// 退出讨论组` +/// +/// +/// +/// +[Description("退出讨论组`")]void Api_QuitDG([Description("")] string 响应的QQ,[Description("")] string 讨论组ID); +/// +/// 删除好友` +/// +/// +/// +/// +[Description("删除好友`")]bool Api_DelFriend([Description("")] string 响应的QQ,[Description("")] string QQ); +/// +/// 将对象移除群` +/// +/// +/// +/// +/// +[Description("将对象移除群`")]bool Api_Kick([Description("")] string 响应的QQ,[Description("")] string 群号,[Description("")] string 对象); +/// +/// 主动加群.为了避免广告、群发行为。出现验证码时将会直接失败不处理` +/// +/// +/// +/// +/// +[Description("主动加群.为了避免广告、群发行为。出现验证码时将会直接失败不处理`")]void Api_JoinGroup([Description("")] string 响应的QQ,[Description("")] string 群号,[Description("")] string 附加理由); +/// +/// 退出群` +/// +/// +/// +/// +[Description("退出群`")]void Api_QuitGroup([Description("")] string 响应的QQ,[Description("")] string 群号); +/// +/// 返回值:成功返回图片GUID用于发送该图片.失败返回空. 图片尺寸应小于4MB` +/// +/// 机器人QQ +/// 1好友2群 注:好友图和群图的GUID并不相同并不通用 需要非别上传。群、讨论组用类型2 临时会话、好友信息需要类型1 +/// 上传该图片所属的群号或QQ +/// 址, 图片字节集数据或字节集数据指针() +/// +[Description("返回值:成功返回图片GUID用于发送该图片.失败返回空. 图片尺寸应小于4MB`")]string Api_UploadPic([Description("机器人QQ")] string 响应的QQ,[Description("1好友2群 注:好友图和群图的GUID并不相同并不通用 需要非别上传。群、讨论组用类型2 临时会话、好友信息需要类型1")] int 参_上传类型,[Description("上传该图片所属的群号或QQ")] string 参_参考对象,[Description("址, 图片字节集数据或字节集数据指针()")] byte[] 参_图片数据); +/// +/// 根据图片GUID取得图片下载连接 失败返回空` +/// +/// {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}.jpg这样的GUID +/// +[Description("根据图片GUID取得图片下载连接 失败返回空`")]string Api_GuidGetPicLink([Description("{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}.jpg这样的GUID")] string 图片GUID); +/// +/// 回复信息 请尽量避免使用该API` +/// +/// +/// 1好友 2群 3讨论组 4群临时会话 5讨论组临时会话 +/// 接收这条信息的对象 +/// 信息内容 +/// +[Description("回复信息 请尽量避免使用该API`")]int Api_Reply([Description("")] string 响应的QQ,[Description("1好友 2群 3讨论组 4群临时会话 5讨论组临时会话")] int 信息类型,[Description("接收这条信息的对象")] string 回复对象,[Description("信息内容")] string 内容); +/// +/// 向对象、目标发送信息 支持好友 群 讨论组 群临时会话 讨论组临时会话` +/// +/// +/// 1好友 2群 3讨论组 4群临时会话 5讨论组临时会话 +/// 无特殊说明情况下留空或填零 +/// 发送群信息、讨论组信息、群临时会话信息、讨论组临时会话信息时填写 +/// 最终接收这条信息的对象QQ +/// 信息内容 +/// +[Description("向对象、目标发送信息 支持好友 群 讨论组 群临时会话 讨论组临时会话`")]int Api_SendMsg([Description("")] string 响应的QQ,[Description("1好友 2群 3讨论组 4群临时会话 5讨论组临时会话")] int 信息类型,[Description("无特殊说明情况下留空或填零")] int 参考子类型,[Description("发送群信息、讨论组信息、群临时会话信息、讨论组临时会话信息时填写")] string 收信群_讨论组,[Description("最终接收这条信息的对象QQ")] string 收信对象,[Description("信息内容")] string 内容); +/// +/// 发送封包` +/// +/// +/// +[Description("发送封包`")]string Api_Send([Description("")] string 封包内容); +/// +/// 在框架记录页输出一行信息` +/// +/// 输出的内容 +/// +[Description("在框架记录页输出一行信息`")]int Api_OutPut([Description("输出的内容")] string 内容); +/// +/// 取得本插件启用状态` +/// +/// +[Description("取得本插件启用状态`")]bool Api_IsEnable(); +/// +/// 登录一个现存的QQ` +/// +/// 欲登录的Q +/// +[Description("登录一个现存的QQ`")]bool Api_Login([Description("欲登录的Q")] string QQ); +/// +/// 让指定QQ下线` +/// +/// +/// +[Description("让指定QQ下线`")]void Api_Logout([Description("")] string QQ); +/// +/// tean加密算法` +/// +/// +/// +/// +[Description("tean加密算法`")]string Api_Tea加密([Description("")] string 加密内容,[Description("")] string Key); +/// +/// tean解密算法` +/// +/// +/// +/// +[Description("tean解密算法`")]string Api_Tea解密([Description("")] string 解密内容,[Description("")] string Key); +/// +/// 取用户名` +/// +/// +/// +[Description("取用户名`")]string Api_GetNick([Description("")] string QQ); +/// +/// 取QQ等级+QQ会员等级 返回json格式信息` +/// +/// +/// +[Description("取QQ等级+QQ会员等级 返回json格式信息`")]string Api_GetQQLevel([Description("")] string QQ); +/// +/// 群号转群ID` +/// +/// +/// +[Description("群号转群ID`")]string Api_GNGetGid([Description("")] string 群号); +/// +/// 群ID转群号` +/// +/// +/// +[Description("群ID转群号`")]string Api_GidGetGN([Description("")] string 群ID); +/// +/// 取框架版本号(发布时间戳` +/// +/// +[Description("取框架版本号(发布时间戳`")]int Api_GetVersion(); +/// +/// 取框架版本名` +/// +/// +[Description("取框架版本名`")]string Api_GetVersionName(); +/// +/// 取当前框架内部时间戳_周期性与服务器时间同步` +/// +/// +[Description("取当前框架内部时间戳_周期性与服务器时间同步`")]int Api_GetTimeStamp(); +/// +/// 取得框架输出列表内所有信息` +/// +/// +[Description("取得框架输出列表内所有信息`")]string Api_GetLog(); +/// +/// 判断是否处于被屏蔽群信息状态。` +/// +/// +/// +[Description("判断是否处于被屏蔽群信息状态。`")]bool Api_IfBlock([Description("")] string 响应的QQ); +/// +/// 取包括群主在内的群管列表` +/// +/// +/// +/// +[Description("取包括群主在内的群管列表`")]string Api_GetAdminList([Description("")] string 响应的QQ,[Description("")] string 群号); +/// +/// 发说说` +/// +/// +/// +/// +[Description("发说说`")]string Api_AddTaotao([Description("")] string 响应的QQ,[Description("")] string 内容); +/// +/// 取个签` +/// +/// +/// +/// +[Description("取个签`")]string Api_GetSign([Description("")] string 响应的QQ,[Description("")] string 对象); +/// +/// 设置个签` +/// +/// +/// +/// +[Description("设置个签`")]string Api_SetSign([Description("")] string 响应的QQ,[Description("")] string 内容); +/// +/// 通过qun.qzone.qq.com接口取得取群列表.成功返回转码后的JSON格式文本信息` +/// +/// +/// +[Description("通过qun.qzone.qq.com接口取得取群列表.成功返回转码后的JSON格式文本信息`")]string Api_GetGroupListA([Description("")] string 响应的QQ); +/// +/// 通过qun.qq.com接口取得取群列表.成功返回转码后的JSON格式文本信息` +/// +/// +/// +[Description("通过qun.qq.com接口取得取群列表.成功返回转码后的JSON格式文本信息`")]string Api_GetGroupListB([Description("")] string 响应的QQ); +/// +/// 通过qun.qq.com接口取得群成员列表 成功返回转码后的JSON格式文本` +/// +/// +/// +/// +[Description("通过qun.qq.com接口取得群成员列表 成功返回转码后的JSON格式文本`")]string Api_GetGroupMemberA([Description("")] string 响应的QQ,[Description("")] string 群号); +/// +/// 通过qun.qzone.qq.com接口取得群成员列表 成功返回转码后的JSON格式文本` +/// +/// +/// +/// +[Description("通过qun.qzone.qq.com接口取得群成员列表 成功返回转码后的JSON格式文本`")]string Api_GetGroupMemberB([Description("")] string 响应的QQ,[Description("")] string 群号); +/// +/// 通过qun.qq.com接口取得好友列表。成功返回转码后的JSON文本` +/// +/// +/// +[Description("通过qun.qq.com接口取得好友列表。成功返回转码后的JSON文本`")]string Api_GetFriendList([Description("")] string 响应的QQ); +/// +/// 取Q龄 成功返回Q龄 失败返回-1` +/// +/// +/// +/// +[Description("取Q龄 成功返回Q龄 失败返回-1`")]int Api_GetQQAge([Description("")] string 响应的QQ,[Description("")] string QQ); +/// +/// 取年龄 成功返回年龄 失败返回-1` +/// +/// +/// +/// +[Description("取年龄 成功返回年龄 失败返回-1`")]int Api_GetAge([Description("")] string 响应的QQ,[Description("")] string QQ); +/// +/// 取个人说明` +/// +/// +/// 对象QQ +/// +[Description("取个人说明`")]string Api_GetPersonalProfile([Description("")] string 响应的QQ,[Description("对象QQ")] string QQ); +/// +/// 取邮箱 成功返回邮箱 失败返回空` +/// +/// +/// +/// +[Description("取邮箱 成功返回邮箱 失败返回空`")]string Api_GetEmail([Description("")] string 响应的QQ,[Description("")] string QQ); +/// +/// 取对象性别 1男 2女 未或失败返回-1` +/// +/// +/// +/// +[Description("取对象性别 1男 2女 未或失败返回-1`")]int Api_GetGender([Description("")] string 响应的QQ,[Description("")] string QQ); +/// +/// 向好友发送‘正在输入’的状态信息.当好友收到信息之后 “正在输入”状态会立刻被打断` +/// +/// +/// +/// +[Description("向好友发送‘正在输入’的状态信息.当好友收到信息之后 “正在输入”状态会立刻被打断`")]int Api_SendTyping([Description("")] string 响应的QQ,[Description("")] string QQ); +/// +/// 向好友发送窗口抖动信息` +/// +/// +/// +/// +[Description("向好友发送窗口抖动信息`")]int Api_SendShake([Description("")] string 响应的QQ,[Description("")] string QQ); +/// +/// 取得框架内随机一个在线且可以使用的QQ` +/// +/// +[Description("取得框架内随机一个在线且可以使用的QQ`")]string Api_GetRadomOnlineQQ(); +/// +/// 往帐号列表添加一个Q.当该Q已存在时则覆盖密码` +/// +/// +/// +/// 运行框架时是否自动登录该Q.若添加后需要登录该Q则需要通过Api_Login操作 +/// +[Description("往帐号列表添加一个Q.当该Q已存在时则覆盖密码`")]bool Api_AddQQ([Description("")] string QQ,[Description("")] string 密码,[Description("运行框架时是否自动登录该Q.若添加后需要登录该Q则需要通过Api_Login操作")] bool 自动登录); +/// +/// 设置在线状态+附加信息 ` +/// +/// +/// 1~6 分别对应我在线上, Q我吧, 离开, 忙碌, 请勿打扰, 隐身 +/// 最大255字节 +/// +[Description("设置在线状态+附加信息 `")]bool Api_SetOLStatus([Description("")] string 响应的QQ,[Description("1~6 分别对应我在线上, Q我吧, 离开, 忙碌, 请勿打扰, 隐身")] int 在线状态,[Description("最大255字节")] string 状态附加信息); +/// +/// 取得机器码` +/// +/// +[Description("取得机器码`")]string Api_GetMC(); +/// +/// 邀请对象加入群 失败返回错误理由` +/// +/// +/// 多个好友用换行分割 +/// +/// +[Description("邀请对象加入群 失败返回错误理由`")]string Api_GroupInvitation([Description("")] string 响应的QQ,[Description("多个好友用换行分割")] string 好友QQ,[Description("")] string 群号); +/// +/// 创建一个讨论组 成功返回讨论组ID 失败返回空 注:每24小时只能创建100个讨论组 悠着点用` +/// +/// +/// +[Description("创建一个讨论组 成功返回讨论组ID 失败返回空 注:每24小时只能创建100个讨论组 悠着点用`")]string Api_CreateDG([Description("")] string 响应的QQ); +/// +/// 将对象移除讨论组.成功返回空 失败返回理由` +/// +/// +/// +/// +/// +[Description("将对象移除讨论组.成功返回空 失败返回理由`")]string Api_KickDG([Description("")] string 响应的QQ,[Description("")] string 讨论组ID,[Description("")] string 成员); +/// +/// 邀请对象加入讨论组 成功返回空 失败返回理由` +/// +/// +/// +/// 多个成员用换行符分割 +/// +[Description("邀请对象加入讨论组 成功返回空 失败返回理由`")]string Api_DGInvitation([Description("")] string 响应的QQ,[Description("")] string 讨论组ID,[Description("多个成员用换行符分割")] string 成员组); +/// +/// 成功返回以换行符分割的讨论组号列表.最大为100个讨论组 失败返回空` +/// +/// +/// +[Description("成功返回以换行符分割的讨论组号列表.最大为100个讨论组 失败返回空`")]string Api_GetDGList([Description("")] string 响应的QQ); +/// +/// 向对象发送一条音乐信息(所谓的点歌)次数不限` +/// +/// +/// 同Api_SendMsg 1好友 2群 3讨论组 4群临时会话 5讨论组临时会话 +/// 发群内、临时会话必填 好友可不填 +/// 临时会话、好友必填 发至群内可不填 +/// 留空默认‘QQ音乐 的分享’ +/// 任意直连或短链接均可 留空为空 无法点开 +/// 任意直连或短链接均可 可空 例:http://url.cn/cDiJT4 +/// 任意直连或短链接均可 不可空 例:http://url.cn/djwXjr +/// 可空 +/// 可空 +/// 可空 为空默认QQ音乐 +/// 可空 为空默认QQ音乐 http://qzonestyle.gtimg.cn/ac/qzone/applogo/64/308/100497308_64.gif +/// +[Description("向对象发送一条音乐信息(所谓的点歌)次数不限`")]bool Api_SendMusic([Description("")] string 响应的QQ,[Description("同Api_SendMsg 1好友 2群 3讨论组 4群临时会话 5讨论组临时会话")] int 收信对象类型,[Description("发群内、临时会话必填 好友可不填")] string 收信对象所属群_讨论组,[Description("临时会话、好友必填 发至群内可不填")] string 收信对象QQ,[Description("留空默认‘QQ音乐 的分享’")] string 音乐简介,[Description("任意直连或短链接均可 留空为空 无法点开")] string 音乐播放页面连接,[Description("任意直连或短链接均可 可空 例:http://url.cn/cDiJT4")] string 音乐封面连接,[Description("任意直连或短链接均可 不可空 例:http://url.cn/djwXjr")] string 音乐文件直连连接,[Description("可空")] string 曲名,[Description("可空")] string 歌手名,[Description("可空 为空默认QQ音乐")] string 音乐来源名,[Description("可空 为空默认QQ音乐 http://qzonestyle.gtimg.cn/ac/qzone/applogo/64/308/100497308_64.gif")] string 音乐来源图标连接); +/// +/// ` +/// +/// +/// 同Api_SendMsg 1好友 2群 3讨论组 4群临时会话 5讨论组临时会话 +/// 发群内、临时会话必填 好友可不填 +/// 临时会话、好友必填 发至群内可不填 +/// +/// 00 基本 02 点歌 其他不明 +/// +[Description("`")]bool Api_SendXml([Description("")] string 响应的QQ,[Description("同Api_SendMsg 1好友 2群 3讨论组 4群临时会话 5讨论组临时会话")] int 收信对象类型,[Description("发群内、临时会话必填 好友可不填")] string 收信对象所属群_讨论组,[Description("临时会话、好友必填 发至群内可不填")] string 收信对象QQ,[Description("")] string ObjectMsg,[Description("00 基本 02 点歌 其他不明")] int 结构子类型); +/// +/// ` +/// +/// +/// 同Api_SendMsg 1好友 2群 3讨论组 4群临时会话 5讨论组临时会话 +/// 发群内、临时会话必填 好友可不填 +/// 临时会话、好友必填 发至群内可不填 +/// +/// 00 基本 02 点歌 其他不明 +/// +[Description("`")]bool Api_SendObjectMsg([Description("")] string 响应的QQ,[Description("同Api_SendMsg 1好友 2群 3讨论组 4群临时会话 5讨论组临时会话")] int 收信对象类型,[Description("发群内、临时会话必填 好友可不填")] string 收信对象所属群_讨论组,[Description("临时会话、好友必填 发至群内可不填")] string 收信对象QQ,[Description("")] string ObjectMsg,[Description("00 基本 02 点歌 其他不明")] int 结构子类型); +/// +/// 判断对象是否为好友(双向)` +/// +/// +/// +/// +[Description("判断对象是否为好友(双向)`")]bool Api_IsFriend([Description("")] string 响应的QQ,[Description("")] string 对象QQ); +/// +/// 主动加好友 成功返回真 失败返回假 当对象设置需要正确回答问题或不允许任何人添加时无条件失败 +/// +/// 机器人QQ +/// 加谁 +/// 加好友提交的理由 +/// +[Description("主动加好友 成功返回真 失败返回假 当对象设置需要正确回答问题或不允许任何人添加时无条件失败")]bool Api_AddFriend([Description("机器人QQ")] string 响应的QQ,[Description("加谁")] string 对象QQ,[Description("加好友提交的理由")] string 附加理由); +/// +/// 无参 用于插件自身请求禁用插件自身 +/// +/// +[Description("无参 用于插件自身请求禁用插件自身")]void Api_SelfDisable(); +/// +/// 取协议客户端类型常量 失败返回0 +/// +/// +[Description("取协议客户端类型常量 失败返回0")]int Api_GetClientType(); +/// +/// 取协议客户端版本号常量 失败返回0 +/// +/// +[Description("取协议客户端版本号常量 失败返回0")]int Api_GetClientVer(); +/// +/// 取协议客户端公开版本号常量 失败返回0 +/// +/// +[Description("取协议客户端公开版本号常量 失败返回0")]int Api_GetPubNo(); +/// +/// 取协议客户端主版本号常量 失败返回0 +/// +/// +[Description("取协议客户端主版本号常量 失败返回0")]int Api_GetMainVer(); +/// +/// 取协议客户端通信模块(TXSSO)版本号常量 失败返回0 +/// +/// +[Description("取协议客户端通信模块(TXSSO)版本号常量 失败返回0")]int Api_GetTXSSOVer(); +/// +/// 通过音频、语音guid取得下载连接 +/// +/// +/// 格式:{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx}.amr +/// +[Description("通过音频、语音guid取得下载连接")]string Api_GuidGetVoiceLink([Description("")] string 响应的QQ,[Description("格式:{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx}.amr")] string GUID); +/// +/// 上传音频文件 成功返回guid用于发送 +/// +/// +/// 音频字节集数据 +/// +[Description("上传音频文件 成功返回guid用于发送")]string Api_UploadVoice([Description("")] string 响应的QQ,[Description("音频字节集数据")] byte[] amr音频数据); +/// +/// 移除由Api_AddLogHandler添加、设置的日志处理函数 +/// +/// +[Description("移除由Api_AddLogHandler添加、设置的日志处理函数")]void Api_RemoveLogHandler(); +/// +/// 取群名 +/// +/// +/// +/// +[Description("取群名")]string Api_GetGroupName([Description("")] string 响应的QQ,[Description("")] string 群号); +/// +/// 移除\取消由Api_SetMsgFilter所添加\设置的处理函数 +/// +/// +[Description("移除\取消由Api_SetMsgFilter所添加\设置的处理函数")]void Api_RemoveMsgFilter(); +/// +/// QQ名片赞 10赞每Q每日 至多50人\日系列 成功返回空 失败返回理由(腾讯爸爸给出的) 一次一赞 速度请自行管控以免冻结 +/// +/// +/// +/// +[Description("QQ名片赞 10赞每Q每日 至多50人\日系列 成功返回空 失败返回理由(腾讯爸爸给出的) 一次一赞 速度请自行管控以免冻结")]string Api_Like([Description("")] string 参_响应的QQ,[Description("")] string 参_被赞QQ); +/// +/// 上传群文件 +/// +/// +/// +/// 实际显示在群文件列表中的文件名 +/// 本地文件路径 选填 +/// 图片字节集数据 选填 +/// +[Description("上传群文件")]bool Api_UploadGroupFile([Description("")] string 参_响应的QQ,[Description("")] string 参_群号,[Description("实际显示在群文件列表中的文件名")] string 参_上传文件名,[Description("本地文件路径 选填")] string 参_路径,[Description("图片字节集数据 选填")] byte[] 参_图片数据); +/// +/// 根据图片GUID取得图片下载连接 失败返回空 +/// +/// {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}.jpg这样的GUID +/// 1好友\临时会话图片 2 群图 +/// 好友QQ或群号 根据参数2填写 +/// +[Description("根据图片GUID取得图片下载连接 失败返回空")]string Api_GuidGetPicLinkEx([Description("{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}.jpg这样的GUID")] string 参_图片GUID,[Description("1好友\临时会话图片 2 群图")] int 参_图片类型,[Description("好友QQ或群号 根据参数2填写")] string 参_图片参考对象); +/// +/// 撤回群信息 需为群管 +/// +/// 机器人QQ +/// Event函数中的'参_原始信息' 经过解密后的封包字节数据 +/// +[Description("撤回群信息 需为群管")]bool Api_CancelGroupMsgA([Description("机器人QQ")] string 响应的QQ,[Description("Event函数中的'参_原始信息' 经过解密后的封包字节数据")] string 原始信息); +/// +/// 取得用于登陆腾讯子业务的Cookies 如xxx.qq.com +/// +/// +/// 如qun.qq.com +/// +[Description("取得用于登陆腾讯子业务的Cookies 如xxx.qq.com")]string Api_GetCookiesByDomain([Description("")] string 响应的QQ,[Description("如qun.qq.com")] string 域名); +/// +/// +/// +/// +/// +[Description("")]void Api_ChangeProtocol([Description("")] int i); +/// +/// 从框架中删除QQ +/// +/// +/// +[Description("从框架中删除QQ")]void Api_DeleteQQ([Description("")] string 被操作QQ); +/// +/// +/// +/// +/// 同Api_SendMsg 1好友 2群 3讨论组 4群临时会话 5讨论组临时会话 +/// 文本型, , 发群内、临时会话必填 好友可不填 +/// 临时会话、好友必填 发至群内可不填 +/// +/// +[Description("")]bool Api_SendAppMsg([Description("")] string 响应的QQ,[Description("同Api_SendMsg 1好友 2群 3讨论组 4群临时会话 5讨论组临时会话")] int 收信对象类型,[Description("文本型, , 发群内、临时会话必填 好友可不填")] string 信对象所属群_讨论组,[Description("临时会话、好友必填 发至群内可不填")] string 收信对象QQ,[Description("")] string AppMsg); +/// +/// 取生日 失败返回空 未公开生日信息返回 "0年0月0日" +/// +/// +/// +/// +[Description("取生日 失败返回空 未公开生日信息返回 "0年0月0日"")]string Api_GetBirthday([Description("")] string 响应的QQ,[Description("")] string QQ); +/// +/// 取用户个人信息页面字节数据 包含各种资料 返回内容为原始明文数据 +/// +/// +/// +/// +[Description("取用户个人信息页面字节数据 包含各种资料 返回内容为原始明文数据")]string Api_GetUserInfo([Description("")] string 响应的QQ,[Description("")] string QQ); +/// +/// +/// +/// +/// +[Description("")]string Api_GetFriendListA([Description("")] string 响应的QQ); +/// +/// 仅商用版可用 +/// +/// +[Description("仅商用版可用")]string Api_GetLoginQRCode(); +/// +/// 仅商用版可用 上传头像 接受字节集参数 返回值:0 上传成功 -1参数有误 -2图片大于1MB -3获取上传令牌失败受限 -4其他理由上传失败 +/// +/// 机器人QQ +/// 图片字节集数据,由于易语言DLL限制你可能在这里读到的是"整数型" 请自己改成字节集,图片不限PNG JPG 大小1MB以内 +/// +[Description("仅商用版可用 上传头像 接受字节集参数 返回值:0 上传成功 -1参数有误 -2图片大于1MB -3获取上传令牌失败受限 -4其他理由上传失败")]int Api_UploadCface_Byte([Description("机器人QQ")] string 参_响应的QQ,[Description("图片字节集数据,由于易语言DLL限制你可能在这里读到的是"整数型" 请自己改成字节集,图片不限PNG JPG 大小1MB以内")] int 参_图片数据); +/// +/// 仅商用版可用 上传头像 接受路径参数 URL 或 本地路径 返回值:0 上传成功 -1参数有误 -2图片大于1MB -3获取上传令牌失败受限 -4其他理由上传失败 +/// +/// 机器人QQ +/// 路径 可选URL 或 本地路径 http://www.baidu,com/图片.jpg C:\1.jpg, +/// +[Description("仅商用版可用 上传头像 接受路径参数 URL 或 本地路径 返回值:0 上传成功 -1参数有误 -2图片大于1MB -3获取上传令牌失败受限 -4其他理由上传失败")]int Api_UploadCface_Path([Description("机器人QQ")] string 参_响应的QQ,[Description("路径 可选URL 或 本地路径 http://www.baidu,com/图片.jpg C:\1.jpg,")] string 参_图片路径); +/// +/// 异步处理被加好友事件 在事件1001下返回值需>30 如50 以强制忽略且确保无其他插件处理 +/// +/// 在事件1001下取得 参_原始信息 填入 +/// 0忽略 10同意 20拒绝 30单向同意(成为单向好友) +/// 拒绝时的附加理由 可以留空 +/// +[Description("异步处理被加好友事件 在事件1001下返回值需>30 如50 以强制忽略且确保无其他插件处理")]void Api_HandleFriendRequestAsync([Description("在事件1001下取得 参_原始信息 填入")] string 参_原始信息,[Description("0忽略 10同意 20拒绝 30单向同意(成为单向好友)")] int 参_处理方式,[Description("拒绝时的附加理由 可以留空")] string 参_附加信息); +/// +/// 异步处理被加群类事件 在事件200x下返回值需>30 如50 以强制忽略且确保无其他插件处理 +/// +/// 机器人QQ +/// 在事件200x下取得 参_原始信息 填入 +/// 0忽略 10同意 20拒绝 30拒绝并不再接受 +/// 拒绝时的附加理由 可以留空 +/// +[Description("异步处理被加群类事件 在事件200x下返回值需>30 如50 以强制忽略且确保无其他插件处理")]void Api_HandleGroupRequestAsync([Description("机器人QQ")] string 参_响应的QQ,[Description("在事件200x下取得 参_原始信息 填入")] string 参_原始信息,[Description("0忽略 10同意 20拒绝 30拒绝并不再接受")] int 参_处理方式,[Description("拒绝时的附加理由 可以留空")] string 参_附加信息); +} +public class MpqApi:IMpqApi{ + + /// +/// 根据提交的QQ号计算得到页面操作用参数Bkn或G_tk` +/// +/// +/// + + + string IMpqApi.Api_GetGtk_Bkn([Description("")] string 响应的QQ) + =>NativeMethods.Api_GetGtk_Bkn(响应的QQ); + /// +/// 根据提交的QQ号计算得到页面操作用参数长Bkn或长G_tk` +/// +/// +/// + + + string IMpqApi.Api_GetBkn32([Description("")] string 响应的QQ) + =>NativeMethods.Api_GetBkn32(响应的QQ); + /// +/// 根据提交的QQ号计算得到页面操作用参数长Ldw` +/// +/// +/// + + + string IMpqApi.Api_GetLdw([Description("")] string 响应的QQ) + =>NativeMethods.Api_GetLdw(响应的QQ); + /// +/// 取得框架所在目录.可能鸡肋了。` +/// +/// + + + string IMpqApi.Api_GetRunPath() + =>NativeMethods.Api_GetRunPath(); + /// +/// 取得当前框架内在线可用的QQ列表` +/// +/// + + + string IMpqApi.Api_GetOnlineQQlist() + =>NativeMethods.Api_GetOnlineQQlist(); + /// +/// 取得框架内所有QQ列表。包括未登录以及登录失败的QQ` +/// +/// + + + string IMpqApi.Api_GetQQlist() + =>NativeMethods.Api_GetQQlist(); + /// +/// 根据QQ取得对应的会话秘钥` +/// +/// +/// + + + string IMpqApi.Api_GetSessionkey([Description("")] string 响应的QQ) + =>NativeMethods.Api_GetSessionkey(响应的QQ); + /// +/// 取得页面登录用的Clientkey` +/// +/// +/// + + + string IMpqApi.Api_GetClientkey([Description("")] string 响应的QQ) + =>NativeMethods.Api_GetClientkey(响应的QQ); + /// +/// 取得页面登录用的长Clientkey` +/// +/// +/// + + + string IMpqApi.Api_GetLongClientkey([Description("")] string 响应的QQ) + =>NativeMethods.Api_GetLongClientkey(响应的QQ); + /// +/// 取得页面操作用的Cookies` +/// +/// +/// + + + string IMpqApi.Api_GetCookies([Description("")] string 响应的QQ) + =>NativeMethods.Api_GetCookies(响应的QQ); + /// +/// 取得框架内设置的信息发送前缀` +/// +/// + + + string IMpqApi.Api_GetPrefix() + =>NativeMethods.Api_GetPrefix(); + /// +/// 将群名片加入高速缓存当作.` +/// +/// +/// +/// +/// + + + void IMpqApi.Api_Cache_NameCard([Description("")] string 群号,[Description("")] string QQ,[Description("")] string 名片) + =>NativeMethods.Api_Cache_NameCard(群号,QQ,名片); + /// +/// 将指定QQ移出QQ黑名单` +/// +/// +/// +/// + + + void IMpqApi.Api_DBan([Description("")] string 响应的QQ,[Description("")] string QQ) + =>NativeMethods.Api_DBan(响应的QQ,QQ); + /// +/// 将指定QQ列入QQ黑名单` +/// +/// +/// +/// + + + void IMpqApi.Api_Ban([Description("")] string 响应的QQ,[Description("")] string QQ) + =>NativeMethods.Api_Ban(响应的QQ,QQ); + /// +/// 禁言群成员` +/// +/// +/// 禁言对象所在群. +/// 禁言对象.留空为全群禁言 +/// 单位:秒 最大为1个月. 为零解除对象或全群禁言 +/// + + + bool IMpqApi.Api_Shutup([Description("")] string 响应的QQ,[Description("禁言对象所在群.")] string 群号,[Description("禁言对象.留空为全群禁言")] string QQ,[Description("单位:秒 最大为1个月. 为零解除对象或全群禁言")] int 时长) + =>NativeMethods.Api_Shutup(响应的QQ,群号,QQ,时长); + /// +/// 根据群号+QQ判断指定群员是否被禁言 获取失败的情况下亦会返回假 +/// +/// +/// 欲判断对象所在群. +/// 欲判断对象 +/// + + + bool IMpqApi.Api_IsShutup([Description("")] string 响应的QQ,[Description("欲判断对象所在群.")] string 群号,[Description("欲判断对象")] string QQ) + =>NativeMethods.Api_IsShutup(响应的QQ,群号,QQ); + /// +/// 发群公告` +/// +/// +/// +/// +/// +/// + + + void IMpqApi.Api_SetNotice([Description("")] string 响应的QQ,[Description("")] string 群号,[Description("")] string 标题,[Description("")] string 内容) + =>NativeMethods.Api_SetNotice(响应的QQ,群号,标题,内容); + /// +/// 取群公告` +/// +/// +/// +/// + + + string IMpqApi.Api_GetNotice([Description("")] string 响应的QQ,[Description("")] string 群号) + =>NativeMethods.Api_GetNotice(响应的QQ,群号); + /// +/// 取群名片` +/// +/// +/// +/// +/// + + + string IMpqApi.Api_GetNameCard([Description("")] string 响应的QQ,[Description("")] string 群号,[Description("")] string QQ) + =>NativeMethods.Api_GetNameCard(响应的QQ,群号,QQ); + /// +/// 设置群名片` +/// +/// +/// +/// +/// +/// + + + void IMpqApi.Api_SetNameCard([Description("")] string 响应的QQ,[Description("")] string 群号,[Description("")] string QQ,[Description("")] string 名片) + =>NativeMethods.Api_SetNameCard(响应的QQ,群号,QQ,名片); + /// +/// 退出讨论组` +/// +/// +/// +/// + + + void IMpqApi.Api_QuitDG([Description("")] string 响应的QQ,[Description("")] string 讨论组ID) + =>NativeMethods.Api_QuitDG(响应的QQ,讨论组ID); + /// +/// 删除好友` +/// +/// +/// +/// + + + bool IMpqApi.Api_DelFriend([Description("")] string 响应的QQ,[Description("")] string QQ) + =>NativeMethods.Api_DelFriend(响应的QQ,QQ); + /// +/// 将对象移除群` +/// +/// +/// +/// +/// + + + bool IMpqApi.Api_Kick([Description("")] string 响应的QQ,[Description("")] string 群号,[Description("")] string 对象) + =>NativeMethods.Api_Kick(响应的QQ,群号,对象); + /// +/// 主动加群.为了避免广告、群发行为。出现验证码时将会直接失败不处理` +/// +/// +/// +/// +/// + + + void IMpqApi.Api_JoinGroup([Description("")] string 响应的QQ,[Description("")] string 群号,[Description("")] string 附加理由) + =>NativeMethods.Api_JoinGroup(响应的QQ,群号,附加理由); + /// +/// 退出群` +/// +/// +/// +/// + + + void IMpqApi.Api_QuitGroup([Description("")] string 响应的QQ,[Description("")] string 群号) + =>NativeMethods.Api_QuitGroup(响应的QQ,群号); + /// +/// 返回值:成功返回图片GUID用于发送该图片.失败返回空. 图片尺寸应小于4MB` +/// +/// 机器人QQ +/// 1好友2群 注:好友图和群图的GUID并不相同并不通用 需要非别上传。群、讨论组用类型2 临时会话、好友信息需要类型1 +/// 上传该图片所属的群号或QQ +/// 址, 图片字节集数据或字节集数据指针() +/// + + + string IMpqApi.Api_UploadPic([Description("机器人QQ")] string 响应的QQ,[Description("1好友2群 注:好友图和群图的GUID并不相同并不通用 需要非别上传。群、讨论组用类型2 临时会话、好友信息需要类型1")] int 参_上传类型,[Description("上传该图片所属的群号或QQ")] string 参_参考对象,[Description("址, 图片字节集数据或字节集数据指针()")] byte[] 参_图片数据) + =>NativeMethods.Api_UploadPic(响应的QQ,参_上传类型,参_参考对象,参_图片数据); + /// +/// 根据图片GUID取得图片下载连接 失败返回空` +/// +/// {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}.jpg这样的GUID +/// + + + string IMpqApi.Api_GuidGetPicLink([Description("{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}.jpg这样的GUID")] string 图片GUID) + =>NativeMethods.Api_GuidGetPicLink(图片GUID); + /// +/// 回复信息 请尽量避免使用该API` +/// +/// +/// 1好友 2群 3讨论组 4群临时会话 5讨论组临时会话 +/// 接收这条信息的对象 +/// 信息内容 +/// + + + int IMpqApi.Api_Reply([Description("")] string 响应的QQ,[Description("1好友 2群 3讨论组 4群临时会话 5讨论组临时会话")] int 信息类型,[Description("接收这条信息的对象")] string 回复对象,[Description("信息内容")] string 内容) + =>NativeMethods.Api_Reply(响应的QQ,信息类型,回复对象,内容); + /// +/// 向对象、目标发送信息 支持好友 群 讨论组 群临时会话 讨论组临时会话` +/// +/// +/// 1好友 2群 3讨论组 4群临时会话 5讨论组临时会话 +/// 无特殊说明情况下留空或填零 +/// 发送群信息、讨论组信息、群临时会话信息、讨论组临时会话信息时填写 +/// 最终接收这条信息的对象QQ +/// 信息内容 +/// + + + int IMpqApi.Api_SendMsg([Description("")] string 响应的QQ,[Description("1好友 2群 3讨论组 4群临时会话 5讨论组临时会话")] int 信息类型,[Description("无特殊说明情况下留空或填零")] int 参考子类型,[Description("发送群信息、讨论组信息、群临时会话信息、讨论组临时会话信息时填写")] string 收信群_讨论组,[Description("最终接收这条信息的对象QQ")] string 收信对象,[Description("信息内容")] string 内容) + =>NativeMethods.Api_SendMsg(响应的QQ,信息类型,参考子类型,收信群_讨论组,收信对象,内容); + /// +/// 发送封包` +/// +/// +/// + + + string IMpqApi.Api_Send([Description("")] string 封包内容) + =>NativeMethods.Api_Send(封包内容); + /// +/// 在框架记录页输出一行信息` +/// +/// 输出的内容 +/// + + + int IMpqApi.Api_OutPut([Description("输出的内容")] string 内容) + =>NativeMethods.Api_OutPut(内容); + /// +/// 取得本插件启用状态` +/// +/// + + + bool IMpqApi.Api_IsEnable() + =>NativeMethods.Api_IsEnable(); + /// +/// 登录一个现存的QQ` +/// +/// 欲登录的Q +/// + + + bool IMpqApi.Api_Login([Description("欲登录的Q")] string QQ) + =>NativeMethods.Api_Login(QQ); + /// +/// 让指定QQ下线` +/// +/// +/// + + + void IMpqApi.Api_Logout([Description("")] string QQ) + =>NativeMethods.Api_Logout(QQ); + /// +/// tean加密算法` +/// +/// +/// +/// + + + string IMpqApi.Api_Tea加密([Description("")] string 加密内容,[Description("")] string Key) + =>NativeMethods.Api_Tea加密(加密内容,Key); + /// +/// tean解密算法` +/// +/// +/// +/// + + + string IMpqApi.Api_Tea解密([Description("")] string 解密内容,[Description("")] string Key) + =>NativeMethods.Api_Tea解密(解密内容,Key); + /// +/// 取用户名` +/// +/// +/// + + + string IMpqApi.Api_GetNick([Description("")] string QQ) + =>NativeMethods.Api_GetNick(QQ); + /// +/// 取QQ等级+QQ会员等级 返回json格式信息` +/// +/// +/// + + + string IMpqApi.Api_GetQQLevel([Description("")] string QQ) + =>NativeMethods.Api_GetQQLevel(QQ); + /// +/// 群号转群ID` +/// +/// +/// + + + string IMpqApi.Api_GNGetGid([Description("")] string 群号) + =>NativeMethods.Api_GNGetGid(群号); + /// +/// 群ID转群号` +/// +/// +/// + + + string IMpqApi.Api_GidGetGN([Description("")] string 群ID) + =>NativeMethods.Api_GidGetGN(群ID); + /// +/// 取框架版本号(发布时间戳` +/// +/// + + + int IMpqApi.Api_GetVersion() + =>NativeMethods.Api_GetVersion(); + /// +/// 取框架版本名` +/// +/// + + + string IMpqApi.Api_GetVersionName() + =>NativeMethods.Api_GetVersionName(); + /// +/// 取当前框架内部时间戳_周期性与服务器时间同步` +/// +/// + + + int IMpqApi.Api_GetTimeStamp() + =>NativeMethods.Api_GetTimeStamp(); + /// +/// 取得框架输出列表内所有信息` +/// +/// + + + string IMpqApi.Api_GetLog() + =>NativeMethods.Api_GetLog(); + /// +/// 判断是否处于被屏蔽群信息状态。` +/// +/// +/// + + + bool IMpqApi.Api_IfBlock([Description("")] string 响应的QQ) + =>NativeMethods.Api_IfBlock(响应的QQ); + /// +/// 取包括群主在内的群管列表` +/// +/// +/// +/// + + + string IMpqApi.Api_GetAdminList([Description("")] string 响应的QQ,[Description("")] string 群号) + =>NativeMethods.Api_GetAdminList(响应的QQ,群号); + /// +/// 发说说` +/// +/// +/// +/// + + + string IMpqApi.Api_AddTaotao([Description("")] string 响应的QQ,[Description("")] string 内容) + =>NativeMethods.Api_AddTaotao(响应的QQ,内容); + /// +/// 取个签` +/// +/// +/// +/// + + + string IMpqApi.Api_GetSign([Description("")] string 响应的QQ,[Description("")] string 对象) + =>NativeMethods.Api_GetSign(响应的QQ,对象); + /// +/// 设置个签` +/// +/// +/// +/// + + + string IMpqApi.Api_SetSign([Description("")] string 响应的QQ,[Description("")] string 内容) + =>NativeMethods.Api_SetSign(响应的QQ,内容); + /// +/// 通过qun.qzone.qq.com接口取得取群列表.成功返回转码后的JSON格式文本信息` +/// +/// +/// + + + string IMpqApi.Api_GetGroupListA([Description("")] string 响应的QQ) + =>NativeMethods.Api_GetGroupListA(响应的QQ); + /// +/// 通过qun.qq.com接口取得取群列表.成功返回转码后的JSON格式文本信息` +/// +/// +/// + + + string IMpqApi.Api_GetGroupListB([Description("")] string 响应的QQ) + =>NativeMethods.Api_GetGroupListB(响应的QQ); + /// +/// 通过qun.qq.com接口取得群成员列表 成功返回转码后的JSON格式文本` +/// +/// +/// +/// + + + string IMpqApi.Api_GetGroupMemberA([Description("")] string 响应的QQ,[Description("")] string 群号) + =>NativeMethods.Api_GetGroupMemberA(响应的QQ,群号); + /// +/// 通过qun.qzone.qq.com接口取得群成员列表 成功返回转码后的JSON格式文本` +/// +/// +/// +/// + + + string IMpqApi.Api_GetGroupMemberB([Description("")] string 响应的QQ,[Description("")] string 群号) + =>NativeMethods.Api_GetGroupMemberB(响应的QQ,群号); + /// +/// 通过qun.qq.com接口取得好友列表。成功返回转码后的JSON文本` +/// +/// +/// + + + string IMpqApi.Api_GetFriendList([Description("")] string 响应的QQ) + =>NativeMethods.Api_GetFriendList(响应的QQ); + /// +/// 取Q龄 成功返回Q龄 失败返回-1` +/// +/// +/// +/// + + + int IMpqApi.Api_GetQQAge([Description("")] string 响应的QQ,[Description("")] string QQ) + =>NativeMethods.Api_GetQQAge(响应的QQ,QQ); + /// +/// 取年龄 成功返回年龄 失败返回-1` +/// +/// +/// +/// + + + int IMpqApi.Api_GetAge([Description("")] string 响应的QQ,[Description("")] string QQ) + =>NativeMethods.Api_GetAge(响应的QQ,QQ); + /// +/// 取个人说明` +/// +/// +/// 对象QQ +/// + + + string IMpqApi.Api_GetPersonalProfile([Description("")] string 响应的QQ,[Description("对象QQ")] string QQ) + =>NativeMethods.Api_GetPersonalProfile(响应的QQ,QQ); + /// +/// 取邮箱 成功返回邮箱 失败返回空` +/// +/// +/// +/// + + + string IMpqApi.Api_GetEmail([Description("")] string 响应的QQ,[Description("")] string QQ) + =>NativeMethods.Api_GetEmail(响应的QQ,QQ); + /// +/// 取对象性别 1男 2女 未或失败返回-1` +/// +/// +/// +/// + + + int IMpqApi.Api_GetGender([Description("")] string 响应的QQ,[Description("")] string QQ) + =>NativeMethods.Api_GetGender(响应的QQ,QQ); + /// +/// 向好友发送‘正在输入’的状态信息.当好友收到信息之后 “正在输入”状态会立刻被打断` +/// +/// +/// +/// + + + int IMpqApi.Api_SendTyping([Description("")] string 响应的QQ,[Description("")] string QQ) + =>NativeMethods.Api_SendTyping(响应的QQ,QQ); + /// +/// 向好友发送窗口抖动信息` +/// +/// +/// +/// + + + int IMpqApi.Api_SendShake([Description("")] string 响应的QQ,[Description("")] string QQ) + =>NativeMethods.Api_SendShake(响应的QQ,QQ); + /// +/// 取得框架内随机一个在线且可以使用的QQ` +/// +/// + + + string IMpqApi.Api_GetRadomOnlineQQ() + =>NativeMethods.Api_GetRadomOnlineQQ(); + /// +/// 往帐号列表添加一个Q.当该Q已存在时则覆盖密码` +/// +/// +/// +/// 运行框架时是否自动登录该Q.若添加后需要登录该Q则需要通过Api_Login操作 +/// + + + bool IMpqApi.Api_AddQQ([Description("")] string QQ,[Description("")] string 密码,[Description("运行框架时是否自动登录该Q.若添加后需要登录该Q则需要通过Api_Login操作")] bool 自动登录) + =>NativeMethods.Api_AddQQ(QQ,密码,自动登录); + /// +/// 设置在线状态+附加信息 ` +/// +/// +/// 1~6 分别对应我在线上, Q我吧, 离开, 忙碌, 请勿打扰, 隐身 +/// 最大255字节 +/// + + + bool IMpqApi.Api_SetOLStatus([Description("")] string 响应的QQ,[Description("1~6 分别对应我在线上, Q我吧, 离开, 忙碌, 请勿打扰, 隐身")] int 在线状态,[Description("最大255字节")] string 状态附加信息) + =>NativeMethods.Api_SetOLStatus(响应的QQ,在线状态,状态附加信息); + /// +/// 取得机器码` +/// +/// + + + string IMpqApi.Api_GetMC() + =>NativeMethods.Api_GetMC(); + /// +/// 邀请对象加入群 失败返回错误理由` +/// +/// +/// 多个好友用换行分割 +/// +/// + + + string IMpqApi.Api_GroupInvitation([Description("")] string 响应的QQ,[Description("多个好友用换行分割")] string 好友QQ,[Description("")] string 群号) + =>NativeMethods.Api_GroupInvitation(响应的QQ,好友QQ,群号); + /// +/// 创建一个讨论组 成功返回讨论组ID 失败返回空 注:每24小时只能创建100个讨论组 悠着点用` +/// +/// +/// + + + string IMpqApi.Api_CreateDG([Description("")] string 响应的QQ) + =>NativeMethods.Api_CreateDG(响应的QQ); + /// +/// 将对象移除讨论组.成功返回空 失败返回理由` +/// +/// +/// +/// +/// + + + string IMpqApi.Api_KickDG([Description("")] string 响应的QQ,[Description("")] string 讨论组ID,[Description("")] string 成员) + =>NativeMethods.Api_KickDG(响应的QQ,讨论组ID,成员); + /// +/// 邀请对象加入讨论组 成功返回空 失败返回理由` +/// +/// +/// +/// 多个成员用换行符分割 +/// + + + string IMpqApi.Api_DGInvitation([Description("")] string 响应的QQ,[Description("")] string 讨论组ID,[Description("多个成员用换行符分割")] string 成员组) + =>NativeMethods.Api_DGInvitation(响应的QQ,讨论组ID,成员组); + /// +/// 成功返回以换行符分割的讨论组号列表.最大为100个讨论组 失败返回空` +/// +/// +/// + + + string IMpqApi.Api_GetDGList([Description("")] string 响应的QQ) + =>NativeMethods.Api_GetDGList(响应的QQ); + /// +/// 向对象发送一条音乐信息(所谓的点歌)次数不限` +/// +/// +/// 同Api_SendMsg 1好友 2群 3讨论组 4群临时会话 5讨论组临时会话 +/// 发群内、临时会话必填 好友可不填 +/// 临时会话、好友必填 发至群内可不填 +/// 留空默认‘QQ音乐 的分享’ +/// 任意直连或短链接均可 留空为空 无法点开 +/// 任意直连或短链接均可 可空 例:http://url.cn/cDiJT4 +/// 任意直连或短链接均可 不可空 例:http://url.cn/djwXjr +/// 可空 +/// 可空 +/// 可空 为空默认QQ音乐 +/// 可空 为空默认QQ音乐 http://qzonestyle.gtimg.cn/ac/qzone/applogo/64/308/100497308_64.gif +/// + + + bool IMpqApi.Api_SendMusic([Description("")] string 响应的QQ,[Description("同Api_SendMsg 1好友 2群 3讨论组 4群临时会话 5讨论组临时会话")] int 收信对象类型,[Description("发群内、临时会话必填 好友可不填")] string 收信对象所属群_讨论组,[Description("临时会话、好友必填 发至群内可不填")] string 收信对象QQ,[Description("留空默认‘QQ音乐 的分享’")] string 音乐简介,[Description("任意直连或短链接均可 留空为空 无法点开")] string 音乐播放页面连接,[Description("任意直连或短链接均可 可空 例:http://url.cn/cDiJT4")] string 音乐封面连接,[Description("任意直连或短链接均可 不可空 例:http://url.cn/djwXjr")] string 音乐文件直连连接,[Description("可空")] string 曲名,[Description("可空")] string 歌手名,[Description("可空 为空默认QQ音乐")] string 音乐来源名,[Description("可空 为空默认QQ音乐 http://qzonestyle.gtimg.cn/ac/qzone/applogo/64/308/100497308_64.gif")] string 音乐来源图标连接) + =>NativeMethods.Api_SendMusic(响应的QQ,收信对象类型,收信对象所属群_讨论组,收信对象QQ,音乐简介,音乐播放页面连接,音乐封面连接,音乐文件直连连接,曲名,歌手名,音乐来源名,音乐来源图标连接); + /// +/// ` +/// +/// +/// 同Api_SendMsg 1好友 2群 3讨论组 4群临时会话 5讨论组临时会话 +/// 发群内、临时会话必填 好友可不填 +/// 临时会话、好友必填 发至群内可不填 +/// +/// 00 基本 02 点歌 其他不明 +/// + + + bool IMpqApi.Api_SendXml([Description("")] string 响应的QQ,[Description("同Api_SendMsg 1好友 2群 3讨论组 4群临时会话 5讨论组临时会话")] int 收信对象类型,[Description("发群内、临时会话必填 好友可不填")] string 收信对象所属群_讨论组,[Description("临时会话、好友必填 发至群内可不填")] string 收信对象QQ,[Description("")] string ObjectMsg,[Description("00 基本 02 点歌 其他不明")] int 结构子类型) + =>NativeMethods.Api_SendXml(响应的QQ,收信对象类型,收信对象所属群_讨论组,收信对象QQ,ObjectMsg,结构子类型); + /// +/// ` +/// +/// +/// 同Api_SendMsg 1好友 2群 3讨论组 4群临时会话 5讨论组临时会话 +/// 发群内、临时会话必填 好友可不填 +/// 临时会话、好友必填 发至群内可不填 +/// +/// 00 基本 02 点歌 其他不明 +/// + + + bool IMpqApi.Api_SendObjectMsg([Description("")] string 响应的QQ,[Description("同Api_SendMsg 1好友 2群 3讨论组 4群临时会话 5讨论组临时会话")] int 收信对象类型,[Description("发群内、临时会话必填 好友可不填")] string 收信对象所属群_讨论组,[Description("临时会话、好友必填 发至群内可不填")] string 收信对象QQ,[Description("")] string ObjectMsg,[Description("00 基本 02 点歌 其他不明")] int 结构子类型) + =>NativeMethods.Api_SendObjectMsg(响应的QQ,收信对象类型,收信对象所属群_讨论组,收信对象QQ,ObjectMsg,结构子类型); + /// +/// 判断对象是否为好友(双向)` +/// +/// +/// +/// + + + bool IMpqApi.Api_IsFriend([Description("")] string 响应的QQ,[Description("")] string 对象QQ) + =>NativeMethods.Api_IsFriend(响应的QQ,对象QQ); + /// +/// 主动加好友 成功返回真 失败返回假 当对象设置需要正确回答问题或不允许任何人添加时无条件失败 +/// +/// 机器人QQ +/// 加谁 +/// 加好友提交的理由 +/// + + + bool IMpqApi.Api_AddFriend([Description("机器人QQ")] string 响应的QQ,[Description("加谁")] string 对象QQ,[Description("加好友提交的理由")] string 附加理由) + =>NativeMethods.Api_AddFriend(响应的QQ,对象QQ,附加理由); + /// +/// 无参 用于插件自身请求禁用插件自身 +/// +/// + + + void IMpqApi.Api_SelfDisable() + =>NativeMethods.Api_SelfDisable(); + /// +/// 取协议客户端类型常量 失败返回0 +/// +/// + + + int IMpqApi.Api_GetClientType() + =>NativeMethods.Api_GetClientType(); + /// +/// 取协议客户端版本号常量 失败返回0 +/// +/// + + + int IMpqApi.Api_GetClientVer() + =>NativeMethods.Api_GetClientVer(); + /// +/// 取协议客户端公开版本号常量 失败返回0 +/// +/// + + + int IMpqApi.Api_GetPubNo() + =>NativeMethods.Api_GetPubNo(); + /// +/// 取协议客户端主版本号常量 失败返回0 +/// +/// + + + int IMpqApi.Api_GetMainVer() + =>NativeMethods.Api_GetMainVer(); + /// +/// 取协议客户端通信模块(TXSSO)版本号常量 失败返回0 +/// +/// + + + int IMpqApi.Api_GetTXSSOVer() + =>NativeMethods.Api_GetTXSSOVer(); + /// +/// 通过音频、语音guid取得下载连接 +/// +/// +/// 格式:{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx}.amr +/// + + + string IMpqApi.Api_GuidGetVoiceLink([Description("")] string 响应的QQ,[Description("格式:{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx}.amr")] string GUID) + =>NativeMethods.Api_GuidGetVoiceLink(响应的QQ,GUID); + /// +/// 上传音频文件 成功返回guid用于发送 +/// +/// +/// 音频字节集数据 +/// + + + string IMpqApi.Api_UploadVoice([Description("")] string 响应的QQ,[Description("音频字节集数据")] byte[] amr音频数据) + =>NativeMethods.Api_UploadVoice(响应的QQ,amr音频数据); + /// +/// 移除由Api_AddLogHandler添加、设置的日志处理函数 +/// +/// + + + void IMpqApi.Api_RemoveLogHandler() + =>NativeMethods.Api_RemoveLogHandler(); + /// +/// 取群名 +/// +/// +/// +/// + + + string IMpqApi.Api_GetGroupName([Description("")] string 响应的QQ,[Description("")] string 群号) + =>NativeMethods.Api_GetGroupName(响应的QQ,群号); + /// +/// 移除\取消由Api_SetMsgFilter所添加\设置的处理函数 +/// +/// + + + void IMpqApi.Api_RemoveMsgFilter() + =>NativeMethods.Api_RemoveMsgFilter(); + /// +/// QQ名片赞 10赞每Q每日 至多50人\日系列 成功返回空 失败返回理由(腾讯爸爸给出的) 一次一赞 速度请自行管控以免冻结 +/// +/// +/// +/// + + + string IMpqApi.Api_Like([Description("")] string 参_响应的QQ,[Description("")] string 参_被赞QQ) + =>NativeMethods.Api_Like(参_响应的QQ,参_被赞QQ); + /// +/// 上传群文件 +/// +/// +/// +/// 实际显示在群文件列表中的文件名 +/// 本地文件路径 选填 +/// 图片字节集数据 选填 +/// + + + bool IMpqApi.Api_UploadGroupFile([Description("")] string 参_响应的QQ,[Description("")] string 参_群号,[Description("实际显示在群文件列表中的文件名")] string 参_上传文件名,[Description("本地文件路径 选填")] string 参_路径,[Description("图片字节集数据 选填")] byte[] 参_图片数据) + =>NativeMethods.Api_UploadGroupFile(参_响应的QQ,参_群号,参_上传文件名,参_路径,参_图片数据); + /// +/// 根据图片GUID取得图片下载连接 失败返回空 +/// +/// {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}.jpg这样的GUID +/// 1好友\临时会话图片 2 群图 +/// 好友QQ或群号 根据参数2填写 +/// + + + string IMpqApi.Api_GuidGetPicLinkEx([Description("{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}.jpg这样的GUID")] string 参_图片GUID,[Description("1好友\临时会话图片 2 群图")] int 参_图片类型,[Description("好友QQ或群号 根据参数2填写")] string 参_图片参考对象) + =>NativeMethods.Api_GuidGetPicLinkEx(参_图片GUID,参_图片类型,参_图片参考对象); + /// +/// 撤回群信息 需为群管 +/// +/// 机器人QQ +/// Event函数中的'参_原始信息' 经过解密后的封包字节数据 +/// + + + bool IMpqApi.Api_CancelGroupMsgA([Description("机器人QQ")] string 响应的QQ,[Description("Event函数中的'参_原始信息' 经过解密后的封包字节数据")] string 原始信息) + =>NativeMethods.Api_CancelGroupMsgA(响应的QQ,原始信息); + /// +/// 取得用于登陆腾讯子业务的Cookies 如xxx.qq.com +/// +/// +/// 如qun.qq.com +/// + + + string IMpqApi.Api_GetCookiesByDomain([Description("")] string 响应的QQ,[Description("如qun.qq.com")] string 域名) + =>NativeMethods.Api_GetCookiesByDomain(响应的QQ,域名); + /// +/// +/// +/// +/// + + + void IMpqApi.Api_ChangeProtocol([Description("")] int i) + =>NativeMethods.Api_ChangeProtocol(i); + /// +/// 从框架中删除QQ +/// +/// +/// + + + void IMpqApi.Api_DeleteQQ([Description("")] string 被操作QQ) + =>NativeMethods.Api_DeleteQQ(被操作QQ); + /// +/// +/// +/// +/// 同Api_SendMsg 1好友 2群 3讨论组 4群临时会话 5讨论组临时会话 +/// 文本型, , 发群内、临时会话必填 好友可不填 +/// 临时会话、好友必填 发至群内可不填 +/// +/// + + + bool IMpqApi.Api_SendAppMsg([Description("")] string 响应的QQ,[Description("同Api_SendMsg 1好友 2群 3讨论组 4群临时会话 5讨论组临时会话")] int 收信对象类型,[Description("文本型, , 发群内、临时会话必填 好友可不填")] string 信对象所属群_讨论组,[Description("临时会话、好友必填 发至群内可不填")] string 收信对象QQ,[Description("")] string AppMsg) + =>NativeMethods.Api_SendAppMsg(响应的QQ,收信对象类型,信对象所属群_讨论组,收信对象QQ,AppMsg); + /// +/// 取生日 失败返回空 未公开生日信息返回 "0年0月0日" +/// +/// +/// +/// + + + string IMpqApi.Api_GetBirthday([Description("")] string 响应的QQ,[Description("")] string QQ) + =>NativeMethods.Api_GetBirthday(响应的QQ,QQ); + /// +/// 取用户个人信息页面字节数据 包含各种资料 返回内容为原始明文数据 +/// +/// +/// +/// + + + string IMpqApi.Api_GetUserInfo([Description("")] string 响应的QQ,[Description("")] string QQ) + =>NativeMethods.Api_GetUserInfo(响应的QQ,QQ); + /// +/// +/// +/// +/// + + + string IMpqApi.Api_GetFriendListA([Description("")] string 响应的QQ) + =>NativeMethods.Api_GetFriendListA(响应的QQ); + /// +/// 仅商用版可用 +/// +/// + + + string IMpqApi.Api_GetLoginQRCode() + =>NativeMethods.Api_GetLoginQRCode(); + /// +/// 仅商用版可用 上传头像 接受字节集参数 返回值:0 上传成功 -1参数有误 -2图片大于1MB -3获取上传令牌失败受限 -4其他理由上传失败 +/// +/// 机器人QQ +/// 图片字节集数据,由于易语言DLL限制你可能在这里读到的是"整数型" 请自己改成字节集,图片不限PNG JPG 大小1MB以内 +/// + + + int IMpqApi.Api_UploadCface_Byte([Description("机器人QQ")] string 参_响应的QQ,[Description("图片字节集数据,由于易语言DLL限制你可能在这里读到的是"整数型" 请自己改成字节集,图片不限PNG JPG 大小1MB以内")] int 参_图片数据) + =>NativeMethods.Api_UploadCface_Byte(参_响应的QQ,参_图片数据); + /// +/// 仅商用版可用 上传头像 接受路径参数 URL 或 本地路径 返回值:0 上传成功 -1参数有误 -2图片大于1MB -3获取上传令牌失败受限 -4其他理由上传失败 +/// +/// 机器人QQ +/// 路径 可选URL 或 本地路径 http://www.baidu,com/图片.jpg C:\1.jpg, +/// + + + int IMpqApi.Api_UploadCface_Path([Description("机器人QQ")] string 参_响应的QQ,[Description("路径 可选URL 或 本地路径 http://www.baidu,com/图片.jpg C:\1.jpg,")] string 参_图片路径) + =>NativeMethods.Api_UploadCface_Path(参_响应的QQ,参_图片路径); + /// +/// 异步处理被加好友事件 在事件1001下返回值需>30 如50 以强制忽略且确保无其他插件处理 +/// +/// 在事件1001下取得 参_原始信息 填入 +/// 0忽略 10同意 20拒绝 30单向同意(成为单向好友) +/// 拒绝时的附加理由 可以留空 +/// + + + void IMpqApi.Api_HandleFriendRequestAsync([Description("在事件1001下取得 参_原始信息 填入")] string 参_原始信息,[Description("0忽略 10同意 20拒绝 30单向同意(成为单向好友)")] int 参_处理方式,[Description("拒绝时的附加理由 可以留空")] string 参_附加信息) + =>NativeMethods.Api_HandleFriendRequestAsync(参_原始信息,参_处理方式,参_附加信息); + /// +/// 异步处理被加群类事件 在事件200x下返回值需>30 如50 以强制忽略且确保无其他插件处理 +/// +/// 机器人QQ +/// 在事件200x下取得 参_原始信息 填入 +/// 0忽略 10同意 20拒绝 30拒绝并不再接受 +/// 拒绝时的附加理由 可以留空 +/// + + + void IMpqApi.Api_HandleGroupRequestAsync([Description("机器人QQ")] string 参_响应的QQ,[Description("在事件200x下取得 参_原始信息 填入")] string 参_原始信息,[Description("0忽略 10同意 20拒绝 30拒绝并不再接受")] int 参_处理方式,[Description("拒绝时的附加理由 可以留空")] string 参_附加信息) + =>NativeMethods.Api_HandleGroupRequestAsync(参_响应的QQ,参_原始信息,参_处理方式,参_附加信息); + private static class NativeMethods + { + /// +/// 根据提交的QQ号计算得到页面操作用参数Bkn或G_tk` +/// +/// +/// + + [DllImport("Message.dll")] + public static extern string Api_GetGtk_Bkn([Description("")] string 响应的QQ); + /// +/// 根据提交的QQ号计算得到页面操作用参数长Bkn或长G_tk` +/// +/// +/// + + [DllImport("Message.dll")] + public static extern string Api_GetBkn32([Description("")] string 响应的QQ); + /// +/// 根据提交的QQ号计算得到页面操作用参数长Ldw` +/// +/// +/// + + [DllImport("Message.dll")] + public static extern string Api_GetLdw([Description("")] string 响应的QQ); + /// +/// 取得框架所在目录.可能鸡肋了。` +/// +/// + + [DllImport("Message.dll")] + public static extern string Api_GetRunPath(); + /// +/// 取得当前框架内在线可用的QQ列表` +/// +/// + + [DllImport("Message.dll")] + public static extern string Api_GetOnlineQQlist(); + /// +/// 取得框架内所有QQ列表。包括未登录以及登录失败的QQ` +/// +/// + + [DllImport("Message.dll")] + public static extern string Api_GetQQlist(); + /// +/// 根据QQ取得对应的会话秘钥` +/// +/// +/// + + [DllImport("Message.dll")] + public static extern string Api_GetSessionkey([Description("")] string 响应的QQ); + /// +/// 取得页面登录用的Clientkey` +/// +/// +/// + + [DllImport("Message.dll")] + public static extern string Api_GetClientkey([Description("")] string 响应的QQ); + /// +/// 取得页面登录用的长Clientkey` +/// +/// +/// + + [DllImport("Message.dll")] + public static extern string Api_GetLongClientkey([Description("")] string 响应的QQ); + /// +/// 取得页面操作用的Cookies` +/// +/// +/// + + [DllImport("Message.dll")] + public static extern string Api_GetCookies([Description("")] string 响应的QQ); + /// +/// 取得框架内设置的信息发送前缀` +/// +/// + + [DllImport("Message.dll")] + public static extern string Api_GetPrefix(); + /// +/// 将群名片加入高速缓存当作.` +/// +/// +/// +/// +/// + + [DllImport("Message.dll")] + public static extern void Api_Cache_NameCard([Description("")] string 群号,[Description("")] string QQ,[Description("")] string 名片); + /// +/// 将指定QQ移出QQ黑名单` +/// +/// +/// +/// + + [DllImport("Message.dll")] + public static extern void Api_DBan([Description("")] string 响应的QQ,[Description("")] string QQ); + /// +/// 将指定QQ列入QQ黑名单` +/// +/// +/// +/// + + [DllImport("Message.dll")] + public static extern void Api_Ban([Description("")] string 响应的QQ,[Description("")] string QQ); + /// +/// 禁言群成员` +/// +/// +/// 禁言对象所在群. +/// 禁言对象.留空为全群禁言 +/// 单位:秒 最大为1个月. 为零解除对象或全群禁言 +/// + + [DllImport("Message.dll")] + public static extern bool Api_Shutup([Description("")] string 响应的QQ,[Description("禁言对象所在群.")] string 群号,[Description("禁言对象.留空为全群禁言")] string QQ,[Description("单位:秒 最大为1个月. 为零解除对象或全群禁言")] int 时长); + /// +/// 根据群号+QQ判断指定群员是否被禁言 获取失败的情况下亦会返回假 +/// +/// +/// 欲判断对象所在群. +/// 欲判断对象 +/// + + [DllImport("Message.dll")] + public static extern bool Api_IsShutup([Description("")] string 响应的QQ,[Description("欲判断对象所在群.")] string 群号,[Description("欲判断对象")] string QQ); + /// +/// 发群公告` +/// +/// +/// +/// +/// +/// + + [DllImport("Message.dll")] + public static extern void Api_SetNotice([Description("")] string 响应的QQ,[Description("")] string 群号,[Description("")] string 标题,[Description("")] string 内容); + /// +/// 取群公告` +/// +/// +/// +/// + + [DllImport("Message.dll")] + public static extern string Api_GetNotice([Description("")] string 响应的QQ,[Description("")] string 群号); + /// +/// 取群名片` +/// +/// +/// +/// +/// + + [DllImport("Message.dll")] + public static extern string Api_GetNameCard([Description("")] string 响应的QQ,[Description("")] string 群号,[Description("")] string QQ); + /// +/// 设置群名片` +/// +/// +/// +/// +/// +/// + + [DllImport("Message.dll")] + public static extern void Api_SetNameCard([Description("")] string 响应的QQ,[Description("")] string 群号,[Description("")] string QQ,[Description("")] string 名片); + /// +/// 退出讨论组` +/// +/// +/// +/// + + [DllImport("Message.dll")] + public static extern void Api_QuitDG([Description("")] string 响应的QQ,[Description("")] string 讨论组ID); + /// +/// 删除好友` +/// +/// +/// +/// + + [DllImport("Message.dll")] + public static extern bool Api_DelFriend([Description("")] string 响应的QQ,[Description("")] string QQ); + /// +/// 将对象移除群` +/// +/// +/// +/// +/// + + [DllImport("Message.dll")] + public static extern bool Api_Kick([Description("")] string 响应的QQ,[Description("")] string 群号,[Description("")] string 对象); + /// +/// 主动加群.为了避免广告、群发行为。出现验证码时将会直接失败不处理` +/// +/// +/// +/// +/// + + [DllImport("Message.dll")] + public static extern void Api_JoinGroup([Description("")] string 响应的QQ,[Description("")] string 群号,[Description("")] string 附加理由); + /// +/// 退出群` +/// +/// +/// +/// + + [DllImport("Message.dll")] + public static extern void Api_QuitGroup([Description("")] string 响应的QQ,[Description("")] string 群号); + /// +/// 返回值:成功返回图片GUID用于发送该图片.失败返回空. 图片尺寸应小于4MB` +/// +/// 机器人QQ +/// 1好友2群 注:好友图和群图的GUID并不相同并不通用 需要非别上传。群、讨论组用类型2 临时会话、好友信息需要类型1 +/// 上传该图片所属的群号或QQ +/// 址, 图片字节集数据或字节集数据指针() +/// + + [DllImport("Message.dll")] + public static extern string Api_UploadPic([Description("机器人QQ")] string 响应的QQ,[Description("1好友2群 注:好友图和群图的GUID并不相同并不通用 需要非别上传。群、讨论组用类型2 临时会话、好友信息需要类型1")] int 参_上传类型,[Description("上传该图片所属的群号或QQ")] string 参_参考对象,[Description("址, 图片字节集数据或字节集数据指针()")] byte[] 参_图片数据); + /// +/// 根据图片GUID取得图片下载连接 失败返回空` +/// +/// {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}.jpg这样的GUID +/// + + [DllImport("Message.dll")] + public static extern string Api_GuidGetPicLink([Description("{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}.jpg这样的GUID")] string 图片GUID); + /// +/// 回复信息 请尽量避免使用该API` +/// +/// +/// 1好友 2群 3讨论组 4群临时会话 5讨论组临时会话 +/// 接收这条信息的对象 +/// 信息内容 +/// + + [DllImport("Message.dll")] + public static extern int Api_Reply([Description("")] string 响应的QQ,[Description("1好友 2群 3讨论组 4群临时会话 5讨论组临时会话")] int 信息类型,[Description("接收这条信息的对象")] string 回复对象,[Description("信息内容")] string 内容); + /// +/// 向对象、目标发送信息 支持好友 群 讨论组 群临时会话 讨论组临时会话` +/// +/// +/// 1好友 2群 3讨论组 4群临时会话 5讨论组临时会话 +/// 无特殊说明情况下留空或填零 +/// 发送群信息、讨论组信息、群临时会话信息、讨论组临时会话信息时填写 +/// 最终接收这条信息的对象QQ +/// 信息内容 +/// + + [DllImport("Message.dll")] + public static extern int Api_SendMsg([Description("")] string 响应的QQ,[Description("1好友 2群 3讨论组 4群临时会话 5讨论组临时会话")] int 信息类型,[Description("无特殊说明情况下留空或填零")] int 参考子类型,[Description("发送群信息、讨论组信息、群临时会话信息、讨论组临时会话信息时填写")] string 收信群_讨论组,[Description("最终接收这条信息的对象QQ")] string 收信对象,[Description("信息内容")] string 内容); + /// +/// 发送封包` +/// +/// +/// + + [DllImport("Message.dll")] + public static extern string Api_Send([Description("")] string 封包内容); + /// +/// 在框架记录页输出一行信息` +/// +/// 输出的内容 +/// + + [DllImport("Message.dll")] + public static extern int Api_OutPut([Description("输出的内容")] string 内容); + /// +/// 取得本插件启用状态` +/// +/// + + [DllImport("Message.dll")] + public static extern bool Api_IsEnable(); + /// +/// 登录一个现存的QQ` +/// +/// 欲登录的Q +/// + + [DllImport("Message.dll")] + public static extern bool Api_Login([Description("欲登录的Q")] string QQ); + /// +/// 让指定QQ下线` +/// +/// +/// + + [DllImport("Message.dll")] + public static extern void Api_Logout([Description("")] string QQ); + /// +/// tean加密算法` +/// +/// +/// +/// + + [DllImport("Message.dll")] + public static extern string Api_Tea加密([Description("")] string 加密内容,[Description("")] string Key); + /// +/// tean解密算法` +/// +/// +/// +/// + + [DllImport("Message.dll")] + public static extern string Api_Tea解密([Description("")] string 解密内容,[Description("")] string Key); + /// +/// 取用户名` +/// +/// +/// + + [DllImport("Message.dll")] + public static extern string Api_GetNick([Description("")] string QQ); + /// +/// 取QQ等级+QQ会员等级 返回json格式信息` +/// +/// +/// + + [DllImport("Message.dll")] + public static extern string Api_GetQQLevel([Description("")] string QQ); + /// +/// 群号转群ID` +/// +/// +/// + + [DllImport("Message.dll")] + public static extern string Api_GNGetGid([Description("")] string 群号); + /// +/// 群ID转群号` +/// +/// +/// + + [DllImport("Message.dll")] + public static extern string Api_GidGetGN([Description("")] string 群ID); + /// +/// 取框架版本号(发布时间戳` +/// +/// + + [DllImport("Message.dll")] + public static extern int Api_GetVersion(); + /// +/// 取框架版本名` +/// +/// + + [DllImport("Message.dll")] + public static extern string Api_GetVersionName(); + /// +/// 取当前框架内部时间戳_周期性与服务器时间同步` +/// +/// + + [DllImport("Message.dll")] + public static extern int Api_GetTimeStamp(); + /// +/// 取得框架输出列表内所有信息` +/// +/// + + [DllImport("Message.dll")] + public static extern string Api_GetLog(); + /// +/// 判断是否处于被屏蔽群信息状态。` +/// +/// +/// + + [DllImport("Message.dll")] + public static extern bool Api_IfBlock([Description("")] string 响应的QQ); + /// +/// 取包括群主在内的群管列表` +/// +/// +/// +/// + + [DllImport("Message.dll")] + public static extern string Api_GetAdminList([Description("")] string 响应的QQ,[Description("")] string 群号); + /// +/// 发说说` +/// +/// +/// +/// + + [DllImport("Message.dll")] + public static extern string Api_AddTaotao([Description("")] string 响应的QQ,[Description("")] string 内容); + /// +/// 取个签` +/// +/// +/// +/// + + [DllImport("Message.dll")] + public static extern string Api_GetSign([Description("")] string 响应的QQ,[Description("")] string 对象); + /// +/// 设置个签` +/// +/// +/// +/// + + [DllImport("Message.dll")] + public static extern string Api_SetSign([Description("")] string 响应的QQ,[Description("")] string 内容); + /// +/// 通过qun.qzone.qq.com接口取得取群列表.成功返回转码后的JSON格式文本信息` +/// +/// +/// + + [DllImport("Message.dll")] + public static extern string Api_GetGroupListA([Description("")] string 响应的QQ); + /// +/// 通过qun.qq.com接口取得取群列表.成功返回转码后的JSON格式文本信息` +/// +/// +/// + + [DllImport("Message.dll")] + public static extern string Api_GetGroupListB([Description("")] string 响应的QQ); + /// +/// 通过qun.qq.com接口取得群成员列表 成功返回转码后的JSON格式文本` +/// +/// +/// +/// + + [DllImport("Message.dll")] + public static extern string Api_GetGroupMemberA([Description("")] string 响应的QQ,[Description("")] string 群号); + /// +/// 通过qun.qzone.qq.com接口取得群成员列表 成功返回转码后的JSON格式文本` +/// +/// +/// +/// + + [DllImport("Message.dll")] + public static extern string Api_GetGroupMemberB([Description("")] string 响应的QQ,[Description("")] string 群号); + /// +/// 通过qun.qq.com接口取得好友列表。成功返回转码后的JSON文本` +/// +/// +/// + + [DllImport("Message.dll")] + public static extern string Api_GetFriendList([Description("")] string 响应的QQ); + /// +/// 取Q龄 成功返回Q龄 失败返回-1` +/// +/// +/// +/// + + [DllImport("Message.dll")] + public static extern int Api_GetQQAge([Description("")] string 响应的QQ,[Description("")] string QQ); + /// +/// 取年龄 成功返回年龄 失败返回-1` +/// +/// +/// +/// + + [DllImport("Message.dll")] + public static extern int Api_GetAge([Description("")] string 响应的QQ,[Description("")] string QQ); + /// +/// 取个人说明` +/// +/// +/// 对象QQ +/// + + [DllImport("Message.dll")] + public static extern string Api_GetPersonalProfile([Description("")] string 响应的QQ,[Description("对象QQ")] string QQ); + /// +/// 取邮箱 成功返回邮箱 失败返回空` +/// +/// +/// +/// + + [DllImport("Message.dll")] + public static extern string Api_GetEmail([Description("")] string 响应的QQ,[Description("")] string QQ); + /// +/// 取对象性别 1男 2女 未或失败返回-1` +/// +/// +/// +/// + + [DllImport("Message.dll")] + public static extern int Api_GetGender([Description("")] string 响应的QQ,[Description("")] string QQ); + /// +/// 向好友发送‘正在输入’的状态信息.当好友收到信息之后 “正在输入”状态会立刻被打断` +/// +/// +/// +/// + + [DllImport("Message.dll")] + public static extern int Api_SendTyping([Description("")] string 响应的QQ,[Description("")] string QQ); + /// +/// 向好友发送窗口抖动信息` +/// +/// +/// +/// + + [DllImport("Message.dll")] + public static extern int Api_SendShake([Description("")] string 响应的QQ,[Description("")] string QQ); + /// +/// 取得框架内随机一个在线且可以使用的QQ` +/// +/// + + [DllImport("Message.dll")] + public static extern string Api_GetRadomOnlineQQ(); + /// +/// 往帐号列表添加一个Q.当该Q已存在时则覆盖密码` +/// +/// +/// +/// 运行框架时是否自动登录该Q.若添加后需要登录该Q则需要通过Api_Login操作 +/// + + [DllImport("Message.dll")] + public static extern bool Api_AddQQ([Description("")] string QQ,[Description("")] string 密码,[Description("运行框架时是否自动登录该Q.若添加后需要登录该Q则需要通过Api_Login操作")] bool 自动登录); + /// +/// 设置在线状态+附加信息 ` +/// +/// +/// 1~6 分别对应我在线上, Q我吧, 离开, 忙碌, 请勿打扰, 隐身 +/// 最大255字节 +/// + + [DllImport("Message.dll")] + public static extern bool Api_SetOLStatus([Description("")] string 响应的QQ,[Description("1~6 分别对应我在线上, Q我吧, 离开, 忙碌, 请勿打扰, 隐身")] int 在线状态,[Description("最大255字节")] string 状态附加信息); + /// +/// 取得机器码` +/// +/// + + [DllImport("Message.dll")] + public static extern string Api_GetMC(); + /// +/// 邀请对象加入群 失败返回错误理由` +/// +/// +/// 多个好友用换行分割 +/// +/// + + [DllImport("Message.dll")] + public static extern string Api_GroupInvitation([Description("")] string 响应的QQ,[Description("多个好友用换行分割")] string 好友QQ,[Description("")] string 群号); + /// +/// 创建一个讨论组 成功返回讨论组ID 失败返回空 注:每24小时只能创建100个讨论组 悠着点用` +/// +/// +/// + + [DllImport("Message.dll")] + public static extern string Api_CreateDG([Description("")] string 响应的QQ); + /// +/// 将对象移除讨论组.成功返回空 失败返回理由` +/// +/// +/// +/// +/// + + [DllImport("Message.dll")] + public static extern string Api_KickDG([Description("")] string 响应的QQ,[Description("")] string 讨论组ID,[Description("")] string 成员); + /// +/// 邀请对象加入讨论组 成功返回空 失败返回理由` +/// +/// +/// +/// 多个成员用换行符分割 +/// + + [DllImport("Message.dll")] + public static extern string Api_DGInvitation([Description("")] string 响应的QQ,[Description("")] string 讨论组ID,[Description("多个成员用换行符分割")] string 成员组); + /// +/// 成功返回以换行符分割的讨论组号列表.最大为100个讨论组 失败返回空` +/// +/// +/// + + [DllImport("Message.dll")] + public static extern string Api_GetDGList([Description("")] string 响应的QQ); + /// +/// 向对象发送一条音乐信息(所谓的点歌)次数不限` +/// +/// +/// 同Api_SendMsg 1好友 2群 3讨论组 4群临时会话 5讨论组临时会话 +/// 发群内、临时会话必填 好友可不填 +/// 临时会话、好友必填 发至群内可不填 +/// 留空默认‘QQ音乐 的分享’ +/// 任意直连或短链接均可 留空为空 无法点开 +/// 任意直连或短链接均可 可空 例:http://url.cn/cDiJT4 +/// 任意直连或短链接均可 不可空 例:http://url.cn/djwXjr +/// 可空 +/// 可空 +/// 可空 为空默认QQ音乐 +/// 可空 为空默认QQ音乐 http://qzonestyle.gtimg.cn/ac/qzone/applogo/64/308/100497308_64.gif +/// + + [DllImport("Message.dll")] + public static extern bool Api_SendMusic([Description("")] string 响应的QQ,[Description("同Api_SendMsg 1好友 2群 3讨论组 4群临时会话 5讨论组临时会话")] int 收信对象类型,[Description("发群内、临时会话必填 好友可不填")] string 收信对象所属群_讨论组,[Description("临时会话、好友必填 发至群内可不填")] string 收信对象QQ,[Description("留空默认‘QQ音乐 的分享’")] string 音乐简介,[Description("任意直连或短链接均可 留空为空 无法点开")] string 音乐播放页面连接,[Description("任意直连或短链接均可 可空 例:http://url.cn/cDiJT4")] string 音乐封面连接,[Description("任意直连或短链接均可 不可空 例:http://url.cn/djwXjr")] string 音乐文件直连连接,[Description("可空")] string 曲名,[Description("可空")] string 歌手名,[Description("可空 为空默认QQ音乐")] string 音乐来源名,[Description("可空 为空默认QQ音乐 http://qzonestyle.gtimg.cn/ac/qzone/applogo/64/308/100497308_64.gif")] string 音乐来源图标连接); + /// +/// ` +/// +/// +/// 同Api_SendMsg 1好友 2群 3讨论组 4群临时会话 5讨论组临时会话 +/// 发群内、临时会话必填 好友可不填 +/// 临时会话、好友必填 发至群内可不填 +/// +/// 00 基本 02 点歌 其他不明 +/// + + [DllImport("Message.dll")] + public static extern bool Api_SendXml([Description("")] string 响应的QQ,[Description("同Api_SendMsg 1好友 2群 3讨论组 4群临时会话 5讨论组临时会话")] int 收信对象类型,[Description("发群内、临时会话必填 好友可不填")] string 收信对象所属群_讨论组,[Description("临时会话、好友必填 发至群内可不填")] string 收信对象QQ,[Description("")] string ObjectMsg,[Description("00 基本 02 点歌 其他不明")] int 结构子类型); + /// +/// ` +/// +/// +/// 同Api_SendMsg 1好友 2群 3讨论组 4群临时会话 5讨论组临时会话 +/// 发群内、临时会话必填 好友可不填 +/// 临时会话、好友必填 发至群内可不填 +/// +/// 00 基本 02 点歌 其他不明 +/// + + [DllImport("Message.dll")] + public static extern bool Api_SendObjectMsg([Description("")] string 响应的QQ,[Description("同Api_SendMsg 1好友 2群 3讨论组 4群临时会话 5讨论组临时会话")] int 收信对象类型,[Description("发群内、临时会话必填 好友可不填")] string 收信对象所属群_讨论组,[Description("临时会话、好友必填 发至群内可不填")] string 收信对象QQ,[Description("")] string ObjectMsg,[Description("00 基本 02 点歌 其他不明")] int 结构子类型); + /// +/// 判断对象是否为好友(双向)` +/// +/// +/// +/// + + [DllImport("Message.dll")] + public static extern bool Api_IsFriend([Description("")] string 响应的QQ,[Description("")] string 对象QQ); + /// +/// 主动加好友 成功返回真 失败返回假 当对象设置需要正确回答问题或不允许任何人添加时无条件失败 +/// +/// 机器人QQ +/// 加谁 +/// 加好友提交的理由 +/// + + [DllImport("Message.dll")] + public static extern bool Api_AddFriend([Description("机器人QQ")] string 响应的QQ,[Description("加谁")] string 对象QQ,[Description("加好友提交的理由")] string 附加理由); + /// +/// 无参 用于插件自身请求禁用插件自身 +/// +/// + + [DllImport("Message.dll")] + public static extern void Api_SelfDisable(); + /// +/// 取协议客户端类型常量 失败返回0 +/// +/// + + [DllImport("Message.dll")] + public static extern int Api_GetClientType(); + /// +/// 取协议客户端版本号常量 失败返回0 +/// +/// + + [DllImport("Message.dll")] + public static extern int Api_GetClientVer(); + /// +/// 取协议客户端公开版本号常量 失败返回0 +/// +/// + + [DllImport("Message.dll")] + public static extern int Api_GetPubNo(); + /// +/// 取协议客户端主版本号常量 失败返回0 +/// +/// + + [DllImport("Message.dll")] + public static extern int Api_GetMainVer(); + /// +/// 取协议客户端通信模块(TXSSO)版本号常量 失败返回0 +/// +/// + + [DllImport("Message.dll")] + public static extern int Api_GetTXSSOVer(); + /// +/// 通过音频、语音guid取得下载连接 +/// +/// +/// 格式:{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx}.amr +/// + + [DllImport("Message.dll")] + public static extern string Api_GuidGetVoiceLink([Description("")] string 响应的QQ,[Description("格式:{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx}.amr")] string GUID); + /// +/// 上传音频文件 成功返回guid用于发送 +/// +/// +/// 音频字节集数据 +/// + + [DllImport("Message.dll")] + public static extern string Api_UploadVoice([Description("")] string 响应的QQ,[Description("音频字节集数据")] byte[] amr音频数据); + /// +/// 移除由Api_AddLogHandler添加、设置的日志处理函数 +/// +/// + + [DllImport("Message.dll")] + public static extern void Api_RemoveLogHandler(); + /// +/// 取群名 +/// +/// +/// +/// + + [DllImport("Message.dll")] + public static extern string Api_GetGroupName([Description("")] string 响应的QQ,[Description("")] string 群号); + /// +/// 移除\取消由Api_SetMsgFilter所添加\设置的处理函数 +/// +/// + + [DllImport("Message.dll")] + public static extern void Api_RemoveMsgFilter(); + /// +/// QQ名片赞 10赞每Q每日 至多50人\日系列 成功返回空 失败返回理由(腾讯爸爸给出的) 一次一赞 速度请自行管控以免冻结 +/// +/// +/// +/// + + [DllImport("Message.dll")] + public static extern string Api_Like([Description("")] string 参_响应的QQ,[Description("")] string 参_被赞QQ); + /// +/// 上传群文件 +/// +/// +/// +/// 实际显示在群文件列表中的文件名 +/// 本地文件路径 选填 +/// 图片字节集数据 选填 +/// + + [DllImport("Message.dll")] + public static extern bool Api_UploadGroupFile([Description("")] string 参_响应的QQ,[Description("")] string 参_群号,[Description("实际显示在群文件列表中的文件名")] string 参_上传文件名,[Description("本地文件路径 选填")] string 参_路径,[Description("图片字节集数据 选填")] byte[] 参_图片数据); + /// +/// 根据图片GUID取得图片下载连接 失败返回空 +/// +/// {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}.jpg这样的GUID +/// 1好友\临时会话图片 2 群图 +/// 好友QQ或群号 根据参数2填写 +/// + + [DllImport("Message.dll")] + public static extern string Api_GuidGetPicLinkEx([Description("{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}.jpg这样的GUID")] string 参_图片GUID,[Description("1好友\临时会话图片 2 群图")] int 参_图片类型,[Description("好友QQ或群号 根据参数2填写")] string 参_图片参考对象); + /// +/// 撤回群信息 需为群管 +/// +/// 机器人QQ +/// Event函数中的'参_原始信息' 经过解密后的封包字节数据 +/// + + [DllImport("Message.dll")] + public static extern bool Api_CancelGroupMsgA([Description("机器人QQ")] string 响应的QQ,[Description("Event函数中的'参_原始信息' 经过解密后的封包字节数据")] string 原始信息); + /// +/// 取得用于登陆腾讯子业务的Cookies 如xxx.qq.com +/// +/// +/// 如qun.qq.com +/// + + [DllImport("Message.dll")] + public static extern string Api_GetCookiesByDomain([Description("")] string 响应的QQ,[Description("如qun.qq.com")] string 域名); + /// +/// +/// +/// +/// + + [DllImport("Message.dll")] + public static extern void Api_ChangeProtocol([Description("")] int i); + /// +/// 从框架中删除QQ +/// +/// +/// + + [DllImport("Message.dll")] + public static extern void Api_DeleteQQ([Description("")] string 被操作QQ); + /// +/// +/// +/// +/// 同Api_SendMsg 1好友 2群 3讨论组 4群临时会话 5讨论组临时会话 +/// 文本型, , 发群内、临时会话必填 好友可不填 +/// 临时会话、好友必填 发至群内可不填 +/// +/// + + [DllImport("Message.dll")] + public static extern bool Api_SendAppMsg([Description("")] string 响应的QQ,[Description("同Api_SendMsg 1好友 2群 3讨论组 4群临时会话 5讨论组临时会话")] int 收信对象类型,[Description("文本型, , 发群内、临时会话必填 好友可不填")] string 信对象所属群_讨论组,[Description("临时会话、好友必填 发至群内可不填")] string 收信对象QQ,[Description("")] string AppMsg); + /// +/// 取生日 失败返回空 未公开生日信息返回 "0年0月0日" +/// +/// +/// +/// + + [DllImport("Message.dll")] + public static extern string Api_GetBirthday([Description("")] string 响应的QQ,[Description("")] string QQ); + /// +/// 取用户个人信息页面字节数据 包含各种资料 返回内容为原始明文数据 +/// +/// +/// +/// + + [DllImport("Message.dll")] + public static extern string Api_GetUserInfo([Description("")] string 响应的QQ,[Description("")] string QQ); + /// +/// +/// +/// +/// + + [DllImport("Message.dll")] + public static extern string Api_GetFriendListA([Description("")] string 响应的QQ); + /// +/// 仅商用版可用 +/// +/// + + [DllImport("Message.dll")] + public static extern string Api_GetLoginQRCode(); + /// +/// 仅商用版可用 上传头像 接受字节集参数 返回值:0 上传成功 -1参数有误 -2图片大于1MB -3获取上传令牌失败受限 -4其他理由上传失败 +/// +/// 机器人QQ +/// 图片字节集数据,由于易语言DLL限制你可能在这里读到的是"整数型" 请自己改成字节集,图片不限PNG JPG 大小1MB以内 +/// + + [DllImport("Message.dll")] + public static extern int Api_UploadCface_Byte([Description("机器人QQ")] string 参_响应的QQ,[Description("图片字节集数据,由于易语言DLL限制你可能在这里读到的是"整数型" 请自己改成字节集,图片不限PNG JPG 大小1MB以内")] int 参_图片数据); + /// +/// 仅商用版可用 上传头像 接受路径参数 URL 或 本地路径 返回值:0 上传成功 -1参数有误 -2图片大于1MB -3获取上传令牌失败受限 -4其他理由上传失败 +/// +/// 机器人QQ +/// 路径 可选URL 或 本地路径 http://www.baidu,com/图片.jpg C:\1.jpg, +/// + + [DllImport("Message.dll")] + public static extern int Api_UploadCface_Path([Description("机器人QQ")] string 参_响应的QQ,[Description("路径 可选URL 或 本地路径 http://www.baidu,com/图片.jpg C:\1.jpg,")] string 参_图片路径); + /// +/// 异步处理被加好友事件 在事件1001下返回值需>30 如50 以强制忽略且确保无其他插件处理 +/// +/// 在事件1001下取得 参_原始信息 填入 +/// 0忽略 10同意 20拒绝 30单向同意(成为单向好友) +/// 拒绝时的附加理由 可以留空 +/// + + [DllImport("Message.dll")] + public static extern void Api_HandleFriendRequestAsync([Description("在事件1001下取得 参_原始信息 填入")] string 参_原始信息,[Description("0忽略 10同意 20拒绝 30单向同意(成为单向好友)")] int 参_处理方式,[Description("拒绝时的附加理由 可以留空")] string 参_附加信息); + /// +/// 异步处理被加群类事件 在事件200x下返回值需>30 如50 以强制忽略且确保无其他插件处理 +/// +/// 机器人QQ +/// 在事件200x下取得 参_原始信息 填入 +/// 0忽略 10同意 20拒绝 30拒绝并不再接受 +/// 拒绝时的附加理由 可以留空 +/// + + [DllImport("Message.dll")] + public static extern void Api_HandleGroupRequestAsync([Description("机器人QQ")] string 参_响应的QQ,[Description("在事件200x下取得 参_原始信息 填入")] string 参_原始信息,[Description("0忽略 10同意 20拒绝 30拒绝并不再接受")] int 参_处理方式,[Description("拒绝时的附加理由 可以留空")] string 参_附加信息); + } +} diff --git a/src/Newbe.Tools.ELang2CSharp/source/mpq.txt b/src/Newbe.Tools.ELang2CSharp/source/mpq.txt new file mode 100644 index 0000000..0bd5edc --- /dev/null +++ b/src/Newbe.Tools.ELang2CSharp/source/mpq.txt @@ -0,0 +1,397 @@ +.版本 2 + +.DLL命令 Api_GetGtk_Bkn, 文本型, "Message.DLL", "Api_GetGtk_Bkn", 公开, 根据提交的QQ号计算得到页面操作用参数Bkn或G_tk` + .参数 响应的QQ, 文本型 + +.DLL命令 Api_GetBkn32, 文本型, "Message.DLL", "Api_GetBkn32", 公开, 根据提交的QQ号计算得到页面操作用参数长Bkn或长G_tk` + .参数 响应的QQ, 文本型 + +.DLL命令 Api_GetLdw, 文本型, "Message.DLL", "Api_GetLdw", 公开, 根据提交的QQ号计算得到页面操作用参数长Ldw` + .参数 响应的QQ, 文本型 + +.DLL命令 Api_GetRunPath, 文本型, "Message.DLL", "Api_GetRunPath", 公开, 取得框架所在目录.可能鸡肋了。` + +.DLL命令 Api_GetOnlineQQlist, 文本型, "Message.DLL", "Api_GetOnlineQQlist", 公开, 取得当前框架内在线可用的QQ列表` + +.DLL命令 Api_GetQQlist, 文本型, "Message.DLL", "Api_GetQQlist", 公开, 取得框架内所有QQ列表。包括未登录以及登录失败的QQ` + +.DLL命令 Api_GetSessionkey, 文本型, "Message.DLL", "Api_GetSessionkey", 公开, 根据QQ取得对应的会话秘钥` + .参数 响应的QQ, 文本型 + +.DLL命令 Api_GetClientkey, 文本型, "Message.DLL", "Api_GetClientkey", 公开, 取得页面登录用的Clientkey` + .参数 响应的QQ, 文本型 + +.DLL命令 Api_GetLongClientkey, 文本型, "Message.DLL", "Api_GetLongClientkey", 公开, 取得页面登录用的长Clientkey` + .参数 响应的QQ, 文本型 + +.DLL命令 Api_GetCookies, 文本型, "Message.DLL", "Api_GetCookies", 公开, 取得页面操作用的Cookies` + .参数 响应的QQ, 文本型 + +.DLL命令 Api_GetPrefix, 文本型, "Message.DLL", "Api_GetPrefix", 公开, 取得框架内设置的信息发送前缀` + +.DLL命令 Api_Cache_NameCard, , "Message.DLL", "Api_Cache_NameCard", 公开, 将群名片加入高速缓存当作.` + .参数 群号, 文本型 + .参数 QQ, 文本型 + .参数 名片, 文本型 + +.DLL命令 Api_DBan, , "Message.DLL", "Api_DBan", 公开, 将指定QQ移出QQ黑名单` + .参数 响应的QQ, 文本型 + .参数 QQ, 文本型 + +.DLL命令 Api_Ban, , "Message.DLL", "Api_Ban", 公开, 将指定QQ列入QQ黑名单` + .参数 响应的QQ, 文本型 + .参数 QQ, 文本型 + +.DLL命令 Api_Shutup, 逻辑型, "Message.DLL", "Api_Shutup", 公开, 禁言群成员` + .参数 响应的QQ, 文本型 + .参数 群号, 文本型, , 禁言对象所在群. + .参数 QQ, 文本型, , 禁言对象.留空为全群禁言 + .参数 时长, 整数型, , 单位:秒 最大为1个月. 为零解除对象或全群禁言 + +.DLL命令 Api_IsShutup, 逻辑型, "Message.DLL", "Api_IsShutup", 公开, 根据群号+QQ判断指定群员是否被禁言 获取失败的情况下亦会返回假 + .参数 响应的QQ, 文本型 + .参数 群号, 文本型, , 欲判断对象所在群. + .参数 QQ, 文本型, , 欲判断对象 + +.DLL命令 Api_SetNotice, , "Message.DLL", "Api_SetNotice", 公开, 发群公告` + .参数 响应的QQ, 文本型 + .参数 群号, 文本型 + .参数 标题, 文本型 + .参数 内容, 文本型 + +.DLL命令 Api_GetNotice, 文本型, "Message.DLL", "Api_GetNotice", 公开, 取群公告` + .参数 响应的QQ, 文本型 + .参数 群号, 文本型 + +.DLL命令 Api_GetNameCard, 文本型, "Message.DLL", "Api_GetNameCard", 公开, 取群名片` + .参数 响应的QQ, 文本型 + .参数 群号, 文本型 + .参数 QQ, 文本型 + +.DLL命令 Api_SetNameCard, , "Message.DLL", "Api_SetNameCard", 公开, 设置群名片` + .参数 响应的QQ, 文本型 + .参数 群号, 文本型 + .参数 QQ, 文本型 + .参数 名片, 文本型 + +.DLL命令 Api_QuitDG, , "Message.DLL", "Api_QuitDG", 公开, 退出讨论组` + .参数 响应的QQ, 文本型 + .参数 讨论组ID, 文本型 + +.DLL命令 Api_DelFriend, 逻辑型, "Message.DLL", "Api_DelFriend", 公开, 删除好友` + .参数 响应的QQ, 文本型 + .参数 QQ, 文本型 + +.DLL命令 Api_Kick, 逻辑型, "Message.DLL", "Api_Kick", 公开, 将对象移除群` + .参数 响应的QQ, 文本型 + .参数 群号, 文本型 + .参数 对象, 文本型 + +.DLL命令 Api_JoinGroup, , "Message.DLL", "Api_JoinGroup", 公开, 主动加群.为了避免广告、群发行为。出现验证码时将会直接失败不处理` + .参数 响应的QQ, 文本型 + .参数 群号, 文本型 + .参数 附加理由, 文本型 + +.DLL命令 Api_QuitGroup, , "Message.DLL", "Api_QuitGroup", 公开, 退出群` + .参数 响应的QQ, 文本型 + .参数 群号, 文本型 + +.DLL命令 Api_UploadPic, 文本型, "Message.DLL", "Api_UploadPic", 公开, 返回值:成功返回图片GUID用于发送该图片.失败返回空. 图片尺寸应小于4MB` + .参数 响应的QQ, 文本型, , 机器人QQ + .参数 参_上传类型, 整数型, , 1好友2群 注:好友图和群图的GUID并不相同并不通用 需要非别上传。群、讨论组用类型2 临时会话、好友信息需要类型1 + .参数 参_参考对象, 文本型, , 上传该图片所属的群号或QQ + .参数 参_图片数据, 字节集, 传址, 图片字节集数据或字节集数据指针() + +.DLL命令 Api_GuidGetPicLink, 文本型, "Message.DLL", "Api_GuidGetPicLink", 公开, 根据图片GUID取得图片下载连接 失败返回空` + .参数 图片GUID, 文本型, , {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}.jpg这样的GUID + +.DLL命令 Api_Reply, 整数型, "Message.DLL", "Api_Reply", 公开, 回复信息 请尽量避免使用该API` + .参数 响应的QQ, 文本型 + .参数 信息类型, 整数型, , 1好友 2群 3讨论组 4群临时会话 5讨论组临时会话 + .参数 回复对象, 文本型, , 接收这条信息的对象 + .参数 内容, 文本型, , 信息内容 + +.DLL命令 Api_SendMsg, 整数型, "Message.DLL", "Api_SendMsg", 公开, 向对象、目标发送信息 支持好友 群 讨论组 群临时会话 讨论组临时会话` + .参数 响应的QQ, 文本型 + .参数 信息类型, 整数型, , 1好友 2群 3讨论组 4群临时会话 5讨论组临时会话 + .参数 参考子类型, 整数型, , 无特殊说明情况下留空或填零 + .参数 收信群_讨论组, 文本型, , 发送群信息、讨论组信息、群临时会话信息、讨论组临时会话信息时填写 + .参数 收信对象, 文本型, , 最终接收这条信息的对象QQ + .参数 内容, 文本型, , 信息内容 + +.DLL命令 Api_Send, 文本型, "Message.DLL", "Api_Send", 公开, 发送封包` + .参数 封包内容, 文本型 + +.DLL命令 Api_OutPut, 整数型, "Message.DLL", "Api_OutPut", 公开, 在框架记录页输出一行信息` + .参数 内容, 文本型, , 输出的内容 + +.DLL命令 Api_IsEnable, 逻辑型, "Message.DLL", "Api_IsEnable", 公开, 取得本插件启用状态` + +.DLL命令 Api_Login, 逻辑型, "Message.DLL", "Api_Login", 公开, 登录一个现存的QQ` + .参数 QQ, 文本型, , 欲登录的Q + +.DLL命令 Api_Logout, , "Message.DLL", "Api_Logout", 公开, 让指定QQ下线` + .参数 QQ, 文本型 + +.DLL命令 Api_Tea加密, 文本型, "Message.DLL", "Api_Tea加密", 公开, tean加密算法` + .参数 加密内容, 文本型 + .参数 Key, 文本型 + +.DLL命令 Api_Tea解密, 文本型, "Message.DLL", "Api_Tea解密", 公开, tean解密算法` + .参数 解密内容, 文本型 + .参数 Key, 文本型 + +.DLL命令 Api_GetNick, 文本型, "Message.DLL", "Api_GetNick", 公开, 取用户名` + .参数 QQ, 文本型 + +.DLL命令 Api_GetQQLevel, 文本型, "Message.DLL", "Api_GetQQLevel", 公开, 取QQ等级+QQ会员等级 返回json格式信息` + .参数 QQ, 文本型 + +.DLL命令 Api_GNGetGid, 文本型, "Message.DLL", "Api_GNGetGid", 公开, 群号转群ID` + .参数 群号, 文本型 + +.DLL命令 Api_GidGetGN, 文本型, "Message.DLL", "Api_GidGetGN", 公开, 群ID转群号` + .参数 群ID, 文本型 + +.DLL命令 Api_GetVersion, 整数型, "Message.DLL", "Api_GetVersion", 公开, 取框架版本号(发布时间戳` + +.DLL命令 Api_GetVersionName, 文本型, "Message.DLL", "Api_GetVersionName", 公开, 取框架版本名` + +.DLL命令 Api_GetTimeStamp, 整数型, "Message.DLL", "Api_GetTimeStamp", 公开, 取当前框架内部时间戳_周期性与服务器时间同步` + +.DLL命令 Api_GetLog, 文本型, "Message.DLL", "Api_GetLog", 公开, 取得框架输出列表内所有信息` + +.DLL命令 Api_IfBlock, 逻辑型, "Message.DLL", "Api_IfBlock", 公开, 判断是否处于被屏蔽群信息状态。` + .参数 响应的QQ, 文本型 + +.DLL命令 Api_GetAdminList, 文本型, "Message.DLL", "Api_GetAdminList", 公开, 取包括群主在内的群管列表` + .参数 响应的QQ, 文本型 + .参数 群号, 文本型 + +.DLL命令 Api_AddTaotao, 文本型, "Message.DLL", "Api_AddTaotao", 公开, 发说说` + .参数 响应的QQ, 文本型 + .参数 内容, 文本型 + +.DLL命令 Api_GetSign, 文本型, "Message.DLL", "Api_GetSign", 公开, 取个签` + .参数 响应的QQ, 文本型 + .参数 对象, 文本型 + +.DLL命令 Api_SetSign, 文本型, "Message.DLL", "Api_SetSign", 公开, 设置个签` + .参数 响应的QQ, 文本型 + .参数 内容, 文本型 + +.DLL命令 Api_GetGroupListA, 文本型, "Message.DLL", "Api_GetGroupListA", 公开, 通过qun.qzone.qq.com接口取得取群列表.成功返回转码后的JSON格式文本信息` + .参数 响应的QQ, 文本型 + +.DLL命令 Api_GetGroupListB, 文本型, "Message.DLL", "Api_GetGroupListB", 公开, 通过qun.qq.com接口取得取群列表.成功返回转码后的JSON格式文本信息` + .参数 响应的QQ, 文本型 + +.DLL命令 Api_GetGroupMemberA, 文本型, "Message.DLL", "Api_GetGroupMemberA", 公开, 通过qun.qq.com接口取得群成员列表 成功返回转码后的JSON格式文本` + .参数 响应的QQ, 文本型 + .参数 群号, 文本型 + +.DLL命令 Api_GetGroupMemberB, 文本型, "Message.DLL", "Api_GetGroupMemberB", 公开, 通过qun.qzone.qq.com接口取得群成员列表 成功返回转码后的JSON格式文本` + .参数 响应的QQ, 文本型 + .参数 群号, 文本型 + +.DLL命令 Api_GetFriendList, 文本型, "Message.DLL", "Api_GetFriendList", 公开, 通过qun.qq.com接口取得好友列表。成功返回转码后的JSON文本` + .参数 响应的QQ, 文本型 + +.DLL命令 Api_GetQQAge, 整数型, "Message.DLL", "Api_GetQQAge", 公开, 取Q龄 成功返回Q龄 失败返回-1` + .参数 响应的QQ, 文本型 + .参数 QQ, 文本型 + +.DLL命令 Api_GetAge, 整数型, "Message.DLL", "Api_GetAge", 公开, 取年龄 成功返回年龄 失败返回-1` + .参数 响应的QQ, 文本型 + .参数 QQ, 文本型 + +.DLL命令 Api_GetPersonalProfile, 文本型, "Message.DLL", "Api_GetPersonalProfile", 公开, 取个人说明` + .参数 响应的QQ, 文本型 + .参数 QQ, 文本型, , 对象QQ + +.DLL命令 Api_GetEmail, 文本型, "Message.DLL", "Api_GetEmail", 公开, 取邮箱 成功返回邮箱 失败返回空` + .参数 响应的QQ, 文本型 + .参数 QQ, 文本型 + +.DLL命令 Api_GetGender, 整数型, "Message.DLL", "Api_GetGender", 公开, 取对象性别 1男 2女 未或失败返回-1` + .参数 响应的QQ, 文本型 + .参数 QQ, 文本型 + +.DLL命令 Api_SendTyping, 整数型, "Message.DLL", "Api_SendTyping", 公开, 向好友发送‘正在输入’的状态信息.当好友收到信息之后 “正在输入”状态会立刻被打断` + .参数 响应的QQ, 文本型 + .参数 QQ, 文本型 + +.DLL命令 Api_SendShake, 整数型, "Message.DLL", "Api_SendShake", 公开, 向好友发送窗口抖动信息` + .参数 响应的QQ, 文本型 + .参数 QQ, 文本型 + +.DLL命令 Api_GetRadomOnlineQQ, 文本型, "Message.DLL", "Api_GetRadomOnlineQQ", 公开, 取得框架内随机一个在线且可以使用的QQ` + +.DLL命令 Api_AddQQ, 逻辑型, "Message.DLL", "Api_AddQQ", 公开, 往帐号列表添加一个Q.当该Q已存在时则覆盖密码` + .参数 QQ, 文本型 + .参数 密码, 文本型 + .参数 自动登录, 逻辑型, , 运行框架时是否自动登录该Q.若添加后需要登录该Q则需要通过Api_Login操作 + +.DLL命令 Api_SetOLStatus, 逻辑型, "Message.DLL", "Api_SetOLStatus", 公开, 设置在线状态+附加信息 ` + .参数 响应的QQ, 文本型 + .参数 在线状态, 整数型, , 1~6 分别对应我在线上, Q我吧, 离开, 忙碌, 请勿打扰, 隐身 + .参数 状态附加信息, 文本型, , 最大255字节 + +.DLL命令 Api_GetMC, 文本型, "Message.DLL", "Api_GetMC", 公开, 取得机器码` + +.DLL命令 Api_GroupInvitation, 文本型, "Message.DLL", "Api_GroupInvitation", 公开, 邀请对象加入群 失败返回错误理由` + .参数 响应的QQ, 文本型 + .参数 好友QQ, 文本型, , 多个好友用换行分割 + .参数 群号, 文本型 + +.DLL命令 Api_CreateDG, 文本型, "Message.DLL", "Api_CreateDG", 公开, 创建一个讨论组 成功返回讨论组ID 失败返回空 注:每24小时只能创建100个讨论组 悠着点用` + .参数 响应的QQ, 文本型 + +.DLL命令 Api_KickDG, 文本型, "Message.DLL", "Api_KickDG", 公开, 将对象移除讨论组.成功返回空 失败返回理由` + .参数 响应的QQ, 文本型 + .参数 讨论组ID, 文本型 + .参数 成员, 文本型 + +.DLL命令 Api_DGInvitation, 文本型, "Message.DLL", "Api_DGInvitation", 公开, 邀请对象加入讨论组 成功返回空 失败返回理由` + .参数 响应的QQ, 文本型 + .参数 讨论组ID, 文本型 + .参数 成员组, 文本型, , 多个成员用换行符分割 + +.DLL命令 Api_GetDGList, 文本型, "Message.DLL", "Api_GetDGList", 公开, 成功返回以换行符分割的讨论组号列表.最大为100个讨论组 失败返回空` + .参数 响应的QQ, 文本型 + +.DLL命令 Api_SendMusic, 逻辑型, "Message.DLL", "Api_SendMusic", 公开, 向对象发送一条音乐信息(所谓的点歌)次数不限` + .参数 响应的QQ, 文本型 + .参数 收信对象类型, 整数型, , 同Api_SendMsg 1好友 2群 3讨论组 4群临时会话 5讨论组临时会话 + .参数 收信对象所属群_讨论组, 文本型, , 发群内、临时会话必填 好友可不填 + .参数 收信对象QQ, 文本型, , 临时会话、好友必填 发至群内可不填 + .参数 音乐简介, 文本型, , 留空默认‘QQ音乐 的分享’ + .参数 音乐播放页面连接, 文本型, , 任意直连或短链接均可 留空为空 无法点开 + .参数 音乐封面连接, 文本型, , 任意直连或短链接均可 可空 例:http://url.cn/cDiJT4 + .参数 音乐文件直连连接, 文本型, , 任意直连或短链接均可 不可空 例:http://url.cn/djwXjr + .参数 曲名, 文本型, , 可空 + .参数 歌手名, 文本型, , 可空 + .参数 音乐来源名, 文本型, , 可空 为空默认QQ音乐 + .参数 音乐来源图标连接, 文本型, , 可空 为空默认QQ音乐 http://qzonestyle.gtimg.cn/ac/qzone/applogo/64/308/100497308_64.gif + +.DLL命令 Api_SendXml, 逻辑型, "Message.DLL", "Api_SendXml", 公开, ` + .参数 响应的QQ, 文本型 + .参数 收信对象类型, 整数型, , 同Api_SendMsg 1好友 2群 3讨论组 4群临时会话 5讨论组临时会话 + .参数 收信对象所属群_讨论组, 文本型, , 发群内、临时会话必填 好友可不填 + .参数 收信对象QQ, 文本型, , 临时会话、好友必填 发至群内可不填 + .参数 ObjectMsg, 文本型 + .参数 结构子类型, 整数型, , 00 基本 02 点歌 其他不明 + +.DLL命令 Api_SendObjectMsg, 逻辑型, "Message.DLL", "Api_SendObjectMsg", 公开, ` + .参数 响应的QQ, 文本型 + .参数 收信对象类型, 整数型, , 同Api_SendMsg 1好友 2群 3讨论组 4群临时会话 5讨论组临时会话 + .参数 收信对象所属群_讨论组, 文本型, , 发群内、临时会话必填 好友可不填 + .参数 收信对象QQ, 文本型, , 临时会话、好友必填 发至群内可不填 + .参数 ObjectMsg, 文本型 + .参数 结构子类型, 整数型, , 00 基本 02 点歌 其他不明 + +.DLL命令 Api_IsFriend, 逻辑型, "Message.DLL", "Api_IsFriend", 公开, 判断对象是否为好友(双向)` + .参数 响应的QQ, 文本型 + .参数 对象QQ, 文本型 + +.DLL命令 Api_AddFriend, 逻辑型, "Message.DLL", "Api_AddFriend", 公开, 主动加好友 成功返回真 失败返回假 当对象设置需要正确回答问题或不允许任何人添加时无条件失败 + .参数 响应的QQ, 文本型, , 机器人QQ + .参数 对象QQ, 文本型, , 加谁 + .参数 附加理由, 文本型, , 加好友提交的理由 + +.DLL命令 Api_SelfDisable, , "Message.DLL", "Api_SelfDisable", 公开, 无参 用于插件自身请求禁用插件自身 + +.DLL命令 Api_GetClientType, 整数型, "Message.DLL", "Api_GetClientType", 公开, 取协议客户端类型常量 失败返回0 + +.DLL命令 Api_GetClientVer, 整数型, "Message.DLL", "Api_GetClientVer", 公开, 取协议客户端版本号常量 失败返回0 + +.DLL命令 Api_GetPubNo, 整数型, "Message.DLL", "Api_GetPubNo", 公开, 取协议客户端公开版本号常量 失败返回0 + +.DLL命令 Api_GetMainVer, 整数型, "Message.DLL", "Api_GetMainVer", 公开, 取协议客户端主版本号常量 失败返回0 + +.DLL命令 Api_GetTXSSOVer, 整数型, "Message.DLL", "Api_GetTXSSOVer", 公开, 取协议客户端通信模块(TXSSO)版本号常量 失败返回0 + +.DLL命令 Api_GuidGetVoiceLink, 文本型, "Message.DLL", "Api_GuidGetVoiceLink", 公开, 通过音频、语音guid取得下载连接 + .参数 响应的QQ, 文本型 + .参数 GUID, 文本型, , 格式:{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx}.amr + +.DLL命令 Api_UploadVoice, 文本型, "Message.DLL", "Api_UploadVoice", 公开, 上传音频文件 成功返回guid用于发送 + .参数 响应的QQ, 文本型 + .参数 amr音频数据, 字节集, , 音频字节集数据 + +.DLL命令 Api_RemoveLogHandler, , "Message.DLL", "Api_RemoveLogHandler", 公开, 移除由Api_AddLogHandler添加、设置的日志处理函数 + +.DLL命令 Api_GetGroupName, 文本型, "Message.DLL", "Api_GetGroupName", 公开, 取群名 + .参数 响应的QQ, 文本型 + .参数 群号, 文本型 + +.DLL命令 Api_RemoveMsgFilter, , "Message.DLL", "Api_RemoveMsgFilter", 公开, 移除\取消由Api_SetMsgFilter所添加\设置的处理函数 + +.DLL命令 Api_Like, 文本型, "Message.DLL", "Api_Like", 公开, QQ名片赞 10赞每Q每日 至多50人\日系列 成功返回空 失败返回理由(腾讯爸爸给出的) 一次一赞 速度请自行管控以免冻结 + .参数 参_响应的QQ, 文本型 + .参数 参_被赞QQ, 文本型 + +.DLL命令 Api_UploadGroupFile, 逻辑型, "Message.DLL", "Api_UploadGroupFile", 公开, 上传群文件 + .参数 参_响应的QQ, 文本型 + .参数 参_群号, 文本型 + .参数 参_上传文件名, 文本型, , 实际显示在群文件列表中的文件名 + .参数 参_路径, 文本型, , 本地文件路径 选填 + .参数 参_图片数据, 字节集, , 图片字节集数据 选填 + +.DLL命令 Api_GuidGetPicLinkEx, 文本型, "Message.DLL", "Api_GuidGetPicLinkEx", 公开, 根据图片GUID取得图片下载连接 失败返回空 + .参数 参_图片GUID, 文本型, , {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}.jpg这样的GUID + .参数 参_图片类型, 整数型, , 1好友\临时会话图片 2 群图 + .参数 参_图片参考对象, 文本型, , 好友QQ或群号 根据参数2填写 + +.DLL命令 Api_CancelGroupMsgA, 逻辑型, "Message.DLL", "Api_CancelGroupMsgA", 公开, 撤回群信息 需为群管 + .参数 响应的QQ, 文本型, , 机器人QQ + .参数 原始信息, 文本型, , Event函数中的'参_原始信息' 经过解密后的封包字节数据 + +.DLL命令 Api_GetCookiesByDomain, 文本型, "Message.DLL", "Api_GetCookiesByDomain", 公开, 取得用于登陆腾讯子业务的Cookies 如xxx.qq.com, 框架内维护的是qun.qq.com的通用CK + .参数 响应的QQ, 文本型 + .参数 域名, 文本型, , 如qun.qq.com + +.DLL命令 Api_ChangeProtocol, , "Message.DLL", "Api_ChangeProtocol", 公开 + .参数 i, 整数型 + +.DLL命令 Api_DeleteQQ, , "Message.DLL", "Api_DeleteQQ", 公开, 从框架中删除QQ + .参数 被操作QQ, 文本型 + +.DLL命令 Api_SendAppMsg, 逻辑型, "Message.DLL", "Api_SendAppMsg", 公开 + .参数 响应的QQ, 文本型 + .参数 收信对象类型, 整数型, , 同Api_SendMsg 1好友 2群 3讨论组 4群临时会话 5讨论组临时会话 + .参数 信对象所属群_讨论组, 文本型, , 文本型, , 发群内、临时会话必填 好友可不填 + .参数 收信对象QQ, 文本型, , 临时会话、好友必填 发至群内可不填 + .参数 AppMsg, 文本型 + +.DLL命令 Api_GetBirthday, 文本型, "Message.DLL", "Api_GetBirthday", 公开, 取生日 失败返回空 未公开生日信息返回 "0年0月0日" + .参数 响应的QQ, 文本型 + .参数 QQ, 文本型 + +.DLL命令 Api_GetUserInfo, 文本型, "Message.DLL", "Api_GetUserInfo", 公开, 取用户个人信息页面字节数据 包含各种资料 返回内容为原始明文数据,需要自己解析 + .参数 响应的QQ, 文本型 + .参数 QQ, 文本型 + +.DLL命令 Api_GetFriendListA, 文本型, "Message.DLL", "Api_GetFriendListA", 公开 + .参数 响应的QQ, 文本型 + +.DLL命令 Api_GetLoginQRCode, 文本型, "Message.DLL", "Api_GetLoginQRCode", 公开, 仅商用版可用 ,返回base64编码后的登陆二维码图片数据,手Q扫码后将会添加到框架内登陆,获取失败返回空,API本身不会重试,可以通过监听事件11010获知被扫码 参_消息内容=二维码MD5,监听事件11011获知扫码完成 参_消息内容=二维码MD5 触发对象=登陆的QQ + +.DLL命令 Api_UploadCface_Byte, 整数型, "Message.DLL", "Api_UploadCface_Byte", 公开, 仅商用版可用 上传头像 接受字节集参数 返回值:0 上传成功 -1参数有误 -2图片大于1MB -3获取上传令牌失败受限 -4其他理由上传失败 + .参数 参_响应的QQ, 文本型, , 机器人QQ + .参数 参_图片数据, 整数型, , 图片字节集数据,由于易语言DLL限制你可能在这里读到的是"整数型" 请自己改成字节集,图片不限PNG JPG 大小1MB以内 + +.DLL命令 Api_UploadCface_Path, 整数型, "Message.DLL", "Api_UploadCface_Path", 公开, 仅商用版可用 上传头像 接受路径参数 URL 或 本地路径 返回值:0 上传成功 -1参数有误 -2图片大于1MB -3获取上传令牌失败受限 -4其他理由上传失败 + .参数 参_响应的QQ, 文本型, , 机器人QQ + .参数 参_图片路径, 文本型, , 路径 可选URL 或 本地路径 http://www.baidu,com/图片.jpg C:\1.jpg, + +.DLL命令 Api_HandleFriendRequestAsync, , "Message.DLL", "Api_HandleFriendRequestAsync", , 异步处理被加好友事件 在事件1001下返回值需>30 如50 以强制忽略且确保无其他插件处理 + .参数 参_原始信息, 文本型, , 在事件1001下取得 参_原始信息 填入 + .参数 参_处理方式, 整数型, , 0忽略 10同意 20拒绝 30单向同意(成为单向好友) + .参数 参_附加信息, 文本型, , 拒绝时的附加理由 可以留空 + +.DLL命令 Api_HandleGroupRequestAsync, , "Message.DLL", "Api_HandleGroupRequestAsync", , 异步处理被加群类事件 在事件200x下返回值需>30 如50 以强制忽略且确保无其他插件处理 + .参数 参_响应的QQ, 文本型, , 机器人QQ + .参数 参_原始信息, 文本型, , 在事件200x下取得 参_原始信息 填入 + .参数 参_处理方式, 整数型, , 0忽略 10同意 20拒绝 30拒绝并不再接受 + .参数 参_附加信息, 文本型, , 拒绝时的附加理由 可以留空 diff --git a/src/Newbe.Tools.ELang2CSharp/source/qqlight.cs b/src/Newbe.Tools.ELang2CSharp/source/qqlight.cs new file mode 100644 index 0000000..a045057 --- /dev/null +++ b/src/Newbe.Tools.ELang2CSharp/source/qqlight.cs @@ -0,0 +1,1732 @@ +// generate at 2019/12/15 8:54:12 +00:00 +public interface IQQLightApi{ +/// +/// //给QQ点名片赞,PCQQ点赞不稳定,容易失效 +/// +/// +/// +/// +[Description("//给QQ点名片赞,PCQQ点赞不稳定,容易失效")]void Api_SendPraise([Description("")] string QQID,[Description("")] int AuthCode); +/// +/// //抖动好友窗口 +/// +/// +/// +/// +[Description("//抖动好友窗口")]void Api_SendShake([Description("")] string QQID,[Description("")] int AuthCode); +/// +/// //取得网页操作时需要用到的bkn/Gtk +/// +/// +/// +/// +[Description("//取得网页操作时需要用到的bkn/Gtk")]string Api_Getbkn([Description("")] string Cookies,[Description("")] int AuthCode); +/// +/// //取得网页操作时需要用到的bkn/Gtk +/// +/// +/// +/// +[Description("//取得网页操作时需要用到的bkn/Gtk")]string Api_Getbkn_Long([Description("")] string Cookies,[Description("")] int AuthCode); +/// +/// //退出群 +/// +/// +/// +/// +[Description("//退出群")]void Api_QuitGroup([Description("")] string GroupID,[Description("")] int AuthCode); +/// +/// //退出讨论组 +/// +/// +/// +/// +[Description("//退出讨论组")]void Api_QuitDiscussGroup([Description("")] string GroupID,[Description("")] int AuthCode); +/// +/// //修改个性签名 +/// +/// +/// +/// +[Description("//修改个性签名")]void Api_SetSignature([Description("")] string Signature,[Description("")] int AuthCode); +/// +/// //修改讨论组名称 +/// +/// +/// +/// +/// +[Description("//修改讨论组名称")]void Api_SetDiscussName([Description("")] string DiscussGroupID,[Description("")] string Name,[Description("")] int AuthCode); +/// +/// //修改群名称 +/// +/// +/// +/// +/// +[Description("//修改群名称")]void Api_SetGroupName([Description("")] string GroupID,[Description("")] string Name,[Description("")] int AuthCode); +/// +/// //设置全群禁言 +/// +/// +/// 真 开启全群禁言 假 关闭全群禁言 +/// +/// +[Description("//设置全群禁言")]void Api_BanGroup([Description("")] string GroupID,[Description("真 开启全群禁言 假 关闭全群禁言")] bool IsBanGroup,[Description("")] int AuthCode); +/// +/// //设置管理员权限 +/// +/// +/// +/// 真,设置 假,取消 +/// +/// +[Description("//设置管理员权限")]void Api_SetManager([Description("")] string GroupID,[Description("")] string QQID,[Description("真,设置 假,取消")] bool IsManager,[Description("")] int AuthCode); +/// +/// //禁言群成员 +/// +/// +/// +/// 单位:秒 0为解除禁言 +/// +/// +[Description("//禁言群成员")]void Api_Ban([Description("")] string GroupID,[Description("")] string QQ,[Description("单位:秒 0为解除禁言")] int time,[Description("")] int AuthCode); +/// +/// //修改匿名权限 +/// +/// +/// 真 允许匿名 假 禁止匿名 +/// +/// +[Description("//修改匿名权限")]void Api_SetAnony([Description("")] string GroupID,[Description("真 允许匿名 假 禁止匿名")] bool IsSetAnony,[Description("")] int AuthCode); +/// +/// //踢出群成员 +/// +/// +/// +/// 不再接受此人加群 +/// +/// +[Description("//踢出群成员")]void Api_RemoveMember([Description("")] string GroupID,[Description("")] string QQID,[Description("不再接受此人加群")] bool IsBan,[Description("")] int AuthCode); +/// +/// //解散群 +/// +/// 群号 +/// +/// +[Description("//解散群")]void Api_RemoveGroup([Description("群号")] string GroupID,[Description("")] int AuthCode); +/// +/// //取得操作网页所需要的Cookies +/// +/// +/// +[Description("//取得操作网页所需要的Cookies")]string Api_GetCookies([Description("")] int AuthCode); +/// +/// //取得QQ空间Token +/// +/// +/// +[Description("//取得QQ空间Token")]string Api_GetQzoneToken([Description("")] int AuthCode); +/// +/// //取得QQ空间Cookies +/// +/// +/// +[Description("//取得QQ空间Cookies")]string Api_GetQzoneCookies([Description("")] int AuthCode); +/// +/// //发表说说 +/// +/// +/// +/// +[Description("//发表说说")]string Api_SendTaotao([Description("")] string Str,[Description("")] int AuthCode); +/// +/// //取得所登录的QQ +/// +/// +/// +[Description("//取得所登录的QQ")]string Api_GetLoginQQ([Description("")] int AuthCode); +/// +/// //框架为插件所创建的插件目录 +/// +/// +/// +[Description("//框架为插件所创建的插件目录")]string Api_GetPath([Description("")] int AuthCode); +/// +/// //置插件错误管理 +/// +/// +/// +/// +/// +[Description("//置插件错误管理")]string Api_Error([Description("")] string Code,[Description("")] string Str,[Description("")] int AuthCode); +/// +/// //机器人发送消息,返回值为该条消息的ID +/// +/// 1.好友消息 2.群消息 3.群临时消息 4.讨论组消息 5.讨论组临时消息 6.QQ临时消息 +/// +/// 类型为2,4时可留空 +/// +/// +/// +[Description("//机器人发送消息,返回值为该条消息的ID")]string Api_SendMsg([Description("1.好友消息 2.群消息 3.群临时消息 4.讨论组消息 5.讨论组临时消息 6.QQ临时消息")] int Type,[Description("")] string GroupID,[Description("类型为2,4时可留空")] string QQID,[Description("")] string Msg,[Description("")] int AuthCode); +/// +/// //处理加群消息 +/// +/// +/// +/// +/// 1.同意 2.拒绝 3.忽略 +/// 参数可为空,且为 拒绝 时有效 +/// +/// +[Description("//处理加群消息")]void Api_SetGroupAdd([Description("")] string GroupID,[Description("")] string QQID,[Description("")] string Seq,[Description("1.同意 2.拒绝 3.忽略")] int Type,[Description("参数可为空,且为 拒绝 时有效")] string Reason,[Description("")] int AuthCode); +/// +/// //处理加好友消息 +/// +/// +/// 1.同意 2.拒绝 3.忽略 +/// 参数可为空,且为 拒绝 时有效 +/// +/// +[Description("//处理加好友消息")]void Api_SetFriendAdd([Description("")] string QQID,[Description("1.同意 2.拒绝 3.忽略")] int Type,[Description("参数可为空,且为 拒绝 时有效")] string Reason,[Description("")] int AuthCode); +/// +/// //向框架推送一条日志 +/// +/// 日志类型(自定义) +/// 日志内容 +/// 日志颜色 +/// +/// +[Description("//向框架推送一条日志")]void Api_SendLog([Description("日志类型(自定义)")] string Type,[Description("日志内容")] string Msg,[Description("日志颜色")] int FontColor,[Description("")] int AuthCode); +/// +/// //修改好友备注 +/// +/// +/// +/// +/// +[Description("//修改好友备注")]void Api_SetFriendName([Description("")] string QQID,[Description("")] string Name,[Description("")] int AuthCode); +/// +/// //删除好友 +/// +/// +/// +/// +[Description("//删除好友")]void Api_DeleteFriend([Description("")] string QQID,[Description("")] int AuthCode); +/// +/// //主动添加群 +/// +/// +/// +/// +/// +[Description("//主动添加群")]void Api_AddGroup([Description("")] string GroupID,[Description("")] string 附加信息,[Description("")] int AuthCode); +/// +/// //主动添加好友 +/// +/// +/// +/// +/// +[Description("//主动添加好友")]void Api_AddFriend([Description("")] string QQID,[Description("")] string Info,[Description("")] int AuthCode); +/// +/// //返回卡片点歌JSON代码 +/// +/// +/// +/// +[Description("//返回卡片点歌JSON代码")]string Api_JsonMusic([Description("")] string SongID,[Description("")] int AuthCode); +/// +/// //取得群内成员的名片 +/// +/// +/// +/// +/// +[Description("//取得群内成员的名片")]string Api_GetGroupCard([Description("")] string GroupID,[Description("")] string QQID,[Description("")] int AuthCode); +/// +/// //取指定QQ的昵称 +/// +/// +/// +/// +[Description("//取指定QQ的昵称")]string Api_GetNick([Description("")] string QQID,[Description("")] int AuthCode); +/// +/// +/// +/// +/// +/// +[Description("")]string Api_GetGroupName([Description("")] string GroupID,[Description("")] int AuthCode); +/// +/// +/// +/// +/// +[Description("")]string Api_GetSoftVersion([Description("")] int AuthCode); +/// +/// +/// +/// +/// +/// +[Description("")]string Api_GetGroupIntroduce([Description("")] string GroupID,[Description("")] int AuthCode); +/// +/// +/// +/// +/// +/// +[Description("")]string Api_GetGroupOwner([Description("")] string GroupID,[Description("")] int AuthCode); +/// +/// //修改群成员的名片 +/// +/// +/// +/// +/// +/// +[Description("//修改群成员的名片")]void Api_SetGroupCard([Description("")] string GroupID,[Description("")] string QQID,[Description("")] string NewCard,[Description("")] int AuthCode); +/// +/// //取得某个QQ的名片赞数量 +/// +/// +/// +/// +[Description("//取得某个QQ的名片赞数量")]string Api_GetPraiseNum([Description("")] string QQID,[Description("")] int AuthCode); +/// +/// //取得某个QQ的等级 +/// +/// +/// +/// +[Description("//取得某个QQ的等级")]int Api_GetQQLevel([Description("")] string QQID,[Description("")] int AuthCode); +/// +/// +/// +/// +/// +/// +[Description("")]void Api_SetNick([Description("")] string NewNick,[Description("")] int AuthCode); +/// +/// +/// +/// +/// +/// +/// +[Description("")]string Api_Taotaodolike([Description("")] string QQID,[Description("")] string URL,[Description("")] int AuthCode); +/// +/// +/// +/// +/// +/// +/// +/// +[Description("")]string Api_Taotaofeeds([Description("")] string QQID,[Description("")] string URL,[Description("")] string Content,[Description("")] int AuthCode); +/// +/// +/// +/// +/// +/// +[Description("")]int Api_GetQQAge([Description("")] string QQID,[Description("")] int AuthCode); +/// +/// +/// +/// +/// +/// +[Description("")]int Api_GetQQSex([Description("")] string QQID,[Description("")] int AuthCode); +/// +/// //以JSON形式取得好友列表 +/// +/// +/// +/// +[Description("//以JSON形式取得好友列表")]string Api_GetFriendList([Description("")] bool Cache,[Description("")] int AuthCode); +/// +/// //以JSON形式取得群列表 +/// +/// +/// +/// +[Description("//以JSON形式取得群列表")]string Api_GetGroupList([Description("")] bool Cache,[Description("")] int AuthCode); +/// +/// //以JSON形式取得群成员列表 +/// +/// +/// +/// +/// +[Description("//以JSON形式取得群成员列表")]string Api_GetGroupMemberList([Description("")] string GroupID,[Description("")] bool Cache,[Description("")] int AuthCode); +/// +/// //以JSON形式取得某QQ个人信息 +/// +/// +/// +/// +[Description("//以JSON形式取得某QQ个人信息")]string Api_GetQQInfo([Description("")] string QQID,[Description("")] int AuthCode); +/// +/// //以JSON形式取得某群信息 +/// +/// +/// +/// +[Description("//以JSON形式取得某群信息")]string Api_GetGroupInfo([Description("")] string GroupID,[Description("")] int AuthCode); +/// +/// //撤回自身消息 发出消息不可以秒撤回,腾讯限制,1~2s后才可撤回 +/// +/// 1.好友消息 2.群消息 3.群临时消息 4.讨论组消息 5.讨论组临时消息 6.QQ临时消息 +/// 撤回群消息、群临时消息、讨论组消息、讨论组临时消息必须填写,其余情况可留空 +/// 撤回好友消息、群临时消息、讨论组临时消息、QQ临时消息必须填写,其余情况可留空 +/// 撤回的消息ID,机器人发送消息会返回自身的消息ID +/// +/// +[Description("//撤回自身消息 发出消息不可以秒撤回,腾讯限制,1~2s后才可撤回")]void Api_DeleteMsg([Description("1.好友消息 2.群消息 3.群临时消息 4.讨论组消息 5.讨论组临时消息 6.QQ临时消息")] int Type,[Description("撤回群消息、群临时消息、讨论组消息、讨论组临时消息必须填写,其余情况可留空")] string GroupID,[Description("撤回好友消息、群临时消息、讨论组临时消息、QQ临时消息必须填写,其余情况可留空")] string QQID,[Description("撤回的消息ID,机器人发送消息会返回自身的消息ID")] string MsgID,[Description("")] int AuthCode); +/// +/// //改变QQ在线状态 +/// +/// 1.我在线上 2.Q我吧 3.离开 4.忙碌 5.请勿打扰 6.隐身 +/// +/// +[Description("//改变QQ在线状态")]void Api_SetQQState([Description("1.我在线上 2.Q我吧 3.离开 4.忙碌 5.请勿打扰 6.隐身")] int Type,[Description("")] int AuthCode); +/// +/// //邀请好友入群 +/// +/// +/// +/// +/// +[Description("//邀请好友入群")]void Api_InviteFriend([Description("")] string GroupID,[Description("")] string QQID,[Description("")] int AuthCode); +/// +/// +/// +/// +/// +/// +[Description("")]string Api_GetQQInfo_v2([Description("")] string QQID,[Description("")] int AuthCode); +/// +/// //取消COM库 +/// +/// +[Description("//取消COM库")]void CoUninitialize(); +/// +/// //初始化COM库 +/// +/// +/// +[Description("//初始化COM库")]void CoInitialize([Description("")] int pvReserved); +/// +/// //上传图片,获得图片GUID, +/// +/// 1.私聊图片 2.群聊图片 +/// 私聊图片填写QQID,群聊/讨论组图片填写群号讨论组号 +/// 图片的Hex流 +/// +/// +[Description("//上传图片,获得图片GUID,")]string Api_UpLoadPic([Description("1.私聊图片 2.群聊图片")] int Type,[Description("私聊图片填写QQID,群聊/讨论组图片填写群号讨论组号")] string 对象,[Description("图片的Hex流")] string Bin,[Description("")] int AuthCode); +/// +/// //设置插件状态,开启或关闭 +/// +/// 真:启用自身 假:关闭自身 +/// +/// +[Description("//设置插件状态,开启或关闭")]string Api_SetPluginState([Description("真:启用自身 假:关闭自身")] bool State,[Description("")] int AuthCode); +/// +/// +/// +/// +/// +/// +/// +[Description("")]void Api_DeleteFile([Description("")] string 群号,[Description("")] string 文件GUID,[Description("")] int AuthCode); +/// +/// +/// +/// +/// +/// +/// +/// +[Description("")]void Api_RepeatFile([Description("")] string 来源对象,[Description("")] string 转发群号,[Description("")] string 文件GUID,[Description("")] int AuthCode); +/// +/// +/// +/// +/// +[Description("")]void Api_ClearOffLineFile([Description("")] int AuthCode); +/// +/// +/// +/// +/// +/// 址 +/// +/// 址 +/// +/// +/// +/// +[Description("")]int WideCharToMultiByte([Description("")] int CodePage,[Description("")] int dwFlags,[Description("址")] byte[] lpWideCharStr,[Description("")] int cchWideChar,[Description("址")] string lpMultiByteStr,[Description("")] int cchMultiByte,[Description("")] int lpDefaultChar,[Description("")] int lpUsedDefaultChar); +} +public class QQLightApi:IQQLightApi{ + + /// +/// //给QQ点名片赞,PCQQ点赞不稳定,容易失效 +/// +/// +/// +/// + + + void IQQLightApi.Api_SendPraise([Description("")] string QQID,[Description("")] int AuthCode) + =>NativeMethods.Api_SendPraise(QQID,AuthCode); + /// +/// //抖动好友窗口 +/// +/// +/// +/// + + + void IQQLightApi.Api_SendShake([Description("")] string QQID,[Description("")] int AuthCode) + =>NativeMethods.Api_SendShake(QQID,AuthCode); + /// +/// //取得网页操作时需要用到的bkn/Gtk +/// +/// +/// +/// + + + string IQQLightApi.Api_Getbkn([Description("")] string Cookies,[Description("")] int AuthCode) + =>NativeMethods.Api_Getbkn(Cookies,AuthCode); + /// +/// //取得网页操作时需要用到的bkn/Gtk +/// +/// +/// +/// + + + string IQQLightApi.Api_Getbkn_Long([Description("")] string Cookies,[Description("")] int AuthCode) + =>NativeMethods.Api_Getbkn_Long(Cookies,AuthCode); + /// +/// //退出群 +/// +/// +/// +/// + + + void IQQLightApi.Api_QuitGroup([Description("")] string GroupID,[Description("")] int AuthCode) + =>NativeMethods.Api_QuitGroup(GroupID,AuthCode); + /// +/// //退出讨论组 +/// +/// +/// +/// + + + void IQQLightApi.Api_QuitDiscussGroup([Description("")] string GroupID,[Description("")] int AuthCode) + =>NativeMethods.Api_QuitDiscussGroup(GroupID,AuthCode); + /// +/// //修改个性签名 +/// +/// +/// +/// + + + void IQQLightApi.Api_SetSignature([Description("")] string Signature,[Description("")] int AuthCode) + =>NativeMethods.Api_SetSignature(Signature,AuthCode); + /// +/// //修改讨论组名称 +/// +/// +/// +/// +/// + + + void IQQLightApi.Api_SetDiscussName([Description("")] string DiscussGroupID,[Description("")] string Name,[Description("")] int AuthCode) + =>NativeMethods.Api_SetDiscussName(DiscussGroupID,Name,AuthCode); + /// +/// //修改群名称 +/// +/// +/// +/// +/// + + + void IQQLightApi.Api_SetGroupName([Description("")] string GroupID,[Description("")] string Name,[Description("")] int AuthCode) + =>NativeMethods.Api_SetGroupName(GroupID,Name,AuthCode); + /// +/// //设置全群禁言 +/// +/// +/// 真 开启全群禁言 假 关闭全群禁言 +/// +/// + + + void IQQLightApi.Api_BanGroup([Description("")] string GroupID,[Description("真 开启全群禁言 假 关闭全群禁言")] bool IsBanGroup,[Description("")] int AuthCode) + =>NativeMethods.Api_BanGroup(GroupID,IsBanGroup,AuthCode); + /// +/// //设置管理员权限 +/// +/// +/// +/// 真,设置 假,取消 +/// +/// + + + void IQQLightApi.Api_SetManager([Description("")] string GroupID,[Description("")] string QQID,[Description("真,设置 假,取消")] bool IsManager,[Description("")] int AuthCode) + =>NativeMethods.Api_SetManager(GroupID,QQID,IsManager,AuthCode); + /// +/// //禁言群成员 +/// +/// +/// +/// 单位:秒 0为解除禁言 +/// +/// + + + void IQQLightApi.Api_Ban([Description("")] string GroupID,[Description("")] string QQ,[Description("单位:秒 0为解除禁言")] int time,[Description("")] int AuthCode) + =>NativeMethods.Api_Ban(GroupID,QQ,time,AuthCode); + /// +/// //修改匿名权限 +/// +/// +/// 真 允许匿名 假 禁止匿名 +/// +/// + + + void IQQLightApi.Api_SetAnony([Description("")] string GroupID,[Description("真 允许匿名 假 禁止匿名")] bool IsSetAnony,[Description("")] int AuthCode) + =>NativeMethods.Api_SetAnony(GroupID,IsSetAnony,AuthCode); + /// +/// //踢出群成员 +/// +/// +/// +/// 不再接受此人加群 +/// +/// + + + void IQQLightApi.Api_RemoveMember([Description("")] string GroupID,[Description("")] string QQID,[Description("不再接受此人加群")] bool IsBan,[Description("")] int AuthCode) + =>NativeMethods.Api_RemoveMember(GroupID,QQID,IsBan,AuthCode); + /// +/// //解散群 +/// +/// 群号 +/// +/// + + + void IQQLightApi.Api_RemoveGroup([Description("群号")] string GroupID,[Description("")] int AuthCode) + =>NativeMethods.Api_RemoveGroup(GroupID,AuthCode); + /// +/// //取得操作网页所需要的Cookies +/// +/// +/// + + + string IQQLightApi.Api_GetCookies([Description("")] int AuthCode) + =>NativeMethods.Api_GetCookies(AuthCode); + /// +/// //取得QQ空间Token +/// +/// +/// + + + string IQQLightApi.Api_GetQzoneToken([Description("")] int AuthCode) + =>NativeMethods.Api_GetQzoneToken(AuthCode); + /// +/// //取得QQ空间Cookies +/// +/// +/// + + + string IQQLightApi.Api_GetQzoneCookies([Description("")] int AuthCode) + =>NativeMethods.Api_GetQzoneCookies(AuthCode); + /// +/// //发表说说 +/// +/// +/// +/// + + + string IQQLightApi.Api_SendTaotao([Description("")] string Str,[Description("")] int AuthCode) + =>NativeMethods.Api_SendTaotao(Str,AuthCode); + /// +/// //取得所登录的QQ +/// +/// +/// + + + string IQQLightApi.Api_GetLoginQQ([Description("")] int AuthCode) + =>NativeMethods.Api_GetLoginQQ(AuthCode); + /// +/// //框架为插件所创建的插件目录 +/// +/// +/// + + + string IQQLightApi.Api_GetPath([Description("")] int AuthCode) + =>NativeMethods.Api_GetPath(AuthCode); + /// +/// //置插件错误管理 +/// +/// +/// +/// +/// + + + string IQQLightApi.Api_Error([Description("")] string Code,[Description("")] string Str,[Description("")] int AuthCode) + =>NativeMethods.Api_Error(Code,Str,AuthCode); + /// +/// //机器人发送消息,返回值为该条消息的ID +/// +/// 1.好友消息 2.群消息 3.群临时消息 4.讨论组消息 5.讨论组临时消息 6.QQ临时消息 +/// +/// 类型为2,4时可留空 +/// +/// +/// + + + string IQQLightApi.Api_SendMsg([Description("1.好友消息 2.群消息 3.群临时消息 4.讨论组消息 5.讨论组临时消息 6.QQ临时消息")] int Type,[Description("")] string GroupID,[Description("类型为2,4时可留空")] string QQID,[Description("")] string Msg,[Description("")] int AuthCode) + =>NativeMethods.Api_SendMsg(Type,GroupID,QQID,Msg,AuthCode); + /// +/// //处理加群消息 +/// +/// +/// +/// +/// 1.同意 2.拒绝 3.忽略 +/// 参数可为空,且为 拒绝 时有效 +/// +/// + + + void IQQLightApi.Api_SetGroupAdd([Description("")] string GroupID,[Description("")] string QQID,[Description("")] string Seq,[Description("1.同意 2.拒绝 3.忽略")] int Type,[Description("参数可为空,且为 拒绝 时有效")] string Reason,[Description("")] int AuthCode) + =>NativeMethods.Api_SetGroupAdd(GroupID,QQID,Seq,Type,Reason,AuthCode); + /// +/// //处理加好友消息 +/// +/// +/// 1.同意 2.拒绝 3.忽略 +/// 参数可为空,且为 拒绝 时有效 +/// +/// + + + void IQQLightApi.Api_SetFriendAdd([Description("")] string QQID,[Description("1.同意 2.拒绝 3.忽略")] int Type,[Description("参数可为空,且为 拒绝 时有效")] string Reason,[Description("")] int AuthCode) + =>NativeMethods.Api_SetFriendAdd(QQID,Type,Reason,AuthCode); + /// +/// //向框架推送一条日志 +/// +/// 日志类型(自定义) +/// 日志内容 +/// 日志颜色 +/// +/// + + + void IQQLightApi.Api_SendLog([Description("日志类型(自定义)")] string Type,[Description("日志内容")] string Msg,[Description("日志颜色")] int FontColor,[Description("")] int AuthCode) + =>NativeMethods.Api_SendLog(Type,Msg,FontColor,AuthCode); + /// +/// //修改好友备注 +/// +/// +/// +/// +/// + + + void IQQLightApi.Api_SetFriendName([Description("")] string QQID,[Description("")] string Name,[Description("")] int AuthCode) + =>NativeMethods.Api_SetFriendName(QQID,Name,AuthCode); + /// +/// //删除好友 +/// +/// +/// +/// + + + void IQQLightApi.Api_DeleteFriend([Description("")] string QQID,[Description("")] int AuthCode) + =>NativeMethods.Api_DeleteFriend(QQID,AuthCode); + /// +/// //主动添加群 +/// +/// +/// +/// +/// + + + void IQQLightApi.Api_AddGroup([Description("")] string GroupID,[Description("")] string 附加信息,[Description("")] int AuthCode) + =>NativeMethods.Api_AddGroup(GroupID,附加信息,AuthCode); + /// +/// //主动添加好友 +/// +/// +/// +/// +/// + + + void IQQLightApi.Api_AddFriend([Description("")] string QQID,[Description("")] string Info,[Description("")] int AuthCode) + =>NativeMethods.Api_AddFriend(QQID,Info,AuthCode); + /// +/// //返回卡片点歌JSON代码 +/// +/// +/// +/// + + + string IQQLightApi.Api_JsonMusic([Description("")] string SongID,[Description("")] int AuthCode) + =>NativeMethods.Api_JsonMusic(SongID,AuthCode); + /// +/// //取得群内成员的名片 +/// +/// +/// +/// +/// + + + string IQQLightApi.Api_GetGroupCard([Description("")] string GroupID,[Description("")] string QQID,[Description("")] int AuthCode) + =>NativeMethods.Api_GetGroupCard(GroupID,QQID,AuthCode); + /// +/// //取指定QQ的昵称 +/// +/// +/// +/// + + + string IQQLightApi.Api_GetNick([Description("")] string QQID,[Description("")] int AuthCode) + =>NativeMethods.Api_GetNick(QQID,AuthCode); + /// +/// +/// +/// +/// +/// + + + string IQQLightApi.Api_GetGroupName([Description("")] string GroupID,[Description("")] int AuthCode) + =>NativeMethods.Api_GetGroupName(GroupID,AuthCode); + /// +/// +/// +/// +/// + + + string IQQLightApi.Api_GetSoftVersion([Description("")] int AuthCode) + =>NativeMethods.Api_GetSoftVersion(AuthCode); + /// +/// +/// +/// +/// +/// + + + string IQQLightApi.Api_GetGroupIntroduce([Description("")] string GroupID,[Description("")] int AuthCode) + =>NativeMethods.Api_GetGroupIntroduce(GroupID,AuthCode); + /// +/// +/// +/// +/// +/// + + + string IQQLightApi.Api_GetGroupOwner([Description("")] string GroupID,[Description("")] int AuthCode) + =>NativeMethods.Api_GetGroupOwner(GroupID,AuthCode); + /// +/// //修改群成员的名片 +/// +/// +/// +/// +/// +/// + + + void IQQLightApi.Api_SetGroupCard([Description("")] string GroupID,[Description("")] string QQID,[Description("")] string NewCard,[Description("")] int AuthCode) + =>NativeMethods.Api_SetGroupCard(GroupID,QQID,NewCard,AuthCode); + /// +/// //取得某个QQ的名片赞数量 +/// +/// +/// +/// + + + string IQQLightApi.Api_GetPraiseNum([Description("")] string QQID,[Description("")] int AuthCode) + =>NativeMethods.Api_GetPraiseNum(QQID,AuthCode); + /// +/// //取得某个QQ的等级 +/// +/// +/// +/// + + + int IQQLightApi.Api_GetQQLevel([Description("")] string QQID,[Description("")] int AuthCode) + =>NativeMethods.Api_GetQQLevel(QQID,AuthCode); + /// +/// +/// +/// +/// +/// + + + void IQQLightApi.Api_SetNick([Description("")] string NewNick,[Description("")] int AuthCode) + =>NativeMethods.Api_SetNick(NewNick,AuthCode); + /// +/// +/// +/// +/// +/// +/// + + + string IQQLightApi.Api_Taotaodolike([Description("")] string QQID,[Description("")] string URL,[Description("")] int AuthCode) + =>NativeMethods.Api_Taotaodolike(QQID,URL,AuthCode); + /// +/// +/// +/// +/// +/// +/// +/// + + + string IQQLightApi.Api_Taotaofeeds([Description("")] string QQID,[Description("")] string URL,[Description("")] string Content,[Description("")] int AuthCode) + =>NativeMethods.Api_Taotaofeeds(QQID,URL,Content,AuthCode); + /// +/// +/// +/// +/// +/// + + + int IQQLightApi.Api_GetQQAge([Description("")] string QQID,[Description("")] int AuthCode) + =>NativeMethods.Api_GetQQAge(QQID,AuthCode); + /// +/// +/// +/// +/// +/// + + + int IQQLightApi.Api_GetQQSex([Description("")] string QQID,[Description("")] int AuthCode) + =>NativeMethods.Api_GetQQSex(QQID,AuthCode); + /// +/// //以JSON形式取得好友列表 +/// +/// +/// +/// + + + string IQQLightApi.Api_GetFriendList([Description("")] bool Cache,[Description("")] int AuthCode) + =>NativeMethods.Api_GetFriendList(Cache,AuthCode); + /// +/// //以JSON形式取得群列表 +/// +/// +/// +/// + + + string IQQLightApi.Api_GetGroupList([Description("")] bool Cache,[Description("")] int AuthCode) + =>NativeMethods.Api_GetGroupList(Cache,AuthCode); + /// +/// //以JSON形式取得群成员列表 +/// +/// +/// +/// +/// + + + string IQQLightApi.Api_GetGroupMemberList([Description("")] string GroupID,[Description("")] bool Cache,[Description("")] int AuthCode) + =>NativeMethods.Api_GetGroupMemberList(GroupID,Cache,AuthCode); + /// +/// //以JSON形式取得某QQ个人信息 +/// +/// +/// +/// + + + string IQQLightApi.Api_GetQQInfo([Description("")] string QQID,[Description("")] int AuthCode) + =>NativeMethods.Api_GetQQInfo(QQID,AuthCode); + /// +/// //以JSON形式取得某群信息 +/// +/// +/// +/// + + + string IQQLightApi.Api_GetGroupInfo([Description("")] string GroupID,[Description("")] int AuthCode) + =>NativeMethods.Api_GetGroupInfo(GroupID,AuthCode); + /// +/// //撤回自身消息 发出消息不可以秒撤回,腾讯限制,1~2s后才可撤回 +/// +/// 1.好友消息 2.群消息 3.群临时消息 4.讨论组消息 5.讨论组临时消息 6.QQ临时消息 +/// 撤回群消息、群临时消息、讨论组消息、讨论组临时消息必须填写,其余情况可留空 +/// 撤回好友消息、群临时消息、讨论组临时消息、QQ临时消息必须填写,其余情况可留空 +/// 撤回的消息ID,机器人发送消息会返回自身的消息ID +/// +/// + + + void IQQLightApi.Api_DeleteMsg([Description("1.好友消息 2.群消息 3.群临时消息 4.讨论组消息 5.讨论组临时消息 6.QQ临时消息")] int Type,[Description("撤回群消息、群临时消息、讨论组消息、讨论组临时消息必须填写,其余情况可留空")] string GroupID,[Description("撤回好友消息、群临时消息、讨论组临时消息、QQ临时消息必须填写,其余情况可留空")] string QQID,[Description("撤回的消息ID,机器人发送消息会返回自身的消息ID")] string MsgID,[Description("")] int AuthCode) + =>NativeMethods.Api_DeleteMsg(Type,GroupID,QQID,MsgID,AuthCode); + /// +/// //改变QQ在线状态 +/// +/// 1.我在线上 2.Q我吧 3.离开 4.忙碌 5.请勿打扰 6.隐身 +/// +/// + + + void IQQLightApi.Api_SetQQState([Description("1.我在线上 2.Q我吧 3.离开 4.忙碌 5.请勿打扰 6.隐身")] int Type,[Description("")] int AuthCode) + =>NativeMethods.Api_SetQQState(Type,AuthCode); + /// +/// //邀请好友入群 +/// +/// +/// +/// +/// + + + void IQQLightApi.Api_InviteFriend([Description("")] string GroupID,[Description("")] string QQID,[Description("")] int AuthCode) + =>NativeMethods.Api_InviteFriend(GroupID,QQID,AuthCode); + /// +/// +/// +/// +/// +/// + + + string IQQLightApi.Api_GetQQInfo_v2([Description("")] string QQID,[Description("")] int AuthCode) + =>NativeMethods.Api_GetQQInfo_v2(QQID,AuthCode); + /// +/// //取消COM库 +/// +/// + + + void IQQLightApi.CoUninitialize() + =>NativeMethods.CoUninitialize(); + /// +/// //初始化COM库 +/// +/// +/// + + + void IQQLightApi.CoInitialize([Description("")] int pvReserved) + =>NativeMethods.CoInitialize(pvReserved); + /// +/// //上传图片,获得图片GUID, +/// +/// 1.私聊图片 2.群聊图片 +/// 私聊图片填写QQID,群聊/讨论组图片填写群号讨论组号 +/// 图片的Hex流 +/// +/// + + + string IQQLightApi.Api_UpLoadPic([Description("1.私聊图片 2.群聊图片")] int Type,[Description("私聊图片填写QQID,群聊/讨论组图片填写群号讨论组号")] string 对象,[Description("图片的Hex流")] string Bin,[Description("")] int AuthCode) + =>NativeMethods.Api_UpLoadPic(Type,对象,Bin,AuthCode); + /// +/// //设置插件状态,开启或关闭 +/// +/// 真:启用自身 假:关闭自身 +/// +/// + + + string IQQLightApi.Api_SetPluginState([Description("真:启用自身 假:关闭自身")] bool State,[Description("")] int AuthCode) + =>NativeMethods.Api_SetPluginState(State,AuthCode); + /// +/// +/// +/// +/// +/// +/// + + + void IQQLightApi.Api_DeleteFile([Description("")] string 群号,[Description("")] string 文件GUID,[Description("")] int AuthCode) + =>NativeMethods.Api_DeleteFile(群号,文件GUID,AuthCode); + /// +/// +/// +/// +/// +/// +/// +/// + + + void IQQLightApi.Api_RepeatFile([Description("")] string 来源对象,[Description("")] string 转发群号,[Description("")] string 文件GUID,[Description("")] int AuthCode) + =>NativeMethods.Api_RepeatFile(来源对象,转发群号,文件GUID,AuthCode); + /// +/// +/// +/// +/// + + + void IQQLightApi.Api_ClearOffLineFile([Description("")] int AuthCode) + =>NativeMethods.Api_ClearOffLineFile(AuthCode); + /// +/// +/// +/// +/// +/// 址 +/// +/// 址 +/// +/// +/// +/// + + + int IQQLightApi.WideCharToMultiByte([Description("")] int CodePage,[Description("")] int dwFlags,[Description("址")] byte[] lpWideCharStr,[Description("")] int cchWideChar,[Description("址")] string lpMultiByteStr,[Description("")] int cchMultiByte,[Description("")] int lpDefaultChar,[Description("")] int lpUsedDefaultChar) + =>NativeMethods.WideCharToMultiByte(CodePage,dwFlags,lpWideCharStr,cchWideChar,lpMultiByteStr,cchMultiByte,lpDefaultChar,lpUsedDefaultChar); + private static class NativeMethods + { + /// +/// //给QQ点名片赞,PCQQ点赞不稳定,容易失效 +/// +/// +/// +/// + + [DllImport("bin/message.dll")] + public static extern void Api_SendPraise([Description("")] string QQID,[Description("")] int AuthCode); + /// +/// //抖动好友窗口 +/// +/// +/// +/// + + [DllImport("bin/message.dll")] + public static extern void Api_SendShake([Description("")] string QQID,[Description("")] int AuthCode); + /// +/// //取得网页操作时需要用到的bkn/Gtk +/// +/// +/// +/// + + [DllImport("bin/message.dll")] + public static extern string Api_Getbkn([Description("")] string Cookies,[Description("")] int AuthCode); + /// +/// //取得网页操作时需要用到的bkn/Gtk +/// +/// +/// +/// + + [DllImport("bin/message.dll")] + public static extern string Api_Getbkn_Long([Description("")] string Cookies,[Description("")] int AuthCode); + /// +/// //退出群 +/// +/// +/// +/// + + [DllImport("bin/message.dll")] + public static extern void Api_QuitGroup([Description("")] string GroupID,[Description("")] int AuthCode); + /// +/// //退出讨论组 +/// +/// +/// +/// + + [DllImport("bin/message.dll")] + public static extern void Api_QuitDiscussGroup([Description("")] string GroupID,[Description("")] int AuthCode); + /// +/// //修改个性签名 +/// +/// +/// +/// + + [DllImport("bin/message.dll")] + public static extern void Api_SetSignature([Description("")] string Signature,[Description("")] int AuthCode); + /// +/// //修改讨论组名称 +/// +/// +/// +/// +/// + + [DllImport("bin/message.dll")] + public static extern void Api_SetDiscussName([Description("")] string DiscussGroupID,[Description("")] string Name,[Description("")] int AuthCode); + /// +/// //修改群名称 +/// +/// +/// +/// +/// + + [DllImport("bin/message.dll")] + public static extern void Api_SetGroupName([Description("")] string GroupID,[Description("")] string Name,[Description("")] int AuthCode); + /// +/// //设置全群禁言 +/// +/// +/// 真 开启全群禁言 假 关闭全群禁言 +/// +/// + + [DllImport("bin/message.dll")] + public static extern void Api_BanGroup([Description("")] string GroupID,[Description("真 开启全群禁言 假 关闭全群禁言")] bool IsBanGroup,[Description("")] int AuthCode); + /// +/// //设置管理员权限 +/// +/// +/// +/// 真,设置 假,取消 +/// +/// + + [DllImport("bin/message.dll")] + public static extern void Api_SetManager([Description("")] string GroupID,[Description("")] string QQID,[Description("真,设置 假,取消")] bool IsManager,[Description("")] int AuthCode); + /// +/// //禁言群成员 +/// +/// +/// +/// 单位:秒 0为解除禁言 +/// +/// + + [DllImport("bin/message.dll")] + public static extern void Api_Ban([Description("")] string GroupID,[Description("")] string QQ,[Description("单位:秒 0为解除禁言")] int time,[Description("")] int AuthCode); + /// +/// //修改匿名权限 +/// +/// +/// 真 允许匿名 假 禁止匿名 +/// +/// + + [DllImport("bin/message.dll")] + public static extern void Api_SetAnony([Description("")] string GroupID,[Description("真 允许匿名 假 禁止匿名")] bool IsSetAnony,[Description("")] int AuthCode); + /// +/// //踢出群成员 +/// +/// +/// +/// 不再接受此人加群 +/// +/// + + [DllImport("bin/message.dll")] + public static extern void Api_RemoveMember([Description("")] string GroupID,[Description("")] string QQID,[Description("不再接受此人加群")] bool IsBan,[Description("")] int AuthCode); + /// +/// //解散群 +/// +/// 群号 +/// +/// + + [DllImport("bin/message.dll")] + public static extern void Api_RemoveGroup([Description("群号")] string GroupID,[Description("")] int AuthCode); + /// +/// //取得操作网页所需要的Cookies +/// +/// +/// + + [DllImport("bin/message.dll")] + public static extern string Api_GetCookies([Description("")] int AuthCode); + /// +/// //取得QQ空间Token +/// +/// +/// + + [DllImport("bin/message.dll")] + public static extern string Api_GetQzoneToken([Description("")] int AuthCode); + /// +/// //取得QQ空间Cookies +/// +/// +/// + + [DllImport("bin/message.dll")] + public static extern string Api_GetQzoneCookies([Description("")] int AuthCode); + /// +/// //发表说说 +/// +/// +/// +/// + + [DllImport("bin/message.dll")] + public static extern string Api_SendTaotao([Description("")] string Str,[Description("")] int AuthCode); + /// +/// //取得所登录的QQ +/// +/// +/// + + [DllImport("bin/message.dll")] + public static extern string Api_GetLoginQQ([Description("")] int AuthCode); + /// +/// //框架为插件所创建的插件目录 +/// +/// +/// + + [DllImport("bin/message.dll")] + public static extern string Api_GetPath([Description("")] int AuthCode); + /// +/// //置插件错误管理 +/// +/// +/// +/// +/// + + [DllImport("bin/message.dll")] + public static extern string Api_Error([Description("")] string Code,[Description("")] string Str,[Description("")] int AuthCode); + /// +/// //机器人发送消息,返回值为该条消息的ID +/// +/// 1.好友消息 2.群消息 3.群临时消息 4.讨论组消息 5.讨论组临时消息 6.QQ临时消息 +/// +/// 类型为2,4时可留空 +/// +/// +/// + + [DllImport("bin/message.dll")] + public static extern string Api_SendMsg([Description("1.好友消息 2.群消息 3.群临时消息 4.讨论组消息 5.讨论组临时消息 6.QQ临时消息")] int Type,[Description("")] string GroupID,[Description("类型为2,4时可留空")] string QQID,[Description("")] string Msg,[Description("")] int AuthCode); + /// +/// //处理加群消息 +/// +/// +/// +/// +/// 1.同意 2.拒绝 3.忽略 +/// 参数可为空,且为 拒绝 时有效 +/// +/// + + [DllImport("bin/message.dll")] + public static extern void Api_SetGroupAdd([Description("")] string GroupID,[Description("")] string QQID,[Description("")] string Seq,[Description("1.同意 2.拒绝 3.忽略")] int Type,[Description("参数可为空,且为 拒绝 时有效")] string Reason,[Description("")] int AuthCode); + /// +/// //处理加好友消息 +/// +/// +/// 1.同意 2.拒绝 3.忽略 +/// 参数可为空,且为 拒绝 时有效 +/// +/// + + [DllImport("bin/message.dll")] + public static extern void Api_SetFriendAdd([Description("")] string QQID,[Description("1.同意 2.拒绝 3.忽略")] int Type,[Description("参数可为空,且为 拒绝 时有效")] string Reason,[Description("")] int AuthCode); + /// +/// //向框架推送一条日志 +/// +/// 日志类型(自定义) +/// 日志内容 +/// 日志颜色 +/// +/// + + [DllImport("bin/message.dll")] + public static extern void Api_SendLog([Description("日志类型(自定义)")] string Type,[Description("日志内容")] string Msg,[Description("日志颜色")] int FontColor,[Description("")] int AuthCode); + /// +/// //修改好友备注 +/// +/// +/// +/// +/// + + [DllImport("bin/message.dll")] + public static extern void Api_SetFriendName([Description("")] string QQID,[Description("")] string Name,[Description("")] int AuthCode); + /// +/// //删除好友 +/// +/// +/// +/// + + [DllImport("bin/message.dll")] + public static extern void Api_DeleteFriend([Description("")] string QQID,[Description("")] int AuthCode); + /// +/// //主动添加群 +/// +/// +/// +/// +/// + + [DllImport("bin/message.dll")] + public static extern void Api_AddGroup([Description("")] string GroupID,[Description("")] string 附加信息,[Description("")] int AuthCode); + /// +/// //主动添加好友 +/// +/// +/// +/// +/// + + [DllImport("bin/message.dll")] + public static extern void Api_AddFriend([Description("")] string QQID,[Description("")] string Info,[Description("")] int AuthCode); + /// +/// //返回卡片点歌JSON代码 +/// +/// +/// +/// + + [DllImport("bin/message.dll")] + public static extern string Api_JsonMusic([Description("")] string SongID,[Description("")] int AuthCode); + /// +/// //取得群内成员的名片 +/// +/// +/// +/// +/// + + [DllImport("bin/message.dll")] + public static extern string Api_GetGroupCard([Description("")] string GroupID,[Description("")] string QQID,[Description("")] int AuthCode); + /// +/// //取指定QQ的昵称 +/// +/// +/// +/// + + [DllImport("bin/message.dll")] + public static extern string Api_GetNick([Description("")] string QQID,[Description("")] int AuthCode); + /// +/// +/// +/// +/// +/// + + [DllImport("bin/message.dll")] + public static extern string Api_GetGroupName([Description("")] string GroupID,[Description("")] int AuthCode); + /// +/// +/// +/// +/// + + [DllImport("bin/message.dll")] + public static extern string Api_GetSoftVersion([Description("")] int AuthCode); + /// +/// +/// +/// +/// +/// + + [DllImport("bin/message.dll")] + public static extern string Api_GetGroupIntroduce([Description("")] string GroupID,[Description("")] int AuthCode); + /// +/// +/// +/// +/// +/// + + [DllImport("bin/message.dll")] + public static extern string Api_GetGroupOwner([Description("")] string GroupID,[Description("")] int AuthCode); + /// +/// //修改群成员的名片 +/// +/// +/// +/// +/// +/// + + [DllImport("bin/message.dll")] + public static extern void Api_SetGroupCard([Description("")] string GroupID,[Description("")] string QQID,[Description("")] string NewCard,[Description("")] int AuthCode); + /// +/// //取得某个QQ的名片赞数量 +/// +/// +/// +/// + + [DllImport("bin/message.dll")] + public static extern string Api_GetPraiseNum([Description("")] string QQID,[Description("")] int AuthCode); + /// +/// //取得某个QQ的等级 +/// +/// +/// +/// + + [DllImport("bin/message.dll")] + public static extern int Api_GetQQLevel([Description("")] string QQID,[Description("")] int AuthCode); + /// +/// +/// +/// +/// +/// + + [DllImport("bin/message.dll")] + public static extern void Api_SetNick([Description("")] string NewNick,[Description("")] int AuthCode); + /// +/// +/// +/// +/// +/// +/// + + [DllImport("bin/message.dll")] + public static extern string Api_Taotaodolike([Description("")] string QQID,[Description("")] string URL,[Description("")] int AuthCode); + /// +/// +/// +/// +/// +/// +/// +/// + + [DllImport("bin/message.dll")] + public static extern string Api_Taotaofeeds([Description("")] string QQID,[Description("")] string URL,[Description("")] string Content,[Description("")] int AuthCode); + /// +/// +/// +/// +/// +/// + + [DllImport("bin/message.dll")] + public static extern int Api_GetQQAge([Description("")] string QQID,[Description("")] int AuthCode); + /// +/// +/// +/// +/// +/// + + [DllImport("bin/message.dll")] + public static extern int Api_GetQQSex([Description("")] string QQID,[Description("")] int AuthCode); + /// +/// //以JSON形式取得好友列表 +/// +/// +/// +/// + + [DllImport("bin/message.dll")] + public static extern string Api_GetFriendList([Description("")] bool Cache,[Description("")] int AuthCode); + /// +/// //以JSON形式取得群列表 +/// +/// +/// +/// + + [DllImport("bin/message.dll")] + public static extern string Api_GetGroupList([Description("")] bool Cache,[Description("")] int AuthCode); + /// +/// //以JSON形式取得群成员列表 +/// +/// +/// +/// +/// + + [DllImport("bin/message.dll")] + public static extern string Api_GetGroupMemberList([Description("")] string GroupID,[Description("")] bool Cache,[Description("")] int AuthCode); + /// +/// //以JSON形式取得某QQ个人信息 +/// +/// +/// +/// + + [DllImport("bin/message.dll")] + public static extern string Api_GetQQInfo([Description("")] string QQID,[Description("")] int AuthCode); + /// +/// //以JSON形式取得某群信息 +/// +/// +/// +/// + + [DllImport("bin/message.dll")] + public static extern string Api_GetGroupInfo([Description("")] string GroupID,[Description("")] int AuthCode); + /// +/// //撤回自身消息 发出消息不可以秒撤回,腾讯限制,1~2s后才可撤回 +/// +/// 1.好友消息 2.群消息 3.群临时消息 4.讨论组消息 5.讨论组临时消息 6.QQ临时消息 +/// 撤回群消息、群临时消息、讨论组消息、讨论组临时消息必须填写,其余情况可留空 +/// 撤回好友消息、群临时消息、讨论组临时消息、QQ临时消息必须填写,其余情况可留空 +/// 撤回的消息ID,机器人发送消息会返回自身的消息ID +/// +/// + + [DllImport("bin/message.dll")] + public static extern void Api_DeleteMsg([Description("1.好友消息 2.群消息 3.群临时消息 4.讨论组消息 5.讨论组临时消息 6.QQ临时消息")] int Type,[Description("撤回群消息、群临时消息、讨论组消息、讨论组临时消息必须填写,其余情况可留空")] string GroupID,[Description("撤回好友消息、群临时消息、讨论组临时消息、QQ临时消息必须填写,其余情况可留空")] string QQID,[Description("撤回的消息ID,机器人发送消息会返回自身的消息ID")] string MsgID,[Description("")] int AuthCode); + /// +/// //改变QQ在线状态 +/// +/// 1.我在线上 2.Q我吧 3.离开 4.忙碌 5.请勿打扰 6.隐身 +/// +/// + + [DllImport("bin/message.dll")] + public static extern void Api_SetQQState([Description("1.我在线上 2.Q我吧 3.离开 4.忙碌 5.请勿打扰 6.隐身")] int Type,[Description("")] int AuthCode); + /// +/// //邀请好友入群 +/// +/// +/// +/// +/// + + [DllImport("bin/message.dll")] + public static extern void Api_InviteFriend([Description("")] string GroupID,[Description("")] string QQID,[Description("")] int AuthCode); + /// +/// +/// +/// +/// +/// + + [DllImport("bin/message.dll")] + public static extern string Api_GetQQInfo_v2([Description("")] string QQID,[Description("")] int AuthCode); + /// +/// //取消COM库 +/// +/// + + [DllImport("bin/message.dll")] + public static extern void CoUninitialize(); + /// +/// //初始化COM库 +/// +/// +/// + + [DllImport("bin/message.dll")] + public static extern void CoInitialize([Description("")] int pvReserved); + /// +/// //上传图片,获得图片GUID, +/// +/// 1.私聊图片 2.群聊图片 +/// 私聊图片填写QQID,群聊/讨论组图片填写群号讨论组号 +/// 图片的Hex流 +/// +/// + + [DllImport("bin/message.dll")] + public static extern string Api_UpLoadPic([Description("1.私聊图片 2.群聊图片")] int Type,[Description("私聊图片填写QQID,群聊/讨论组图片填写群号讨论组号")] string 对象,[Description("图片的Hex流")] string Bin,[Description("")] int AuthCode); + /// +/// //设置插件状态,开启或关闭 +/// +/// 真:启用自身 假:关闭自身 +/// +/// + + [DllImport("bin/message.dll")] + public static extern string Api_SetPluginState([Description("真:启用自身 假:关闭自身")] bool State,[Description("")] int AuthCode); + /// +/// +/// +/// +/// +/// +/// + + [DllImport("bin/message.dll")] + public static extern void Api_DeleteFile([Description("")] string 群号,[Description("")] string 文件GUID,[Description("")] int AuthCode); + /// +/// +/// +/// +/// +/// +/// +/// + + [DllImport("bin/message.dll")] + public static extern void Api_RepeatFile([Description("")] string 来源对象,[Description("")] string 转发群号,[Description("")] string 文件GUID,[Description("")] int AuthCode); + /// +/// +/// +/// +/// + + [DllImport("bin/message.dll")] + public static extern void Api_ClearOffLineFile([Description("")] int AuthCode); + /// +/// +/// +/// +/// +/// 址 +/// +/// 址 +/// +/// +/// +/// + + [DllImport("bin/message.dll")] + public static extern int WideCharToMultiByte([Description("")] int CodePage,[Description("")] int dwFlags,[Description("址")] byte[] lpWideCharStr,[Description("")] int cchWideChar,[Description("址")] string lpMultiByteStr,[Description("")] int cchMultiByte,[Description("")] int lpDefaultChar,[Description("")] int lpUsedDefaultChar); + } +} diff --git a/src/Newbe.Tools.ELang2CSharp/source/qqlight.txt b/src/Newbe.Tools.ELang2CSharp/source/qqlight.txt new file mode 100644 index 0000000..d773ed0 --- /dev/null +++ b/src/Newbe.Tools.ELang2CSharp/source/qqlight.txt @@ -0,0 +1,286 @@ +.版本 2 + +.DLL命令 QL_SendPraise, , "message.dll", "Api_SendPraise", , //给QQ点名片赞,PCQQ点赞不稳定,容易失效 + .参数 QQID, 文本型 + .参数 AuthCode, 整数型 + +.DLL命令 QL_SendShake, , "message.dll", "Api_SendShake", , //抖动好友窗口 + .参数 QQID, 文本型 + .参数 AuthCode, 整数型 + +.DLL命令 QL_Getbkn, 文本型, "message.dll", "Api_Getbkn", , //取得网页操作时需要用到的bkn/Gtk + .参数 Cookies, 文本型 + .参数 AuthCode, 整数型 + +.DLL命令 QL_Getbkn_Long, 文本型, "message.dll", "Api_Getbkn_Long", , //取得网页操作时需要用到的bkn/Gtk + .参数 Cookies, 文本型 + .参数 AuthCode, 整数型 + +.DLL命令 QL_QuitGroup, , "message.dll", "Api_QuitGroup", , //退出群 + .参数 GroupID, 文本型 + .参数 AuthCode, 整数型 + +.DLL命令 QL_QuitDiscussGroup, , "message.dll", "Api_QuitDiscussGroup", , //退出讨论组 + .参数 GroupID, 文本型 + .参数 AuthCode, 整数型 + +.DLL命令 QL_SetSignature, , "message.dll", "Api_SetSignature", , //修改个性签名 + .参数 Signature, 文本型 + .参数 AuthCode, 整数型 + +.DLL命令 QL_SetDiscussName, , "message.dll", "Api_SetDiscussName", , //修改讨论组名称 + .参数 DiscussGroupID, 文本型 + .参数 Name, 文本型 + .参数 AuthCode, 整数型 + +.DLL命令 QL_SetGroupName, , "message.dll", "Api_SetGroupName", , //修改群名称 + .参数 GroupID, 文本型 + .参数 Name, 文本型 + .参数 AuthCode, 整数型 + +.DLL命令 QL_BanGroup, , "message.dll", "Api_BanGroup", , //设置全群禁言 + .参数 GroupID, 文本型 + .参数 IsBanGroup, 逻辑型, , 真 开启全群禁言 假 关闭全群禁言 + .参数 AuthCode, 整数型 + +.DLL命令 QL_SetManager, , "message.dll", "Api_SetManager", , //设置管理员权限 + .参数 GroupID, 文本型 + .参数 QQID, 文本型 + .参数 IsManager, 逻辑型, , 真,设置 假,取消 + .参数 AuthCode, 整数型 + +.DLL命令 QL_Ban, , "message.dll", "Api_Ban", , //禁言群成员 + .参数 GroupID, 文本型 + .参数 QQ, 文本型 + .参数 time, 整数型, , 单位:秒 0为解除禁言 + .参数 AuthCode, 整数型 + +.DLL命令 QL_SetAnony, , "message.dll", "Api_SetAnony", , //修改匿名权限 + .参数 GroupID, 文本型 + .参数 IsSetAnony, 逻辑型, , 真 允许匿名 假 禁止匿名 + .参数 AuthCode, 整数型 + +.DLL命令 QL_RemoveMember, , "message.dll", "Api_RemoveMember", , //踢出群成员 + .参数 GroupID, 文本型 + .参数 QQID, 文本型 + .参数 IsBan, 逻辑型, , 不再接受此人加群 + .参数 AuthCode, 整数型 + +.DLL命令 QL_RemoveGroup, , "message.dll", "Api_RemoveGroup", , //解散群 + .参数 GroupID, 文本型, , 群号 + .参数 AuthCode, 整数型 + +.DLL命令 QL_GetCookies, 文本型, "message.dll", "Api_GetCookies", , //取得操作网页所需要的Cookies + .参数 AuthCode, 整数型 + +.DLL命令 QL_GetQzoneToken, 文本型, "message.dll", "Api_GetQzoneToken", , //取得QQ空间Token + .参数 AuthCode, 整数型 + +.DLL命令 QL_GetQzoneCookies, 文本型, "message.dll", "Api_GetQzoneCookies", , //取得QQ空间Cookies + .参数 AuthCode, 整数型 + +.DLL命令 QL_SendTaotao, 文本型, "message.dll", "Api_SendTaotao", , //发表说说 + .参数 Str, 文本型 + .参数 AuthCode, 整数型 + +.DLL命令 QL_GetLoginQQ, 文本型, "message.dll", "Api_GetLoginQQ", , //取得所登录的QQ + .参数 AuthCode, 整数型 + +.DLL命令 QL_GetPath, 文本型, "message.dll", "Api_GetPath", , //框架为插件所创建的插件目录 + .参数 AuthCode, 整数型 + +.DLL命令 QL_SetErrorCode, 文本型, "message.dll", "Api_Error", , //置插件错误管理 + .参数 Code, 文本型 + .参数 Str, 文本型 + .参数 AuthCode, 整数型 + +.DLL命令 QL_SendMsg, 文本型, "message.dll", "Api_SendMsg", , //机器人发送消息,返回值为该条消息的ID + .参数 Type, 整数型, , 1.好友消息 2.群消息 3.群临时消息 4.讨论组消息 5.讨论组临时消息 6.QQ临时消息 + .参数 GroupID, 文本型 + .参数 QQID, 文本型, , 类型为2,4时可留空 + .参数 Msg, 文本型 + .参数 AuthCode, 整数型 + +.DLL命令 QL_SetGroupAdd, , "message.dll", "Api_SetGroupAdd", , //处理加群消息 + .参数 GroupID, 文本型 + .参数 QQID, 文本型 + .参数 Seq, 文本型 + .参数 Type, 整数型, , 1.同意 2.拒绝 3.忽略 + .参数 Reason, 文本型, , 参数可为空,且为 拒绝 时有效 + .参数 AuthCode, 整数型 + +.DLL命令 QL_SetFriendAdd, , "message.dll", "Api_SetFriendAdd", , //处理加好友消息 + .参数 QQID, 文本型 + .参数 Type, 整数型, , 1.同意 2.拒绝 3.忽略 + .参数 Reason, 文本型, , 参数可为空,且为 拒绝 时有效 + .参数 AuthCode, 整数型 + +.DLL命令 QL_SendLog, , "message.dll", "Api_SendLog", , //向框架推送一条日志 + .参数 Type, 文本型, , 日志类型(自定义) + .参数 Msg, 文本型, , 日志内容 + .参数 FontColor, 整数型, , 日志颜色 + .参数 AuthCode, 整数型 + +.DLL命令 QL_SetFriendName, , "message.dll", "Api_SetFriendName", , //修改好友备注 + .参数 QQID, 文本型 + .参数 Name, 文本型 + .参数 AuthCode, 整数型 + +.DLL命令 QL_DeleteFriend, , "message.dll", "Api_DeleteFriend", , //删除好友 + .参数 QQID, 文本型 + .参数 AuthCode, 整数型 + +.DLL命令 QL_AddGroup, , "message.dll", "Api_AddGroup", , //主动添加群 + .参数 GroupID, 文本型 + .参数 附加信息, 文本型 + .参数 AuthCode, 整数型 + +.DLL命令 QL_AddFriend, , "message.dll", "Api_AddFriend", , //主动添加好友 + .参数 QQID, 文本型 + .参数 Info, 文本型 + .参数 AuthCode, 整数型 + +.DLL命令 QL_JsonMusic, 文本型, "message.dll", "Api_JsonMusic", , //返回卡片点歌JSON代码 + .参数 SongID, 文本型 + .参数 AuthCode, 整数型 + +.DLL命令 QL_GetGroupCard, 文本型, "message.dll", "Api_GetGroupCard", , //取得群内成员的名片 + .参数 GroupID, 文本型 + .参数 QQID, 文本型 + .参数 AuthCode, 整数型 + +.DLL命令 QL_GetNick, 文本型, "message.dll", "Api_GetNick", , //取指定QQ的昵称 + .参数 QQID, 文本型 + .参数 AuthCode, 整数型 + +.DLL命令 QL_GetGroupName, 文本型, "message.dll", "Api_GetGroupName" + .参数 GroupID, 文本型 + .参数 AuthCode, 整数型 + +.DLL命令 QL_GetSoftVersion, 文本型, "message.dll", "Api_GetSoftVersion" + .参数 AuthCode, 整数型 + +.DLL命令 QL_GetGroupIntroduce, 文本型, "message.dll", "Api_GetGroupIntroduce" + .参数 GroupID, 文本型 + .参数 AuthCode, 整数型 + +.DLL命令 QL_GetGroupOwner, 文本型, "message.dll", "Api_GetGroupOwner" + .参数 GroupID, 文本型 + .参数 AuthCode, 整数型 + +.DLL命令 QL_SetGroupCard, , "message.dll", "Api_SetGroupCard", , //修改群成员的名片 + .参数 GroupID, 文本型 + .参数 QQID, 文本型 + .参数 NewCard, 文本型 + .参数 AuthCode, 整数型 + +.DLL命令 QL_GetPraiseNum, 文本型, "message.dll", "Api_GetPraiseNum", , //取得某个QQ的名片赞数量 + .参数 QQID, 文本型 + .参数 AuthCode, 整数型 + +.DLL命令 QL_GetQQLevel, 整数型, "message.dll", "Api_GetQQLevel", , //取得某个QQ的等级 + .参数 QQID, 文本型 + .参数 AuthCode, 整数型 + +.DLL命令 QL_SetNick, , "message.dll", "Api_SetNick" + .参数 NewNick, 文本型 + .参数 AuthCode, 整数型 + +.DLL命令 QL_Taotaodolike, 文本型, "message.dll", "Api_Taotaodolike" + .参数 QQID, 文本型 + .参数 URL, 文本型 + .参数 AuthCode, 整数型 + +.DLL命令 QL_Taotaofeeds, 文本型, "message.dll", "Api_Taotaofeeds" + .参数 QQID, 文本型 + .参数 URL, 文本型 + .参数 Content, 文本型 + .参数 AuthCode, 整数型 + +.DLL命令 QL_GetQQAge, 整数型, "message.dll", "Api_GetQQAge" + .参数 QQID, 文本型 + .参数 AuthCode, 整数型 + +.DLL命令 QL_GetQQSex, 整数型, "message.dll", "Api_GetQQSex" + .参数 QQID, 文本型 + .参数 AuthCode, 整数型 + +.DLL命令 QL_GetFriendList, 文本型, "message.dll", "Api_GetFriendList", , //以JSON形式取得好友列表 + .参数 Cache, 逻辑型 + .参数 AuthCode, 整数型 + +.DLL命令 QL_GetGroupList, 文本型, "message.dll", "Api_GetGroupList", , //以JSON形式取得群列表 + .参数 Cache, 逻辑型 + .参数 AuthCode, 整数型 + +.DLL命令 QL_GetGroupMemberList, 文本型, "message.dll", "Api_GetGroupMemberList", , //以JSON形式取得群成员列表 + .参数 GroupID, 文本型 + .参数 Cache, 逻辑型 + .参数 AuthCode, 整数型 + +.DLL命令 QL_GetQQInfo_1, 文本型, "message.dll", "Api_GetQQInfo", , //以JSON形式取得某QQ个人信息 + .参数 QQID, 文本型 + .参数 AuthCode, 整数型 + +.DLL命令 QL_GetGroupInfo, 文本型, "message.dll", "Api_GetGroupInfo", , //以JSON形式取得某群信息 + .参数 GroupID, 文本型 + .参数 AuthCode, 整数型 + +.DLL命令 QL_DeleteMsg, , "message.dll", "Api_DeleteMsg", , //撤回自身消息 发出消息不可以秒撤回,腾讯限制,1~2s后才可撤回 + .参数 Type, 整数型, , 1.好友消息 2.群消息 3.群临时消息 4.讨论组消息 5.讨论组临时消息 6.QQ临时消息 + .参数 GroupID, 文本型, , 撤回群消息、群临时消息、讨论组消息、讨论组临时消息必须填写,其余情况可留空 + .参数 QQID, 文本型, , 撤回好友消息、群临时消息、讨论组临时消息、QQ临时消息必须填写,其余情况可留空 + .参数 MsgID, 文本型, , 撤回的消息ID,机器人发送消息会返回自身的消息ID + .参数 AuthCode, 整数型 + +.DLL命令 QL_SetQQState, , "message.dll", "Api_SetQQState", , //改变QQ在线状态 + .参数 Type, 整数型, , 1.我在线上 2.Q我吧 3.离开 4.忙碌 5.请勿打扰 6.隐身 + .参数 AuthCode, 整数型 + +.DLL命令 QL_InviteFriendToGroup, , "message.dll", "Api_InviteFriend", , //邀请好友入群 + .参数 GroupID, 文本型 + .参数 QQID, 文本型 + .参数 AuthCode, 整数型 + +.DLL命令 QL_GetQQInfo_2, 文本型, "message.dll", "Api_GetQQInfo_v2" + .参数 QQID, 文本型 + .参数 AuthCode, 整数型 + +.DLL命令 CoUninitialize, , "ole32.dll", "CoUninitialize", 公开, //取消COM库 + +.DLL命令 CoInitialize, , "ole32.dll", "CoInitialize", 公开, //初始化COM库 + .参数 pvReserved, 整数型 + +.DLL命令 QL_UpLoadPic, 文本型, "message.dll", "Api_UpLoadPic", , //上传图片,获得图片GUID, + .参数 Type, 整数型, , 1.私聊图片 2.群聊图片 + .参数 对象, 文本型, , 私聊图片填写QQID,群聊/讨论组图片填写群号讨论组号 + .参数 Bin, 文本型, , 图片的Hex流 + .参数 AuthCode, 整数型 + +.DLL命令 QL_SetPluginState, 文本型, "message.dll", "Api_SetPluginState", , //设置插件状态,开启或关闭 + .参数 State, 逻辑型, , 真:启用自身 假:关闭自身 + .参数 AuthCode, 整数型 + +.DLL命令 QL_DeleteFile, , "message.dll", "Api_DeleteFile" + .参数 群号, 文本型 + .参数 文件GUID, 文本型 + .参数 AuthCode, 整数型 + +.DLL命令 QL_RepeatFile, , "message.dll", "Api_RepeatFile" + .参数 来源对象, 文本型 + .参数 转发群号, 文本型 + .参数 文件GUID, 文本型 + .参数 AuthCode, 整数型 + +.DLL命令 QL_ClearOffLineFile, , "message.dll", "Api_ClearOffLineFile" + .参数 AuthCode, 整数型 + +.DLL命令 _Unicode转Utf8, 整数型, "kernel32", "WideCharToMultiByte", , , + .参数 CodePage, 整数型 + .参数 dwFlags, 整数型 + .参数 lpWideCharStr, 字节集, 传址 + .参数 cchWideChar, 整数型 + .参数 lpMultiByteStr, 文本型, 传址 + .参数 cchMultiByte, 整数型 + .参数 lpDefaultChar, 整数型 + .参数 lpUsedDefaultChar, 整数型