コード例 #1
0
ファイル: MiraiHelper.cs プロジェクト: hontsev/MIraiKUgua
        public static void responseAddFriend(EventAddFriend eaf, MiraiAddFriendRespose response)
        {
            string  url  = $"http://{HOST}:{PORT}/resp/newFriendRequestEvent";
            JObject json = new JObject();

            json.Add("sessionKey", SESSION);
            json.Add("eventId", eaf.id);
            json.Add("fromId", eaf.qq);
            json.Add("groupId", eaf.fromgroup);
            json.Add("operate", (int)response);
            json.Add("message", eaf.desc);

            JObject res = WebHelper.postJson(url, json);
        }
コード例 #2
0
 public void deny(EventAddFriend e)
 {
     MiraiHelper.responseAddFriend(e, MiraiAddFriendRespose.Deny);
 }
コード例 #3
0
 public void accept(EventAddFriend e)
 {
     MiraiHelper.responseAddFriend(e, MiraiAddFriendRespose.Allow);
 }
コード例 #4
0
ファイル: MiraiHelper.cs プロジェクト: hontsev/MIraiKUgua
        public async static void workGetEvent()
        {
            ClientWebSocket ws = new ClientWebSocket();

            try
            {
                //CancellationToken token = new CancellationTokenSource().Token;
                await ws.ConnectAsync(new Uri($"ws://{HOST}:{PORT}/all?sessionKey={SESSION}"), CancellationToken.None);

                while (ISLINK)
                {
                    byte[]       buffer = new byte[1024];
                    MemoryStream ms     = new MemoryStream(1024);
                    try
                    {
                        if (!ISLINK)
                        {
                            break;
                        }
                        WebSocketReceiveResult result;
                        while (!(result = await ws.ReceiveAsync(new ArraySegment <byte>(buffer), CancellationToken.None)).EndOfMessage)
                        {
                            ms.Write(buffer, 0, result.Count);
                        }
                        if (result.MessageType == WebSocketMessageType.Close && ms.Length == 0)
                        {
                            Console.WriteLine("receive socket error.");
                            continue;
                            //throw new WebSocketException(10054);
                        }
                        ms.Write(buffer, 0, result.Count);
                        JObject j = JObject.Parse(Encoding.UTF8.GetString(ms.ToArray()));
                        Console.WriteLine(j.ToString());
                        switch (j["type"].ToString())
                        {
                        case "BotOnlineEvent":
                        {
                            break;
                        }

                        case "BotOfflineEventActive":
                        {
                            break;
                        }

                        case "BotOfflineEventForce":
                        {
                            break;
                        }

                        case "BotOfflineEventDropped":
                        {
                            break;
                        }

                        case "BotReloginEvent":
                        {
                            break;
                        }

                        case "BotInvitedJoinGroupRequestEvent":
                        {
                            EventAddGroup eaf = new EventAddGroup();
                            eaf.name      = j["nickName"].ToString();
                            eaf.group     = long.Parse(j["fromId"].ToString());
                            eaf.desc      = j["message"].ToString();
                            eaf.id        = long.Parse(j["eventId"].ToString());
                            eaf.groupName = j["groupName"].ToString();

                            handleAddGroup(eaf);
                            break;
                        }

                        case "FriendMessage":
                        {
                            var     msgs = j["messageChain"].ToArray();
                            Message msg  = getMessage(msgs);
                            msg.from      = long.Parse(j["sender"]["id"].ToString());
                            msg.fromName  = j["sender"]["nickname"].ToString();
                            msg.fromGroup = 0;

                            handleMiraiMsg(msg);
                            break;
                        }

                        case "GroupMessage":
                        {
                            var     msgs = j["messageChain"].ToArray();
                            Message msg  = getMessage(msgs);
                            msg.from      = long.Parse(j["sender"]["id"].ToString());
                            msg.fromName  = j["sender"]["memberName"].ToString();
                            msg.fromGroup = long.Parse(j["sender"]["group"]["id"].ToString());

                            msg.fromPermission   = getPermission(j["sender"]["permission"].ToString());
                            msg.fromGroupName    = j["sender"]["group"]["name"].ToString();
                            msg.fromMyPermission = getPermission(j["sender"]["group"]["permission"].ToString());

                            handleMiraiMsg(msg);
                            break;
                        }

                        case "TempMessage":
                        {
                            var     msgs = j["messageChain"].ToArray();
                            Message msg  = getMessage(msgs);
                            msg.from      = long.Parse(j["sender"]["id"].ToString());
                            msg.fromName  = j["sender"]["memberName"].ToString();
                            msg.fromGroup = long.Parse(j["sender"]["group"]["id"].ToString());

                            msg.fromPermission   = getPermission(j["sender"]["permission"].ToString());
                            msg.fromGroupName    = j["sender"]["group"]["name"].ToString();
                            msg.fromMyPermission = getPermission(j["sender"]["group"]["permission"].ToString());

                            msg.isTempMsg = true;

                            handleMiraiMsg(msg);
                            break;
                        }

                        case "GroupRecallEvent":
                        {
                            //var msgs = j["messageChain"].ToArray();
                            Message msg = new Message();
                            msg.id = long.Parse(j["messageId"].ToString());
                            msg.to = long.Parse(j["authorId"].ToString());
                            //msg.time = long.Parse(j["time"].ToString());
                            msg.from      = long.Parse(j["operator"]["id"].ToString());
                            msg.fromName  = j["operator"]["memberName"].ToString();
                            msg.fromGroup = long.Parse(j["operator"]["group"]["id"].ToString());

                            msg.fromPermission   = getPermission(j["operator"]["permission"].ToString());
                            msg.fromGroupName    = j["operator"]["group"]["name"].ToString();
                            msg.fromMyPermission = getPermission(j["operator"]["group"]["permission"].ToString());

                            msg.isRecall = true;

                            handleMiraiRecall(msg);
                            break;
                        }

                        case "FriendRecallEvent":
                        {
                            Message msg = new Message();
                            msg.id = long.Parse(j["messageId"].ToString());
                            msg.to = long.Parse(j["authorId"].ToString());
                            //msg.time = long.Parse(j["time"].ToString());
                            msg.from     = long.Parse(j["operator"]["id"].ToString());
                            msg.fromName = j["operator"]["memberName"].ToString();

                            msg.isRecall = true;

                            handleMiraiRecall(msg);
                            break;
                        }

                        case "BotGroupPermissionChangeEvent":
                        {
                            break;
                        }

                        case "BotMuteEvent":
                        {
                            break;
                        }

                        case "BotUnmuteEvent":
                        {
                            break;
                        }

                        case "BotJoinGroupEvent":
                        {
                            break;
                        }

                        case "BotLeaveEventActive":
                        {
                            break;
                        }

                        case "BotLeaveEventKick":
                        {
                            break;
                        }

                        case "GroupNameChangeEvent":
                        {
                            break;
                        }

                        case "GroupEntranceAnnouncementChangeEvent":
                        {
                            break;
                        }

                        case "GroupMuteAllEvent":
                        {
                            break;
                        }

                        case "GroupAllowAnonymousChatEvent":
                        {
                            break;
                        }

                        case "GroupAllowConfessTalkEvent":
                        {
                            break;
                        }

                        case "GroupAllowMemberInviteEvent":
                        {
                            break;
                        }

                        case "MemberJoinEvent":
                        {
                            break;
                        }

                        case "MemberLeaveEventKick":
                        {
                            break;
                        }

                        case "MemberLeaveEventQuit":
                        {
                            break;
                        }

                        case "MemberCardChangeEvent":
                        {
                            break;
                        }

                        case "MemberSpecialTitleChangeEvent":
                        {
                            break;
                        }

                        case "MemberPermissionChangeEvent":
                        {
                            break;
                        }

                        case "MemberMuteEvent":
                        {
                            break;
                        }

                        case "MemberUnmuteEvent":
                        {
                            break;
                        }

                        case "NewFriendRequestEvent":
                        {
                            EventAddFriend eaf = new EventAddFriend();
                            eaf.name      = j["nick"].ToString();
                            eaf.qq        = long.Parse(j["fromId"].ToString());
                            eaf.desc      = j["message"].ToString();
                            eaf.id        = long.Parse(j["eventId"].ToString());
                            eaf.fromgroup = long.Parse(j["groupId"].ToString());

                            handleAddFriend(eaf);
                            break;
                        }

                        case "MemberJoinRequestEvent":
                        {
                            EventAddGroup eaf = new EventAddGroup();
                            eaf.name      = j["nickName"].ToString();
                            eaf.group     = long.Parse(j["fromId"].ToString());
                            eaf.desc      = j["message"].ToString();
                            eaf.id        = long.Parse(j["eventId"].ToString());
                            eaf.groupName = j["groupName"].ToString();

                            handleAddGroup(eaf);
                            break;
                        }

                        default:
                        {
                            break;
                        }
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message + "\r\n" + ex.StackTrace);
                        //FileHelper.Log(ex);
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message + "\r\n" + ex.StackTrace);
                FileHelper.Log(ex);
            }
        }