122 lines
5.2 KiB
C#
122 lines
5.2 KiB
C#
|
using Api.Framework.Events;
|
|||
|
using Api.Framework.SDK;
|
|||
|
using RoomMembers.Properties;
|
|||
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.Linq;
|
|||
|
using System.Text;
|
|||
|
using System.Threading;
|
|||
|
using System.Threading.Tasks;
|
|||
|
|
|||
|
namespace RoomMembers
|
|||
|
{
|
|||
|
public class Class1 : Plugin
|
|||
|
{
|
|||
|
public Class1()
|
|||
|
{
|
|||
|
this.Name = "群成员Api";
|
|||
|
this.Note = "获取群成员";
|
|||
|
this.Logo = Resources._22;
|
|||
|
}
|
|||
|
|
|||
|
#region 自定义变量
|
|||
|
//public static Config Config;
|
|||
|
#endregion
|
|||
|
|
|||
|
public override void Start()
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
SDK.WebRequestEvent += SDK_WebRequestEvent;
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
this.OnLog(ex.Message);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private void SDK_WebRequestEvent(object sender, WebRequestEvents e)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
#region
|
|||
|
if (e.Param.ContainsKey("method"))//方法名称
|
|||
|
{
|
|||
|
var method = e.Param["method"].ToLower();
|
|||
|
switch (method)
|
|||
|
{
|
|||
|
case "roommembers"://用户
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
if (!e.Param.ContainsKey("roomid")) throw new Exception("缺少参数roomid");
|
|||
|
if (!e.Param.ContainsKey("robotname")) throw new Exception("缺少参数roomname");
|
|||
|
|
|||
|
var robotname = e.Param["robotname"].ToString();
|
|||
|
var roomid = e.Param["roomid"].ToString();
|
|||
|
|
|||
|
if (string.IsNullOrWhiteSpace(robotname)) throw new Exception("robotname参数不能为空");
|
|||
|
if (string.IsNullOrWhiteSpace(roomid)) throw new Exception("roomid参数不能为空");
|
|||
|
|
|||
|
var client = Chat.Framework.ChatClient.WXClient.Values.FirstOrDefault(f => f.WeixinHao == robotname && f.WeixinType == Chat.Framework.WXSdk.Implement.WeixinType.Grpc微信 && f.Status == Chat.Framework.WXSdk.WxStatus.在线);
|
|||
|
if (client == null) throw new Exception("机器人不存在或者不在线");
|
|||
|
|
|||
|
var members = client.GetMembers(roomid, true);
|
|||
|
if (members == null) members = new Chat.Framework.WXSdk.GroupMember[] { };
|
|||
|
|
|||
|
e.Send(members);
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
e.Send(ex.Message, -1);
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
case "removemembers":
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
if (!e.Param.ContainsKey("roomid")) throw new Exception("缺少参数roomid");
|
|||
|
if (!e.Param.ContainsKey("robotname")) throw new Exception("缺少参数roomname");
|
|||
|
if (!e.Param.ContainsKey("usernames")) throw new Exception("缺少参数roomname");
|
|||
|
|
|||
|
var robotname = e.Param["robotname"].ToString();
|
|||
|
var roomid = e.Param["roomid"].ToString();
|
|||
|
var usernames = e.Param["usernames"].ToString();
|
|||
|
|
|||
|
if (string.IsNullOrWhiteSpace(robotname)) throw new Exception("robotname参数不能为空");
|
|||
|
if (string.IsNullOrWhiteSpace(roomid)) throw new Exception("roomid参数不能为空");
|
|||
|
if (string.IsNullOrWhiteSpace(usernames)) throw new Exception("usernames参数不能为空");
|
|||
|
|
|||
|
var client = Chat.Framework.ChatClient.WXClient.Values.FirstOrDefault(f => f.WeixinHao == robotname && f.WeixinType == Chat.Framework.WXSdk.Implement.WeixinType.Grpc微信 && f.Status == Chat.Framework.WXSdk.WxStatus.在线);
|
|||
|
if (client == null) throw new Exception("机器人不存在或者不在线");
|
|||
|
|
|||
|
var users = usernames.Replace(",", ",").Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries).Select(f => f.Trim()).ToList();
|
|||
|
foreach (var item in users)
|
|||
|
{
|
|||
|
client.DeleteGroupMember(item, roomid);
|
|||
|
Thread.Sleep(200);
|
|||
|
}
|
|||
|
e.Send("任务执行完成");
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
e.Send(ex.Message, -1);
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
#endregion
|
|||
|
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
}
|