mirror of
https://github.com/timi137137/AuroraNative.git
synced 2025-09-13 19:54:31 +00:00
03/14 Last Update
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -341,3 +341,4 @@ healthchecksdb
|
|||||||
DevIcon.*
|
DevIcon.*
|
||||||
Test
|
Test
|
||||||
nuget.config
|
nuget.config
|
||||||
|
*.cd
|
@@ -62,15 +62,15 @@ namespace AuroraNative
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 发送私聊消息
|
/// 发送私聊消息
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="QID">接受者QQ号</param>
|
/// <param name="UserID">接受者QQ号</param>
|
||||||
/// <param name="Message">信息内容</param>
|
/// <param name="Message">信息内容</param>
|
||||||
/// <param name="AutoEscape">是否转义<para>默认:false</para></param>
|
/// <param name="AutoEscape">是否转义<para>默认:false</para></param>
|
||||||
/// <returns>返回消息ID,错误返回-1</returns>
|
/// <returns>返回消息ID,错误返回-1</returns>
|
||||||
public async Task<string> SendPrivateMessage(long QID, string Message, bool AutoEscape = false)
|
public async Task<string> SendPrivateMessage(long UserID, string Message, bool AutoEscape = false)
|
||||||
{
|
{
|
||||||
JObject Params = new JObject
|
JObject Params = new JObject
|
||||||
{
|
{
|
||||||
{ "user_id", QID },
|
{ "user_id", UserID },
|
||||||
{ "message", Message },
|
{ "message", Message },
|
||||||
{ "auto_escape", AutoEscape }
|
{ "auto_escape", AutoEscape }
|
||||||
};
|
};
|
||||||
@@ -119,11 +119,11 @@ namespace AuroraNative
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="Message">信息内容</param>
|
/// <param name="Message">信息内容</param>
|
||||||
/// <param name="MessageType">信息类型<para>私聊:private</para><para>群聊:group</para></param>
|
/// <param name="MessageType">信息类型<para>私聊:private</para><para>群聊:group</para></param>
|
||||||
/// <param name="QID">QQ号</param>
|
/// <param name="UserID">QQ号</param>
|
||||||
/// <param name="GroupID">群号</param>
|
/// <param name="GroupID">群号</param>
|
||||||
/// <param name="AutoEscape">是否转义<para>默认:false</para></param>
|
/// <param name="AutoEscape">是否转义<para>默认:false</para></param>
|
||||||
/// <returns>错误返回-1,成功返回信息ID</returns>
|
/// <returns>错误返回-1,成功返回信息ID</returns>
|
||||||
public async Task<string> SendMsg(string Message, string MessageType = null, long QID = 0, long GroupID = 0, bool AutoEscape = false)
|
public async Task<string> SendMsg(string Message, string MessageType = null, long UserID = 0, long GroupID = 0, bool AutoEscape = false)
|
||||||
{
|
{
|
||||||
JObject Params = new JObject() {
|
JObject Params = new JObject() {
|
||||||
{ "message", Message},
|
{ "message", Message},
|
||||||
@@ -133,15 +133,15 @@ namespace AuroraNative
|
|||||||
switch (MessageType)
|
switch (MessageType)
|
||||||
{
|
{
|
||||||
case "private":
|
case "private":
|
||||||
Params.Add("user_id", QID);
|
Params.Add("user_id", UserID);
|
||||||
break;
|
break;
|
||||||
case "group":
|
case "group":
|
||||||
Params.Add("group_id", GroupID);
|
Params.Add("group_id", GroupID);
|
||||||
break;
|
break;
|
||||||
case null:
|
case null:
|
||||||
if (QID != 0)
|
if (UserID != 0)
|
||||||
{
|
{
|
||||||
Params.Add("user_id", QID);
|
Params.Add("user_id", UserID);
|
||||||
}
|
}
|
||||||
else if (GroupID != 0)
|
else if (GroupID != 0)
|
||||||
{
|
{
|
||||||
@@ -199,26 +199,33 @@ namespace AuroraNative
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="Filename">图片缓存文件名,带不带后缀你喜欢就好</param>
|
/// <param name="Filename">图片缓存文件名,带不带后缀你喜欢就好</param>
|
||||||
/// <returns>错误返回null,成功返回JObject</returns>
|
/// <returns>错误返回null,成功返回JObject</returns>
|
||||||
public async Task<JObject> GetImage(string Filename)
|
public async Task<Dictionary<string, object>> GetImage(string Filename)
|
||||||
{
|
{
|
||||||
if (!Filename.Contains(".image"))
|
if (!Filename.Contains(".image"))
|
||||||
{
|
{
|
||||||
Filename += ".image";
|
Filename += ".image";
|
||||||
}
|
}
|
||||||
return await SendCallObject(new BaseAPI("get_image", new JObject() { { "file", Filename } }, "GetImage:" + Utils.NowTimeSteamp()));
|
|
||||||
|
JObject Json = await SendCallObject(new BaseAPI("get_image", new JObject() { { "file", Filename } }, "GetImage:" + Utils.NowTimeSteamp()));
|
||||||
|
|
||||||
|
return new Dictionary<string, object>() {
|
||||||
|
{"Size",Json.Value<int>("size")},
|
||||||
|
{"FileName",Json.Value<string>("filename")},
|
||||||
|
{"Url",Json.Value<string>("url")}
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 群组踢人
|
/// 群组踢人
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="GroupID">群号</param>
|
/// <param name="GroupID">群号</param>
|
||||||
/// <param name="QID">QQ号</param>
|
/// <param name="UserID">QQ号</param>
|
||||||
/// <param name="RejectAddRequest">是否自动拒绝此人加群申请<para>默认:false</para></param>
|
/// <param name="RejectAddRequest">是否自动拒绝此人加群申请<para>默认:false</para></param>
|
||||||
public void SetGroupKick(long GroupID, long QID, bool RejectAddRequest = false)
|
public void SetGroupKick(long GroupID, long UserID, bool RejectAddRequest = false)
|
||||||
{
|
{
|
||||||
JObject Params = new JObject
|
JObject Params = new JObject
|
||||||
{
|
{
|
||||||
{ "user_id", QID },
|
{ "user_id", UserID },
|
||||||
{ "group_id", GroupID },
|
{ "group_id", GroupID },
|
||||||
{ "reject_add_request", RejectAddRequest }
|
{ "reject_add_request", RejectAddRequest }
|
||||||
};
|
};
|
||||||
@@ -230,13 +237,13 @@ namespace AuroraNative
|
|||||||
/// 群组单人禁言
|
/// 群组单人禁言
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="GroupID">群号</param>
|
/// <param name="GroupID">群号</param>
|
||||||
/// <param name="QID">QQ号</param>
|
/// <param name="UserID">QQ号</param>
|
||||||
/// <param name="Duration">禁言时间,单位秒<para>默认:30分钟(1800秒)</para></param>
|
/// <param name="Duration">禁言时间,单位秒<para>默认:30分钟(1800秒)</para></param>
|
||||||
public void SetGroupBan(long GroupID, long QID, int Duration = 1800)
|
public void SetGroupBan(long GroupID, long UserID, int Duration = 1800)
|
||||||
{
|
{
|
||||||
JObject Params = new JObject
|
JObject Params = new JObject
|
||||||
{
|
{
|
||||||
{ "user_id", QID },
|
{ "user_id", UserID },
|
||||||
{ "group_id", GroupID },
|
{ "group_id", GroupID },
|
||||||
{ "duration", Duration }
|
{ "duration", Duration }
|
||||||
};
|
};
|
||||||
@@ -291,13 +298,13 @@ namespace AuroraNative
|
|||||||
/// 设置群管理员
|
/// 设置群管理员
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="GroupID">群号</param>
|
/// <param name="GroupID">群号</param>
|
||||||
/// <param name="QID">QQ号</param>
|
/// <param name="UserID">QQ号</param>
|
||||||
/// <param name="Enable">是否设置为管理员<para>默认:true</para></param>
|
/// <param name="Enable">是否设置为管理员<para>默认:true</para></param>
|
||||||
public void SetGroupAdmin(long GroupID, long QID, bool Enable = true)
|
public void SetGroupAdmin(long GroupID, long UserID, bool Enable = true)
|
||||||
{
|
{
|
||||||
JObject Params = new JObject
|
JObject Params = new JObject
|
||||||
{
|
{
|
||||||
{ "user_id", QID },
|
{ "user_id", UserID },
|
||||||
{ "group_id", GroupID },
|
{ "group_id", GroupID },
|
||||||
{ "enable", Enable }
|
{ "enable", Enable }
|
||||||
};
|
};
|
||||||
@@ -309,13 +316,13 @@ namespace AuroraNative
|
|||||||
/// 设置群名片
|
/// 设置群名片
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="GroupID">群号</param>
|
/// <param name="GroupID">群号</param>
|
||||||
/// <param name="QID">QQ号</param>
|
/// <param name="UserID">QQ号</param>
|
||||||
/// <param name="Card">群名片内容<para>默认:null(删除群名片)</para></param>
|
/// <param name="Card">群名片内容<para>默认:null(删除群名片)</para></param>
|
||||||
public void SetGroupCard(long GroupID, long QID, string Card = null)
|
public void SetGroupCard(long GroupID, long UserID, string Card = null)
|
||||||
{
|
{
|
||||||
JObject Params = new JObject
|
JObject Params = new JObject
|
||||||
{
|
{
|
||||||
{ "user_id", QID },
|
{ "user_id", UserID },
|
||||||
{ "group_id", GroupID },
|
{ "group_id", GroupID },
|
||||||
{ "card", Card }
|
{ "card", Card }
|
||||||
};
|
};
|
||||||
@@ -359,14 +366,14 @@ namespace AuroraNative
|
|||||||
/// 设置群组专属头衔
|
/// 设置群组专属头衔
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="GroupID">群号</param>
|
/// <param name="GroupID">群号</param>
|
||||||
/// <param name="QID">QQ号</param>
|
/// <param name="UserID">QQ号</param>
|
||||||
/// <param name="SpecialTitle">群名片内容<para>默认:null(删除群名片)</para></param>
|
/// <param name="SpecialTitle">群名片内容<para>默认:null(删除群名片)</para></param>
|
||||||
/// <param name="Duration">专属头衔有效期, 单位秒, 不过此项似乎没有效果, 可能是只有某些特殊的时间长度有效, 有待测试<para>默认:-1(永久)</para></param>
|
/// <param name="Duration">专属头衔有效期, 单位秒, 不过此项似乎没有效果, 可能是只有某些特殊的时间长度有效, 有待测试<para>默认:-1(永久)</para></param>
|
||||||
public void SetGroupSpecialTitle(long GroupID, long QID, string SpecialTitle = null, int Duration = -1)
|
public void SetGroupSpecialTitle(long GroupID, long UserID, string SpecialTitle = null, int Duration = -1)
|
||||||
{
|
{
|
||||||
JObject Params = new JObject
|
JObject Params = new JObject
|
||||||
{
|
{
|
||||||
{ "user_id", QID },
|
{ "user_id", UserID },
|
||||||
{ "group_id", GroupID },
|
{ "group_id", GroupID },
|
||||||
{ "duration", Duration },
|
{ "duration", Duration },
|
||||||
{ "special_title", SpecialTitle }
|
{ "special_title", SpecialTitle }
|
||||||
@@ -417,35 +424,48 @@ namespace AuroraNative
|
|||||||
/// 获取登录号信息
|
/// 获取登录号信息
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns>错误返回null,成功返回JObject</returns>
|
/// <returns>错误返回null,成功返回JObject</returns>
|
||||||
public async Task<JObject> GetLoginInfo()
|
public async Task<Dictionary<string, object>> GetLoginInfo()
|
||||||
{
|
{
|
||||||
return await SendCallObject(new BaseAPI("get_login_info", null, "GetLoginInfo:" + Utils.NowTimeSteamp()));
|
JObject Json = await SendCallObject(new BaseAPI("get_login_info", null, "GetLoginInfo:" + Utils.NowTimeSteamp()));
|
||||||
|
|
||||||
|
return new Dictionary<string, object>() {
|
||||||
|
{"UserID",Json.Value<long>("user_id")},
|
||||||
|
{"NickName",Json.Value<string>("nickname")}
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 获取陌生人信息
|
/// 获取陌生人信息
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="QID">QQ号</param>
|
/// <param name="UserID">QQ号</param>
|
||||||
/// <param name="Cache">是否使用缓存,使用缓存响应快但是可能更新不及时<para>默认:false</para></param>
|
/// <param name="Cache">是否使用缓存,使用缓存响应快但是可能更新不及时<para>默认:false</para></param>
|
||||||
/// <returns>错误返回null,成功返回JObject</returns>
|
/// <returns>错误返回null,成功返回JObject</returns>
|
||||||
public async Task<JObject> GetStrangerInfo(long QID, bool Cache = false)
|
public async Task<Dictionary<string, object>> GetStrangerInfo(long UserID, bool Cache = false)
|
||||||
{
|
{
|
||||||
JObject Params = new JObject
|
JObject Params = new JObject
|
||||||
{
|
{
|
||||||
{ "user_id", QID },
|
{ "user_id", UserID },
|
||||||
{ "no_cache ", Cache }
|
{ "no_cache ", Cache }
|
||||||
};
|
};
|
||||||
|
|
||||||
return await SendCallObject(new BaseAPI("get_stranger_info", Params, "GetStrangerInfo:" + Utils.NowTimeSteamp()));
|
JObject Json = await SendCallObject(new BaseAPI("get_stranger_info", Params, "GetStrangerInfo:" + Utils.NowTimeSteamp()));
|
||||||
|
|
||||||
|
return new Dictionary<string, object>() {
|
||||||
|
{"UserID",Json.Value<int>("user_id")},
|
||||||
|
{"NickName",Json.Value<string>("nickname")},
|
||||||
|
{"Sex",Json.Value<string>("sex")},
|
||||||
|
{"Age",Json.Value<string>("age")},
|
||||||
|
{"QID",Json.Value<string>("qid")}
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 获取好友列表
|
/// 获取好友列表
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns>错误返回null,成功返回JObject</returns>
|
/// <returns>错误返回null,成功返回JObject</returns>
|
||||||
public async Task<JObject> GetFriendList()
|
public async Task<List<Friends>> GetFriendList()
|
||||||
{
|
{
|
||||||
return await SendCallObject(new BaseAPI("get_friend_list", null, "GetFriendList:" + Utils.NowTimeSteamp()));
|
return (await SendCallArray(new BaseAPI("get_friend_list", null, "GetFriendList:" + Utils.NowTimeSteamp()))).ToObject<List<Friends>>();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -478,15 +498,15 @@ namespace AuroraNative
|
|||||||
/// 获取群成员信息
|
/// 获取群成员信息
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="GroupID">群号</param>
|
/// <param name="GroupID">群号</param>
|
||||||
/// <param name="QID">QQ号</param>
|
/// <param name="UserID">QQ号</param>
|
||||||
/// <param name="Cache">是否使用缓存,使用缓存响应快但是可能更新不及时<para>默认:false</para></param>
|
/// <param name="Cache">是否使用缓存,使用缓存响应快但是可能更新不及时<para>默认:false</para></param>
|
||||||
/// <returns>错误返回null,成功返回JObject</returns>
|
/// <returns>错误返回null,成功返回JObject</returns>
|
||||||
public async Task<JObject> GetGroupMemberInfo(long GroupID, long QID, bool Cache = false)
|
public async Task<JObject> GetGroupMemberInfo(long GroupID, long UserID, bool Cache = false)
|
||||||
{
|
{
|
||||||
JObject Params = new JObject
|
JObject Params = new JObject
|
||||||
{
|
{
|
||||||
{ "group_id", GroupID },
|
{ "group_id", GroupID },
|
||||||
{ "user_id", QID },
|
{ "user_id", UserID },
|
||||||
{ "no_cache ", Cache }
|
{ "no_cache ", Cache }
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -542,9 +562,26 @@ namespace AuroraNative
|
|||||||
/// 获取版本信息
|
/// 获取版本信息
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns>错误返回null,成功返回JObject</returns>
|
/// <returns>错误返回null,成功返回JObject</returns>
|
||||||
public async Task<JObject> GetVersionInfo()
|
public async Task<Dictionary<string, object>> GetVersionInfo()
|
||||||
{
|
{
|
||||||
return await SendCallObject(new BaseAPI("get_version_info", null, "GetVersionInfo:" + Utils.NowTimeSteamp()));
|
JObject Json = await SendCallObject(new BaseAPI("get_version_info", null, "GetVersionInfo:" + Utils.NowTimeSteamp()));
|
||||||
|
|
||||||
|
return new Dictionary<string, object>() {
|
||||||
|
{"AppFullName",Json.Value<string>("app_full_name")},
|
||||||
|
{"AppName",Json.Value<string>("app_name")},
|
||||||
|
{"AppVersion",Json.Value<string>("app_version")},
|
||||||
|
{"CQDirectory",Json.Value<string>("coolq_directory")},
|
||||||
|
{"CQEdition",Json.Value<string>("coolq_edition")},
|
||||||
|
{"IsGoCqhttp",Json.Value<bool>("go-cqhttp")},
|
||||||
|
{"PluginBuildConfiguration",Json.Value<string>("plugin_build_configuration")},
|
||||||
|
{"PluginBuildNumber",Json.Value<string>("plugin_build_number")},
|
||||||
|
{"PluginVersion",Json.Value<string>("plugin_version")},
|
||||||
|
{"Protocol",Json.Value<string>("protocol")},
|
||||||
|
{"ProtocolVersion",Json.Value<string>("protocol_version")},
|
||||||
|
{"RuntimeOS",Json.Value<string>("runtime_os")},
|
||||||
|
{"RuntimeVersion",Json.Value<string>("runtime_version")},
|
||||||
|
{"Version",Json.Value<string>("version")}
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -717,11 +754,11 @@ namespace AuroraNative
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 获取VIP信息
|
/// 获取VIP信息
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="QID">QQ号</param>
|
/// <param name="UserID">QQ号</param>
|
||||||
/// <returns>错误返回null,成功返回JObject</returns>
|
/// <returns>错误返回null,成功返回JObject</returns>
|
||||||
public async Task<JObject> GetVIPInfo(long QID)
|
public async Task<JObject> GetVIPInfo(long UserID)
|
||||||
{
|
{
|
||||||
return await SendCallObject(new BaseAPI("_get_vip_info", new JObject { { "user_id", QID } }, "GetGroupAtAllRemain:" + Utils.NowTimeSteamp()));
|
return await SendCallObject(new BaseAPI("_get_vip_info", new JObject { { "user_id", UserID } }, "GetGroupAtAllRemain:" + Utils.NowTimeSteamp()));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -840,8 +877,7 @@ namespace AuroraNative
|
|||||||
|
|
||||||
private async Task<string> SendCallMessageID(BaseAPI Params)
|
private async Task<string> SendCallMessageID(BaseAPI Params)
|
||||||
{
|
{
|
||||||
WebSocket.Send(Params);
|
SendCall(Params);
|
||||||
TaskList.Add(Params.UniqueCode, "Sended");
|
|
||||||
|
|
||||||
string Result = "-1";
|
string Result = "-1";
|
||||||
await Task.Run(() => { Result = FeedbackMessageID(Params.UniqueCode); });
|
await Task.Run(() => { Result = FeedbackMessageID(Params.UniqueCode); });
|
||||||
@@ -850,14 +886,32 @@ namespace AuroraNative
|
|||||||
|
|
||||||
private async Task<JObject> SendCallObject(BaseAPI Params)
|
private async Task<JObject> SendCallObject(BaseAPI Params)
|
||||||
{
|
{
|
||||||
WebSocket.Send(Params);
|
SendCall(Params);
|
||||||
TaskList.Add(Params.UniqueCode, "Sended");
|
|
||||||
|
|
||||||
JObject Result = null;
|
JObject Result = null;
|
||||||
await Task.Run(() => { Result = FeedbackObject(Params.UniqueCode); });
|
await Task.Run(() => { Result = FeedbackObject(Params.UniqueCode); });
|
||||||
return Result;
|
return Result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private async Task<JArray> SendCallArray(BaseAPI Params)
|
||||||
|
{
|
||||||
|
SendCall(Params);
|
||||||
|
|
||||||
|
JArray Result = null;
|
||||||
|
await Task.Run(() => { Result = FeedbackArray(Params.UniqueCode); });
|
||||||
|
return Result;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SendCall(BaseAPI Params)
|
||||||
|
{
|
||||||
|
Logger.Debug($"API调用:\n请求的接口:{Params.Action}\n请求的唯一码:{Params.UniqueCode}\n请求的参数:\n{Params.Params}");
|
||||||
|
WebSocket.Send(Params);
|
||||||
|
if (!TaskList.TryGetValue(Params.UniqueCode, out _))
|
||||||
|
{
|
||||||
|
TaskList.Add(Params.UniqueCode, "Sended");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void SendCallVoid(BaseAPI Params)
|
private void SendCallVoid(BaseAPI Params)
|
||||||
{
|
{
|
||||||
WebSocket.Send(Params);
|
WebSocket.Send(Params);
|
||||||
@@ -889,6 +943,18 @@ namespace AuroraNative
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static JArray FeedbackArray(string UniqueCode)
|
||||||
|
{
|
||||||
|
JObject FBJson = GetFeedback(UniqueCode);
|
||||||
|
|
||||||
|
//判断返回
|
||||||
|
if (FBJson["status"].ToString() == "ok")
|
||||||
|
{
|
||||||
|
return JArray.Parse(FBJson["data"].ToString());
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
private static JObject GetFeedback(string UniqueCode)
|
private static JObject GetFeedback(string UniqueCode)
|
||||||
{
|
{
|
||||||
JObject FBJson = new JObject();
|
JObject FBJson = new JObject();
|
||||||
@@ -912,6 +978,14 @@ namespace AuroraNative
|
|||||||
{
|
{
|
||||||
Api api = new Api(WebSocket);
|
Api api = new Api(WebSocket);
|
||||||
Cache.Set($"API{AppDomain.CurrentDomain.Id}", api);
|
Cache.Set($"API{AppDomain.CurrentDomain.Id}", api);
|
||||||
|
Task.Run(() =>
|
||||||
|
{
|
||||||
|
Thread.Sleep(5000);
|
||||||
|
if (!BaseWebSocket.IsCheckVersion)
|
||||||
|
{
|
||||||
|
Event.CheckVersion();
|
||||||
|
}
|
||||||
|
});
|
||||||
return api;
|
return api;
|
||||||
}
|
}
|
||||||
catch (WebSocketException e)
|
catch (WebSocketException e)
|
||||||
|
32
AuroraNative/Abstract/Friends.cs
Normal file
32
AuroraNative/Abstract/Friends.cs
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
using Newtonsoft.Json;
|
||||||
|
|
||||||
|
namespace AuroraNative
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 好友 抽象类
|
||||||
|
/// </summary>
|
||||||
|
public sealed class Friends
|
||||||
|
{
|
||||||
|
#region --属性--
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// QQ号
|
||||||
|
/// </summary>
|
||||||
|
[JsonProperty(PropertyName = "user_id")]
|
||||||
|
public long UserID;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 昵称
|
||||||
|
/// </summary>
|
||||||
|
[JsonProperty(PropertyName = "nickname")]
|
||||||
|
public string NickName;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 备注
|
||||||
|
/// </summary>
|
||||||
|
[JsonProperty(PropertyName = "remark")]
|
||||||
|
public string Remark;
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
@@ -4,6 +4,26 @@
|
|||||||
<name>AuroraNative</name>
|
<name>AuroraNative</name>
|
||||||
</assembly>
|
</assembly>
|
||||||
<members>
|
<members>
|
||||||
|
<member name="T:AuroraNative.Friends">
|
||||||
|
<summary>
|
||||||
|
好友 抽象类
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:AuroraNative.Friends.UserID">
|
||||||
|
<summary>
|
||||||
|
QQ号
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:AuroraNative.Friends.NickName">
|
||||||
|
<summary>
|
||||||
|
昵称
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:AuroraNative.Friends.Remark">
|
||||||
|
<summary>
|
||||||
|
备注
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
<member name="T:AuroraNative.Api">
|
<member name="T:AuroraNative.Api">
|
||||||
<summary>
|
<summary>
|
||||||
API 类
|
API 类
|
||||||
@@ -29,7 +49,7 @@
|
|||||||
<summary>
|
<summary>
|
||||||
发送私聊消息
|
发送私聊消息
|
||||||
</summary>
|
</summary>
|
||||||
<param name="QID">接受者QQ号</param>
|
<param name="UserID">接受者QQ号</param>
|
||||||
<param name="Message">信息内容</param>
|
<param name="Message">信息内容</param>
|
||||||
<param name="AutoEscape">是否转义<para>默认:false</para></param>
|
<param name="AutoEscape">是否转义<para>默认:false</para></param>
|
||||||
<returns>返回消息ID,错误返回-1</returns>
|
<returns>返回消息ID,错误返回-1</returns>
|
||||||
@@ -43,7 +63,7 @@
|
|||||||
<param name="AutoEscape">是否转义<para>默认:false</para></param>
|
<param name="AutoEscape">是否转义<para>默认:false</para></param>
|
||||||
<returns>返回消息ID,错误返回-1</returns>
|
<returns>返回消息ID,错误返回-1</returns>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:AuroraNative.Api.SendGroupForwardMessage(System.Int64,System.Object)">
|
<member name="M:AuroraNative.Api.SendGroupForwardMessage(System.Int64,Newtonsoft.Json.Linq.JArray)">
|
||||||
<summary>
|
<summary>
|
||||||
转发合并消息 - 群
|
转发合并消息 - 群
|
||||||
</summary>
|
</summary>
|
||||||
@@ -57,7 +77,7 @@
|
|||||||
</summary>
|
</summary>
|
||||||
<param name="Message">信息内容</param>
|
<param name="Message">信息内容</param>
|
||||||
<param name="MessageType">信息类型<para>私聊:private</para><para>群聊:group</para></param>
|
<param name="MessageType">信息类型<para>私聊:private</para><para>群聊:group</para></param>
|
||||||
<param name="QID">QQ号</param>
|
<param name="UserID">QQ号</param>
|
||||||
<param name="GroupID">群号</param>
|
<param name="GroupID">群号</param>
|
||||||
<param name="AutoEscape">是否转义<para>默认:false</para></param>
|
<param name="AutoEscape">是否转义<para>默认:false</para></param>
|
||||||
<returns>错误返回-1,成功返回信息ID</returns>
|
<returns>错误返回-1,成功返回信息ID</returns>
|
||||||
@@ -94,7 +114,7 @@
|
|||||||
群组踢人
|
群组踢人
|
||||||
</summary>
|
</summary>
|
||||||
<param name="GroupID">群号</param>
|
<param name="GroupID">群号</param>
|
||||||
<param name="QID">QQ号</param>
|
<param name="UserID">QQ号</param>
|
||||||
<param name="RejectAddRequest">是否自动拒绝此人加群申请<para>默认:false</para></param>
|
<param name="RejectAddRequest">是否自动拒绝此人加群申请<para>默认:false</para></param>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:AuroraNative.Api.SetGroupBan(System.Int64,System.Int64,System.Int32)">
|
<member name="M:AuroraNative.Api.SetGroupBan(System.Int64,System.Int64,System.Int32)">
|
||||||
@@ -102,7 +122,7 @@
|
|||||||
群组单人禁言
|
群组单人禁言
|
||||||
</summary>
|
</summary>
|
||||||
<param name="GroupID">群号</param>
|
<param name="GroupID">群号</param>
|
||||||
<param name="QID">QQ号</param>
|
<param name="UserID">QQ号</param>
|
||||||
<param name="Duration">禁言时间,单位秒<para>默认:30分钟(1800秒)</para></param>
|
<param name="Duration">禁言时间,单位秒<para>默认:30分钟(1800秒)</para></param>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:AuroraNative.Api.SetGroupAnonymousBan(System.Int64,System.Int32,System.String,AuroraNative.EventArgs.Anonymous)">
|
<member name="M:AuroraNative.Api.SetGroupAnonymousBan(System.Int64,System.Int32,System.String,AuroraNative.EventArgs.Anonymous)">
|
||||||
@@ -126,7 +146,7 @@
|
|||||||
设置群管理员
|
设置群管理员
|
||||||
</summary>
|
</summary>
|
||||||
<param name="GroupID">群号</param>
|
<param name="GroupID">群号</param>
|
||||||
<param name="QID">QQ号</param>
|
<param name="UserID">QQ号</param>
|
||||||
<param name="Enable">是否设置为管理员<para>默认:true</para></param>
|
<param name="Enable">是否设置为管理员<para>默认:true</para></param>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:AuroraNative.Api.SetGroupCard(System.Int64,System.Int64,System.String)">
|
<member name="M:AuroraNative.Api.SetGroupCard(System.Int64,System.Int64,System.String)">
|
||||||
@@ -134,7 +154,7 @@
|
|||||||
设置群名片
|
设置群名片
|
||||||
</summary>
|
</summary>
|
||||||
<param name="GroupID">群号</param>
|
<param name="GroupID">群号</param>
|
||||||
<param name="QID">QQ号</param>
|
<param name="UserID">QQ号</param>
|
||||||
<param name="Card">群名片内容<para>默认:null(删除群名片)</para></param>
|
<param name="Card">群名片内容<para>默认:null(删除群名片)</para></param>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:AuroraNative.Api.SetGroupName(System.Int64,System.String)">
|
<member name="M:AuroraNative.Api.SetGroupName(System.Int64,System.String)">
|
||||||
@@ -156,7 +176,7 @@
|
|||||||
设置群组专属头衔
|
设置群组专属头衔
|
||||||
</summary>
|
</summary>
|
||||||
<param name="GroupID">群号</param>
|
<param name="GroupID">群号</param>
|
||||||
<param name="QID">QQ号</param>
|
<param name="UserID">QQ号</param>
|
||||||
<param name="SpecialTitle">群名片内容<para>默认:null(删除群名片)</para></param>
|
<param name="SpecialTitle">群名片内容<para>默认:null(删除群名片)</para></param>
|
||||||
<param name="Duration">专属头衔有效期, 单位秒, 不过此项似乎没有效果, 可能是只有某些特殊的时间长度有效, 有待测试<para>默认:-1(永久)</para></param>
|
<param name="Duration">专属头衔有效期, 单位秒, 不过此项似乎没有效果, 可能是只有某些特殊的时间长度有效, 有待测试<para>默认:-1(永久)</para></param>
|
||||||
</member>
|
</member>
|
||||||
@@ -187,7 +207,7 @@
|
|||||||
<summary>
|
<summary>
|
||||||
获取陌生人信息
|
获取陌生人信息
|
||||||
</summary>
|
</summary>
|
||||||
<param name="QID">QQ号</param>
|
<param name="UserID">QQ号</param>
|
||||||
<param name="Cache">是否使用缓存,使用缓存响应快但是可能更新不及时<para>默认:false</para></param>
|
<param name="Cache">是否使用缓存,使用缓存响应快但是可能更新不及时<para>默认:false</para></param>
|
||||||
<returns>错误返回null,成功返回JObject</returns>
|
<returns>错误返回null,成功返回JObject</returns>
|
||||||
</member>
|
</member>
|
||||||
@@ -216,7 +236,7 @@
|
|||||||
获取群成员信息
|
获取群成员信息
|
||||||
</summary>
|
</summary>
|
||||||
<param name="GroupID">群号</param>
|
<param name="GroupID">群号</param>
|
||||||
<param name="QID">QQ号</param>
|
<param name="UserID">QQ号</param>
|
||||||
<param name="Cache">是否使用缓存,使用缓存响应快但是可能更新不及时<para>默认:false</para></param>
|
<param name="Cache">是否使用缓存,使用缓存响应快但是可能更新不及时<para>默认:false</para></param>
|
||||||
<returns>错误返回null,成功返回JObject</returns>
|
<returns>错误返回null,成功返回JObject</returns>
|
||||||
</member>
|
</member>
|
||||||
@@ -351,7 +371,7 @@
|
|||||||
<summary>
|
<summary>
|
||||||
获取VIP信息
|
获取VIP信息
|
||||||
</summary>
|
</summary>
|
||||||
<param name="QID">QQ号</param>
|
<param name="UserID">QQ号</param>
|
||||||
<returns>错误返回null,成功返回JObject</returns>
|
<returns>错误返回null,成功返回JObject</returns>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:AuroraNative.Api.SendGroupNotice(System.Int64,System.String)">
|
<member name="M:AuroraNative.Api.SendGroupNotice(System.Int64,System.String)">
|
||||||
@@ -703,146 +723,34 @@
|
|||||||
请求事件
|
请求事件
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="T:AuroraNative.Event">
|
<member name="T:AuroraNative.LogLevel">
|
||||||
<summary>
|
<summary>
|
||||||
事件类
|
表示日志信息等级的枚举
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:AuroraNative.Event.LifeCycle(AuroraNative.EventArgs.LifeCycleArgs)">
|
<member name="F:AuroraNative.LogLevel.Debug">
|
||||||
<summary>
|
<summary>
|
||||||
元事件 - 生命周期
|
表示输出日志的等级是 "调试" 级别
|
||||||
</summary>
|
</summary>
|
||||||
<param name="e">生命周期事件参数</param>
|
|
||||||
</member>
|
</member>
|
||||||
<member name="M:AuroraNative.Event.HeartBeat(AuroraNative.EventArgs.HeartBeatArgs)">
|
<member name="F:AuroraNative.LogLevel.Info">
|
||||||
<summary>
|
<summary>
|
||||||
元事件 - 心跳
|
表示输出日志的等级是 "信息" 级别
|
||||||
</summary>
|
</summary>
|
||||||
<param name="e">心跳事件参数</param>
|
|
||||||
</member>
|
</member>
|
||||||
<member name="M:AuroraNative.Event.PrivateMessage(AuroraNative.EventArgs.PrivateMessageArgs)">
|
<member name="F:AuroraNative.LogLevel.Warning">
|
||||||
<summary>
|
<summary>
|
||||||
消息事件 - 私聊消息
|
表示输出日志的等级是 "警告" 级别
|
||||||
</summary>
|
</summary>
|
||||||
<param name="e">私聊消息参数</param>
|
|
||||||
</member>
|
</member>
|
||||||
<member name="M:AuroraNative.Event.GroupMessage(AuroraNative.EventArgs.GroupMessageArgs)">
|
<member name="F:AuroraNative.LogLevel.Error">
|
||||||
<summary>
|
<summary>
|
||||||
消息事件 - 群消息
|
表示输出日志的等级是 "错误" 级别
|
||||||
</summary>
|
</summary>
|
||||||
<param name="e">群消息参数</param>
|
|
||||||
</member>
|
</member>
|
||||||
<member name="M:AuroraNative.Event.FriendAddRequest(AuroraNative.EventArgs.FriendAddRequsetArgs)">
|
<member name="F:AuroraNative.LogLevel.Off">
|
||||||
<summary>
|
<summary>
|
||||||
请求事件 - 好友请求
|
表示不输出日志
|
||||||
</summary>
|
|
||||||
<param name="e">好友请求参数</param>
|
|
||||||
</member>
|
|
||||||
<member name="M:AuroraNative.Event.GroupAddRequest(AuroraNative.EventArgs.GroupAddRequestArgs)">
|
|
||||||
<summary>
|
|
||||||
请求事件 - 群请求
|
|
||||||
</summary>
|
|
||||||
<param name="e">群请求参数</param>
|
|
||||||
</member>
|
|
||||||
<member name="M:AuroraNative.Event.GroupUpload(AuroraNative.EventArgs.GroupUploadArgs)">
|
|
||||||
<summary>
|
|
||||||
通知事件 - 群文件上传
|
|
||||||
</summary>
|
|
||||||
<param name="e">群文件上传参数</param>
|
|
||||||
</member>
|
|
||||||
<member name="M:AuroraNative.Event.GroupManageChange(AuroraNative.EventArgs.GroupManageChangeArgs)">
|
|
||||||
<summary>
|
|
||||||
通知事件 - 群管理员变动
|
|
||||||
</summary>
|
|
||||||
<param name="e">群管理员变动参数</param>
|
|
||||||
</member>
|
|
||||||
<member name="M:AuroraNative.Event.GroupMemberDecrease(AuroraNative.EventArgs.GroupMemberDecreaseArgs)">
|
|
||||||
<summary>
|
|
||||||
通知事件 - 群成员减少
|
|
||||||
</summary>
|
|
||||||
<param name="e">群成员减少参数</param>
|
|
||||||
</member>
|
|
||||||
<member name="M:AuroraNative.Event.GroupMemberIncrease(AuroraNative.EventArgs.GroupMemberIncreaseArgs)">
|
|
||||||
<summary>
|
|
||||||
通知事件 - 群成员增加
|
|
||||||
</summary>
|
|
||||||
<param name="e">群成员增加参数</param>
|
|
||||||
</member>
|
|
||||||
<member name="M:AuroraNative.Event.GroupBanSpeak(AuroraNative.EventArgs.GroupBanSpeakArgs)">
|
|
||||||
<summary>
|
|
||||||
通知事件 - 群禁言
|
|
||||||
</summary>
|
|
||||||
<param name="e">群禁言参数</param>
|
|
||||||
</member>
|
|
||||||
<member name="M:AuroraNative.Event.FriendAdd(AuroraNative.EventArgs.FriendAddArgs)">
|
|
||||||
<summary>
|
|
||||||
通知事件 - 好友添加
|
|
||||||
</summary>
|
|
||||||
<param name="e">好友添加参数</param>
|
|
||||||
</member>
|
|
||||||
<member name="M:AuroraNative.Event.GroupMessageRecall(AuroraNative.EventArgs.GroupMessageRecallArgs)">
|
|
||||||
<summary>
|
|
||||||
通知事件 - 群消息撤回
|
|
||||||
</summary>
|
|
||||||
<param name="e">群消息撤回参数</param>
|
|
||||||
</member>
|
|
||||||
<member name="M:AuroraNative.Event.PrivateMessageRecall(AuroraNative.EventArgs.PrivateMessageRecallArgs)">
|
|
||||||
<summary>
|
|
||||||
通知事件 - 好友消息撤回
|
|
||||||
</summary>
|
|
||||||
<param name="e">好友消息撤回参数</param>
|
|
||||||
</member>
|
|
||||||
<member name="M:AuroraNative.Event.GroupPoke(AuroraNative.EventArgs.GroupPokeArgs)">
|
|
||||||
<summary>
|
|
||||||
通知事件 - 群内戳一戳
|
|
||||||
</summary>
|
|
||||||
<param name="e">群内戳一戳参数</param>
|
|
||||||
</member>
|
|
||||||
<member name="M:AuroraNative.Event.PrivatePoke(AuroraNative.EventArgs.PrivatePokeArgs)">
|
|
||||||
<summary>
|
|
||||||
通知事件 - 好友戳一戳
|
|
||||||
</summary>
|
|
||||||
<param name="e">群内戳一戳参数</param>
|
|
||||||
</member>
|
|
||||||
<member name="M:AuroraNative.Event.GroupRedPoketLuckyKing(AuroraNative.EventArgs.GroupRedPoketLuckyKingArgs)">
|
|
||||||
<summary>
|
|
||||||
通知事件 - 群红包运气王提示
|
|
||||||
</summary>
|
|
||||||
<param name="e">群红包运气王提示参数</param>
|
|
||||||
</member>
|
|
||||||
<member name="M:AuroraNative.Event.GroupMemberHonorChange(AuroraNative.EventArgs.GroupMemberHonorChangeArgs)">
|
|
||||||
<summary>
|
|
||||||
通知事件 - 群成员荣誉变更提示
|
|
||||||
</summary>
|
|
||||||
<param name="e">群成员荣誉变更提示参数</param>
|
|
||||||
</member>
|
|
||||||
<member name="M:AuroraNative.Event.GroupCardVerify(AuroraNative.EventArgs.GroupCardVerifyArgs)">
|
|
||||||
<summary>
|
|
||||||
通知事件 - 群成员名片更新(核验)
|
|
||||||
</summary>
|
|
||||||
<param name="e">群成员名片更新(核验)参数</param>
|
|
||||||
</member>
|
|
||||||
<member name="M:AuroraNative.Event.GetOfflineFile(AuroraNative.EventArgs.GetOfflineFileArgs)">
|
|
||||||
<summary>
|
|
||||||
通知事件 - 接收到离线文件
|
|
||||||
</summary>
|
|
||||||
<param name="e">接收到离线文件参数</param>
|
|
||||||
</member>
|
|
||||||
<member name="M:AuroraNative.Event.ClientStatusChange(AuroraNative.EventArgs.ClientStatusChangeArgs)">
|
|
||||||
<summary>
|
|
||||||
通知事件 - 其他客户端在线状态变更
|
|
||||||
</summary>
|
|
||||||
<param name="e">其他客户端在线状态变更参数</param>
|
|
||||||
</member>
|
|
||||||
<member name="M:AuroraNative.Event.EssenceMessageChange(AuroraNative.EventArgs.EssenceMessageChangeArgs)">
|
|
||||||
<summary>
|
|
||||||
通知事件 - 精华消息变更
|
|
||||||
</summary>
|
|
||||||
<param name="e">精华消息变更参数</param>
|
|
||||||
</member>
|
|
||||||
<member name="M:AuroraNative.Event.RouterNotify(Newtonsoft.Json.Linq.JObject)">
|
|
||||||
<summary>
|
|
||||||
请勿使用,用于子事件分发
|
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="T:AuroraNative.EventArgs.Anonymous">
|
<member name="T:AuroraNative.EventArgs.Anonymous">
|
||||||
@@ -1789,6 +1697,148 @@
|
|||||||
异常 类 -- 关于WebSocket异常
|
异常 类 -- 关于WebSocket异常
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="T:AuroraNative.Event">
|
||||||
|
<summary>
|
||||||
|
事件类
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:AuroraNative.Event.LifeCycle(AuroraNative.EventArgs.LifeCycleArgs)">
|
||||||
|
<summary>
|
||||||
|
元事件 - 生命周期
|
||||||
|
</summary>
|
||||||
|
<param name="e">生命周期事件参数</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:AuroraNative.Event.HeartBeat(AuroraNative.EventArgs.HeartBeatArgs)">
|
||||||
|
<summary>
|
||||||
|
元事件 - 心跳
|
||||||
|
</summary>
|
||||||
|
<param name="e">心跳事件参数</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:AuroraNative.Event.PrivateMessage(AuroraNative.EventArgs.PrivateMessageArgs)">
|
||||||
|
<summary>
|
||||||
|
消息事件 - 私聊消息
|
||||||
|
</summary>
|
||||||
|
<param name="e">私聊消息参数</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:AuroraNative.Event.GroupMessage(AuroraNative.EventArgs.GroupMessageArgs)">
|
||||||
|
<summary>
|
||||||
|
消息事件 - 群消息
|
||||||
|
</summary>
|
||||||
|
<param name="e">群消息参数</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:AuroraNative.Event.FriendAddRequest(AuroraNative.EventArgs.FriendAddRequsetArgs)">
|
||||||
|
<summary>
|
||||||
|
请求事件 - 好友请求
|
||||||
|
</summary>
|
||||||
|
<param name="e">好友请求参数</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:AuroraNative.Event.GroupAddRequest(AuroraNative.EventArgs.GroupAddRequestArgs)">
|
||||||
|
<summary>
|
||||||
|
请求事件 - 群请求
|
||||||
|
</summary>
|
||||||
|
<param name="e">群请求参数</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:AuroraNative.Event.GroupUpload(AuroraNative.EventArgs.GroupUploadArgs)">
|
||||||
|
<summary>
|
||||||
|
通知事件 - 群文件上传
|
||||||
|
</summary>
|
||||||
|
<param name="e">群文件上传参数</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:AuroraNative.Event.GroupManageChange(AuroraNative.EventArgs.GroupManageChangeArgs)">
|
||||||
|
<summary>
|
||||||
|
通知事件 - 群管理员变动
|
||||||
|
</summary>
|
||||||
|
<param name="e">群管理员变动参数</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:AuroraNative.Event.GroupMemberDecrease(AuroraNative.EventArgs.GroupMemberDecreaseArgs)">
|
||||||
|
<summary>
|
||||||
|
通知事件 - 群成员减少
|
||||||
|
</summary>
|
||||||
|
<param name="e">群成员减少参数</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:AuroraNative.Event.GroupMemberIncrease(AuroraNative.EventArgs.GroupMemberIncreaseArgs)">
|
||||||
|
<summary>
|
||||||
|
通知事件 - 群成员增加
|
||||||
|
</summary>
|
||||||
|
<param name="e">群成员增加参数</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:AuroraNative.Event.GroupBanSpeak(AuroraNative.EventArgs.GroupBanSpeakArgs)">
|
||||||
|
<summary>
|
||||||
|
通知事件 - 群禁言
|
||||||
|
</summary>
|
||||||
|
<param name="e">群禁言参数</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:AuroraNative.Event.FriendAdd(AuroraNative.EventArgs.FriendAddArgs)">
|
||||||
|
<summary>
|
||||||
|
通知事件 - 好友添加
|
||||||
|
</summary>
|
||||||
|
<param name="e">好友添加参数</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:AuroraNative.Event.GroupMessageRecall(AuroraNative.EventArgs.GroupMessageRecallArgs)">
|
||||||
|
<summary>
|
||||||
|
通知事件 - 群消息撤回
|
||||||
|
</summary>
|
||||||
|
<param name="e">群消息撤回参数</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:AuroraNative.Event.PrivateMessageRecall(AuroraNative.EventArgs.PrivateMessageRecallArgs)">
|
||||||
|
<summary>
|
||||||
|
通知事件 - 好友消息撤回
|
||||||
|
</summary>
|
||||||
|
<param name="e">好友消息撤回参数</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:AuroraNative.Event.GroupPoke(AuroraNative.EventArgs.GroupPokeArgs)">
|
||||||
|
<summary>
|
||||||
|
通知事件 - 群内戳一戳
|
||||||
|
</summary>
|
||||||
|
<param name="e">群内戳一戳参数</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:AuroraNative.Event.PrivatePoke(AuroraNative.EventArgs.PrivatePokeArgs)">
|
||||||
|
<summary>
|
||||||
|
通知事件 - 好友戳一戳
|
||||||
|
</summary>
|
||||||
|
<param name="e">群内戳一戳参数</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:AuroraNative.Event.GroupRedPoketLuckyKing(AuroraNative.EventArgs.GroupRedPoketLuckyKingArgs)">
|
||||||
|
<summary>
|
||||||
|
通知事件 - 群红包运气王提示
|
||||||
|
</summary>
|
||||||
|
<param name="e">群红包运气王提示参数</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:AuroraNative.Event.GroupMemberHonorChange(AuroraNative.EventArgs.GroupMemberHonorChangeArgs)">
|
||||||
|
<summary>
|
||||||
|
通知事件 - 群成员荣誉变更提示
|
||||||
|
</summary>
|
||||||
|
<param name="e">群成员荣誉变更提示参数</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:AuroraNative.Event.GroupCardVerify(AuroraNative.EventArgs.GroupCardVerifyArgs)">
|
||||||
|
<summary>
|
||||||
|
通知事件 - 群成员名片更新(核验)
|
||||||
|
</summary>
|
||||||
|
<param name="e">群成员名片更新(核验)参数</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:AuroraNative.Event.GetOfflineFile(AuroraNative.EventArgs.GetOfflineFileArgs)">
|
||||||
|
<summary>
|
||||||
|
通知事件 - 接收到离线文件
|
||||||
|
</summary>
|
||||||
|
<param name="e">接收到离线文件参数</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:AuroraNative.Event.ClientStatusChange(AuroraNative.EventArgs.ClientStatusChangeArgs)">
|
||||||
|
<summary>
|
||||||
|
通知事件 - 其他客户端在线状态变更
|
||||||
|
</summary>
|
||||||
|
<param name="e">其他客户端在线状态变更参数</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:AuroraNative.Event.EssenceMessageChange(AuroraNative.EventArgs.EssenceMessageChangeArgs)">
|
||||||
|
<summary>
|
||||||
|
通知事件 - 精华消息变更
|
||||||
|
</summary>
|
||||||
|
<param name="e">精华消息变更参数</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:AuroraNative.Event.RouterNotify(Newtonsoft.Json.Linq.JObject)">
|
||||||
|
<summary>
|
||||||
|
请勿使用,用于子事件分发
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
<member name="T:AuroraNative.Logger">
|
<member name="T:AuroraNative.Logger">
|
||||||
<summary>
|
<summary>
|
||||||
彩色日志输出类
|
彩色日志输出类
|
||||||
@@ -1827,31 +1877,6 @@
|
|||||||
<param name="Message">要输出的信息</param>
|
<param name="Message">要输出的信息</param>
|
||||||
<param name="MethodName">输出的方法名,可选传入</param>
|
<param name="MethodName">输出的方法名,可选传入</param>
|
||||||
</member>
|
</member>
|
||||||
<member name="T:AuroraNative.LogLevel">
|
|
||||||
<summary>
|
|
||||||
表示日志信息等级的枚举
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="F:AuroraNative.LogLevel.Debug">
|
|
||||||
<summary>
|
|
||||||
表示输出日志的等级是 "调试" 级别
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="F:AuroraNative.LogLevel.Info">
|
|
||||||
<summary>
|
|
||||||
表示输出日志的等级是 "信息" 级别
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="F:AuroraNative.LogLevel.Warning">
|
|
||||||
<summary>
|
|
||||||
表示输出日志的等级是 "警告" 级别
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="F:AuroraNative.LogLevel.Error">
|
|
||||||
<summary>
|
|
||||||
表示输出日志的等级是 "错误" 级别
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="T:AuroraNative.Utils">
|
<member name="T:AuroraNative.Utils">
|
||||||
<summary>
|
<summary>
|
||||||
通用方法 类
|
通用方法 类
|
||||||
@@ -1862,7 +1887,7 @@
|
|||||||
通过 枚举Description 转为枚举
|
通过 枚举Description 转为枚举
|
||||||
</summary>
|
</summary>
|
||||||
<typeparam name="T">枚举</typeparam>
|
<typeparam name="T">枚举</typeparam>
|
||||||
<param name="description">需要转换的Description</param>
|
<param name="Description">需要转换的Description</param>
|
||||||
<returns>返回该枚举</returns>
|
<returns>返回该枚举</returns>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:AuroraNative.Utils.GetChildTypeByPostType(Newtonsoft.Json.Linq.JObject)">
|
<member name="M:AuroraNative.Utils.GetChildTypeByPostType(Newtonsoft.Json.Linq.JObject)">
|
||||||
@@ -1883,6 +1908,16 @@
|
|||||||
WebSocket 基础类
|
WebSocket 基础类
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:AuroraNative.WebSockets.BaseWebSocket.Create">
|
||||||
|
<summary>
|
||||||
|
客户端创建 抽象方法
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:AuroraNative.WebSockets.BaseWebSocket.Dispose">
|
||||||
|
<summary>
|
||||||
|
客户端销毁 抽象方法
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
<member name="M:AuroraNative.WebSockets.BaseWebSocket.Send(AuroraNative.BaseAPI)">
|
<member name="M:AuroraNative.WebSockets.BaseWebSocket.Send(AuroraNative.BaseAPI)">
|
||||||
<summary>
|
<summary>
|
||||||
发送数据到服务端/客户端
|
发送数据到服务端/客户端
|
||||||
@@ -1897,7 +1932,12 @@
|
|||||||
</member>
|
</member>
|
||||||
<member name="P:AuroraNative.WebSockets.Client.host">
|
<member name="P:AuroraNative.WebSockets.Client.host">
|
||||||
<summary>
|
<summary>
|
||||||
WebSocket服务端地址<para>请记得带端口号</para>
|
WebSocket服务端地址
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:AuroraNative.WebSockets.Client.port">
|
||||||
|
<summary>
|
||||||
|
WebSocket服务端端口号
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:AuroraNative.WebSockets.Client.#ctor(AuroraNative.Event)">
|
<member name="M:AuroraNative.WebSockets.Client.#ctor(AuroraNative.Event)">
|
||||||
|
29
AuroraNative/Enum/LogLevel.cs
Normal file
29
AuroraNative/Enum/LogLevel.cs
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
namespace AuroraNative
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 表示日志信息等级的枚举
|
||||||
|
/// </summary>
|
||||||
|
public enum LogLevel
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 表示输出日志的等级是 "调试" 级别
|
||||||
|
/// </summary>
|
||||||
|
Debug = 0,
|
||||||
|
/// <summary>
|
||||||
|
/// 表示输出日志的等级是 "信息" 级别
|
||||||
|
/// </summary>
|
||||||
|
Info = 1,
|
||||||
|
/// <summary>
|
||||||
|
/// 表示输出日志的等级是 "警告" 级别
|
||||||
|
/// </summary>
|
||||||
|
Warning = 2,
|
||||||
|
/// <summary>
|
||||||
|
/// 表示输出日志的等级是 "错误" 级别
|
||||||
|
/// </summary>
|
||||||
|
Error = 3,
|
||||||
|
/// <summary>
|
||||||
|
/// 表示不输出日志
|
||||||
|
/// </summary>
|
||||||
|
Off = 4
|
||||||
|
}
|
||||||
|
}
|
@@ -1,61 +0,0 @@
|
|||||||
using AuroraNative.EventArgs;
|
|
||||||
using Newtonsoft.Json;
|
|
||||||
using System;
|
|
||||||
using System.ComponentModel;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Reflection;
|
|
||||||
|
|
||||||
namespace AuroraNative
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Enum和Description特性互转 转换器
|
|
||||||
/// </summary>
|
|
||||||
internal class EnumDescriptionConverter : JsonConverter
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// 当属性的值为枚举类型时才使用转换器
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="objectType">目标类型</param>
|
|
||||||
/// <returns>返回布尔值</returns>
|
|
||||||
public override bool CanConvert(Type objectType) => objectType == typeof(Enum);
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 获取枚举的描述值
|
|
||||||
/// </summary>
|
|
||||||
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
|
|
||||||
{
|
|
||||||
if (string.IsNullOrEmpty(value.ToString()))
|
|
||||||
{
|
|
||||||
writer.WriteValue("");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
FieldInfo fieldInfo = value.GetType().GetField(value.ToString());
|
|
||||||
if (fieldInfo == null)
|
|
||||||
{
|
|
||||||
writer.WriteValue("");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
DescriptionAttribute[] attributes = (DescriptionAttribute[])fieldInfo.GetCustomAttributes(typeof(DescriptionAttribute), false);
|
|
||||||
writer.WriteValue(attributes.Length > 0 ? attributes[0].Description : "");
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 通过Description获取枚举值
|
|
||||||
/// </summary>
|
|
||||||
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
|
|
||||||
{
|
|
||||||
foreach (FieldInfo field in objectType.GetFields())
|
|
||||||
{
|
|
||||||
object[] objects = field.GetCustomAttributes(typeof(DescriptionAttribute), false);
|
|
||||||
if (objects.Any(item => (item as DescriptionAttribute)?.Description == reader.Value?.ToString()))
|
|
||||||
{
|
|
||||||
return Convert.ChangeType(field.GetValue(-1), objectType);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return CQCodeType.Unknown;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,12 +1,14 @@
|
|||||||
using AuroraNative.EventArgs;
|
using AuroraNative.EventArgs;
|
||||||
|
using AuroraNative.WebSockets;
|
||||||
using Newtonsoft.Json.Linq;
|
using Newtonsoft.Json.Linq;
|
||||||
|
using System;
|
||||||
|
|
||||||
namespace AuroraNative
|
namespace AuroraNative
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 事件类
|
/// 事件类
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class Event
|
public abstract class Event
|
||||||
{
|
{
|
||||||
#region --公开函数--
|
#region --公开函数--
|
||||||
|
|
||||||
@@ -230,5 +232,23 @@ namespace AuroraNative
|
|||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
#region --私有函数--
|
||||||
|
|
||||||
|
internal static async void CheckVersion()
|
||||||
|
{
|
||||||
|
Logger.Debug("开始检查 go-cqhttp 版本是否符合最低版本...");
|
||||||
|
if ((await Api.CurrentApi.GetVersionInfo()).TryGetValue("AppVersion", out object Version) && new Version(Version.ToString().Substring(1, Version.ToString().IndexOf('-') - 1)) < BaseWebSocket.DependencyVersion)
|
||||||
|
{
|
||||||
|
Logger.Warning($"框架最低依赖版本与 go-cqhttp 不符!请检查是否为最新的框架或符合的 go-cqhttp\ngo-cqhttp版本:{Version}\n框架最低依赖版本:v{BaseWebSocket.DependencyVersion}");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Logger.Debug("go-cqhttp 版本符合最低版本!");
|
||||||
|
}
|
||||||
|
BaseWebSocket.IsCheckVersion = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -27,7 +27,7 @@ namespace AuroraNative
|
|||||||
{
|
{
|
||||||
if (LogLevel <= LogLevel.Debug)
|
if (LogLevel <= LogLevel.Debug)
|
||||||
{
|
{
|
||||||
Output(Message, ConsoleColor.Gray, LogLevel.Debug, MethodName);
|
Output(Message, ConsoleColor.Gray, LogLevel.Debug, MethodName, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -74,43 +74,31 @@ namespace AuroraNative
|
|||||||
|
|
||||||
#region --私有函数--
|
#region --私有函数--
|
||||||
|
|
||||||
internal static void Output(string Message, ConsoleColor Color, LogLevel Level, string MethodName)
|
internal static void Output(string Message, ConsoleColor Color, LogLevel Level, string MethodName, bool IsFine = false)
|
||||||
{
|
{
|
||||||
Console.ForegroundColor = Color;
|
Console.ForegroundColor = Color;
|
||||||
if (MethodName != null)
|
string NowTime;
|
||||||
|
|
||||||
|
if (!IsFine)
|
||||||
{
|
{
|
||||||
Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss fff") + $" [{Level}]" + $" [{MethodName}] " + Message);
|
NowTime = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss") + $" [{Level}] " + Message);
|
NowTime = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss fff");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (MethodName != null)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"[{NowTime}]" + $" [{Level}]" + $" [{MethodName}]: " + Message);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Console.WriteLine($"[{NowTime}]" + $" [{Level}]: " + Message);
|
||||||
}
|
}
|
||||||
Console.ForegroundColor = ConsoleColor.White;
|
Console.ForegroundColor = ConsoleColor.White;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 表示日志信息等级的枚举
|
|
||||||
/// </summary>
|
|
||||||
public enum LogLevel
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// 表示输出日志的等级是 "调试" 级别
|
|
||||||
/// </summary>
|
|
||||||
Debug = 0,
|
|
||||||
/// <summary>
|
|
||||||
/// 表示输出日志的等级是 "信息" 级别
|
|
||||||
/// </summary>
|
|
||||||
Info = 1,
|
|
||||||
/// <summary>
|
|
||||||
/// 表示输出日志的等级是 "警告" 级别
|
|
||||||
/// </summary>
|
|
||||||
Warning = 2,
|
|
||||||
/// <summary>
|
|
||||||
/// 表示输出日志的等级是 "错误" 级别
|
|
||||||
/// </summary>
|
|
||||||
Error = 3
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@@ -17,20 +17,34 @@ namespace AuroraNative.WebSockets
|
|||||||
{
|
{
|
||||||
#region --变量--
|
#region --变量--
|
||||||
|
|
||||||
|
internal int Port = 6700;
|
||||||
internal WebSocket WebSocket;
|
internal WebSocket WebSocket;
|
||||||
internal Event EventHook;
|
internal Event EventHook;
|
||||||
internal JObject Json;
|
internal JObject Json;
|
||||||
internal static Type[] AttributeTypes;
|
internal static readonly Type[] AttributeTypes = Assembly.GetExecutingAssembly().GetTypes().Where(p => p.IsAbstract == false && p.IsInterface == false && typeof(Attribute).IsAssignableFrom(p)).ToArray();
|
||||||
|
internal static readonly Version DependencyVersion = new Version("0.9.40");
|
||||||
|
internal static bool IsCheckVersion = false;
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region --公开函数--
|
#region --公开函数--
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 客户端创建 抽象方法
|
||||||
|
/// </summary>
|
||||||
|
public abstract void Create();
|
||||||
|
/// <summary>
|
||||||
|
/// 客户端销毁 抽象方法
|
||||||
|
/// </summary>
|
||||||
|
public abstract void Dispose();
|
||||||
|
|
||||||
|
internal abstract void Feedback();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 发送数据到服务端/客户端
|
/// 发送数据到服务端/客户端
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="Json">传输Json格式的文本</param>
|
/// <param name="Json">传输Json格式的文本</param>
|
||||||
public void Send(BaseAPI Json)
|
internal void Send(BaseAPI Json)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@@ -64,7 +78,7 @@ namespace AuroraNative.WebSockets
|
|||||||
{
|
{
|
||||||
foreach (MethodInfo Method in EventHook.GetType().GetMethods().Where(p => p.GetCustomAttribute<PostTypeAttribute>() != null))
|
foreach (MethodInfo Method in EventHook.GetType().GetMethods().Where(p => p.GetCustomAttribute<PostTypeAttribute>() != null))
|
||||||
{
|
{
|
||||||
if (Method.GetCustomAttribute(Type) is BaseAttribute attribute && attribute.Type == (string)Json.GetValue(Utils.GetChildTypeByPostType(Json)))
|
if (Method.GetCustomAttribute(Type) is BaseAttribute Attribute && Attribute.Type == (string)Json.GetValue(Utils.GetChildTypeByPostType(Json)))
|
||||||
{
|
{
|
||||||
ParameterInfo Parameter = Method.GetParameters().SingleOrDefault();
|
ParameterInfo Parameter = Method.GetParameters().SingleOrDefault();
|
||||||
|
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Linq;
|
|
||||||
using System.Net.WebSockets;
|
using System.Net.WebSockets;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
|
using System.Text;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
@@ -15,25 +15,41 @@ namespace AuroraNative.WebSockets
|
|||||||
{
|
{
|
||||||
#region --变量--
|
#region --变量--
|
||||||
|
|
||||||
private string Host = "127.0.0.1:6700";
|
private string Host = "127.0.0.1";
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// WebSocket服务端地址<para>请记得带端口号</para>
|
/// WebSocket服务端地址
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string host
|
public string host
|
||||||
{
|
{
|
||||||
private get { return Host; }
|
private get { return Host; }
|
||||||
set { Host = value; }
|
set
|
||||||
|
{
|
||||||
|
if (value.Contains(":"))
|
||||||
|
{
|
||||||
|
string[] Cache = value.Split(':');
|
||||||
|
Host = Cache[0];
|
||||||
|
Port = int.Parse(Cache[1]);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Host = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// WebSocket服务端端口号
|
||||||
|
/// </summary>
|
||||||
|
public int port
|
||||||
|
{
|
||||||
|
private get { return Port; }
|
||||||
|
set { Port = value; }
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region --构造函数--
|
#region --构造函数--
|
||||||
|
|
||||||
static Client()
|
|
||||||
{
|
|
||||||
AttributeTypes = Assembly.GetExecutingAssembly().GetTypes().Where(p => p.IsAbstract == false && p.IsInterface == false && typeof(Attribute).IsAssignableFrom(p)).ToArray();
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 创建一个 <see cref="Client"/> 实例
|
/// 创建一个 <see cref="Client"/> 实例
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -47,8 +63,13 @@ namespace AuroraNative.WebSockets
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 创建并连接到WebSocket服务器
|
/// 创建并连接到WebSocket服务器
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public bool Create()
|
public override void Create()
|
||||||
{
|
{
|
||||||
|
StringBuilder Cache = new StringBuilder();
|
||||||
|
Cache.Append(Host);
|
||||||
|
Cache.Append(':');
|
||||||
|
Cache.Append(Port);
|
||||||
|
|
||||||
Logger.Debug("正向WebSocket已创建,准备连接...", $"{MethodBase.GetCurrentMethod().DeclaringType.Name}.{MethodBase.GetCurrentMethod().Name}");
|
Logger.Debug("正向WebSocket已创建,准备连接...", $"{MethodBase.GetCurrentMethod().DeclaringType.Name}.{MethodBase.GetCurrentMethod().Name}");
|
||||||
for (int i = 1; i < 4; i++)
|
for (int i = 1; i < 4; i++)
|
||||||
{
|
{
|
||||||
@@ -57,8 +78,8 @@ namespace AuroraNative.WebSockets
|
|||||||
WebSocket = new ClientWebSocket();
|
WebSocket = new ClientWebSocket();
|
||||||
if (WebSocket is ClientWebSocket socket)
|
if (WebSocket is ClientWebSocket socket)
|
||||||
{
|
{
|
||||||
Logger.Debug($"准备连接至IP:{Host}", $"{MethodBase.GetCurrentMethod().DeclaringType.Name}.{MethodBase.GetCurrentMethod().Name}");
|
Logger.Debug($"准备连接至IP:{Cache}", $"{MethodBase.GetCurrentMethod().DeclaringType.Name}.{MethodBase.GetCurrentMethod().Name}");
|
||||||
Task Connect = socket.ConnectAsync(new Uri("ws://" + Host + "/"), CancellationToken.None);
|
Task Connect = socket.ConnectAsync(new Uri("ws://" + Cache.ToString() + "/"), CancellationToken.None);
|
||||||
Connect.Wait();
|
Connect.Wait();
|
||||||
if (WebSocket.State == WebSocketState.Open)
|
if (WebSocket.State == WebSocketState.Open)
|
||||||
{
|
{
|
||||||
@@ -68,7 +89,7 @@ namespace AuroraNative.WebSockets
|
|||||||
Logger.Debug("go-cqhttp 初始化完毕!");
|
Logger.Debug("go-cqhttp 初始化完毕!");
|
||||||
Task.Run(Feedback);
|
Task.Run(Feedback);
|
||||||
Api.Create(this);
|
Api.Create(this);
|
||||||
return true;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -79,13 +100,12 @@ namespace AuroraNative.WebSockets
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
Logger.Error("连接到 go-cqhttp 服务器失败!请检查IP是否正确(需要携带端口号)或确认服务器是否启动和初始化完毕!", $"{MethodBase.GetCurrentMethod().DeclaringType.Name}.{MethodBase.GetCurrentMethod().Name}");
|
Logger.Error("连接到 go-cqhttp 服务器失败!请检查IP是否正确(需要携带端口号)或确认服务器是否启动和初始化完毕!", $"{MethodBase.GetCurrentMethod().DeclaringType.Name}.{MethodBase.GetCurrentMethod().Name}");
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 立刻中断并释放连接<para>注意!断开后需要重新Create</para>
|
/// 立刻中断并释放连接<para>注意!断开后需要重新Create</para>
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public void Dispose()
|
public override void Dispose()
|
||||||
{
|
{
|
||||||
Logger.Debug($"准备销毁正向WebSocket...", $"{MethodBase.GetCurrentMethod().DeclaringType.Name}.{MethodBase.GetCurrentMethod().Name}");
|
Logger.Debug($"准备销毁正向WebSocket...", $"{MethodBase.GetCurrentMethod().DeclaringType.Name}.{MethodBase.GetCurrentMethod().Name}");
|
||||||
try
|
try
|
||||||
@@ -105,7 +125,7 @@ namespace AuroraNative.WebSockets
|
|||||||
|
|
||||||
#region --私有函数--
|
#region --私有函数--
|
||||||
|
|
||||||
private async void Feedback()
|
internal override async void Feedback()
|
||||||
{
|
{
|
||||||
while (true)
|
while (true)
|
||||||
{
|
{
|
||||||
|
@@ -1,5 +1,4 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Linq;
|
|
||||||
using System.Net;
|
using System.Net;
|
||||||
using System.Net.WebSockets;
|
using System.Net.WebSockets;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
@@ -16,11 +15,10 @@ namespace AuroraNative.WebSockets
|
|||||||
{
|
{
|
||||||
#region --变量--
|
#region --变量--
|
||||||
|
|
||||||
private string Port = "6700";
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// WebSocket监听端口
|
/// WebSocket监听端口
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string port
|
public int port
|
||||||
{
|
{
|
||||||
private get { return Port; }
|
private get { return Port; }
|
||||||
set { Port = value; }
|
set { Port = value; }
|
||||||
@@ -33,11 +31,6 @@ namespace AuroraNative.WebSockets
|
|||||||
|
|
||||||
#region --构造函数--
|
#region --构造函数--
|
||||||
|
|
||||||
static Server()
|
|
||||||
{
|
|
||||||
AttributeTypes = Assembly.GetExecutingAssembly().GetTypes().Where(p => p.IsAbstract == false && p.IsInterface == false && typeof(Attribute).IsAssignableFrom(p)).ToArray();
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 创建一个 <see cref="Server"/> 实例
|
/// 创建一个 <see cref="Server"/> 实例
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -51,13 +44,13 @@ namespace AuroraNative.WebSockets
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 创建WebSocket服务器并监听端口
|
/// 创建WebSocket服务器并监听端口
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public void Create()
|
public override void Create()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
Logger.Debug("反向WebSocket已创建,准备监听...", $"{MethodBase.GetCurrentMethod().DeclaringType.Name}.{MethodBase.GetCurrentMethod().Name}");
|
Logger.Debug("反向WebSocket已创建,准备监听...", $"{MethodBase.GetCurrentMethod().DeclaringType.Name}.{MethodBase.GetCurrentMethod().Name}");
|
||||||
Listener = new HttpListener();
|
Listener = new HttpListener();
|
||||||
Listener.Prefixes.Add("http://*:" + Port + "/");
|
Listener.Prefixes.Add("http://*:" + Port.ToString() + "/");
|
||||||
Listener.Start();
|
Listener.Start();
|
||||||
Logger.Info("开始监听来自 go-cqhttp 客户端的连接...");
|
Logger.Info("开始监听来自 go-cqhttp 客户端的连接...");
|
||||||
Task.Run(Feedback);
|
Task.Run(Feedback);
|
||||||
@@ -77,7 +70,7 @@ namespace AuroraNative.WebSockets
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 立刻中断并释放连接<para>注意!断开后需要重新Create</para>
|
/// 立刻中断并释放连接<para>注意!断开后需要重新Create</para>
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public void Dispose()
|
public override void Dispose()
|
||||||
{
|
{
|
||||||
Logger.Debug($"准备销毁反向WebSocket...", $"{MethodBase.GetCurrentMethod().DeclaringType.Name}.{MethodBase.GetCurrentMethod().Name}");
|
Logger.Debug($"准备销毁反向WebSocket...", $"{MethodBase.GetCurrentMethod().DeclaringType.Name}.{MethodBase.GetCurrentMethod().Name}");
|
||||||
try
|
try
|
||||||
@@ -98,7 +91,7 @@ namespace AuroraNative.WebSockets
|
|||||||
|
|
||||||
#region --私有函数--
|
#region --私有函数--
|
||||||
|
|
||||||
private async void Feedback()
|
internal override async void Feedback()
|
||||||
{
|
{
|
||||||
while (true)
|
while (true)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user