Example #1
0
        private GroupMessage make_group_msg(UserMessage userMessage)
        {
            WriteLog("make group message");
            GroupMessage groupMessage = new GroupMessage(this);

            groupMessage.setRawMsg(userMessage.getRawMsg());
            groupMessage.setMsgId(((JValue)userMessage.getRawMsg()["MsgId"]).Value.ToString());
            groupMessage.setFromUserName(((JValue)userMessage.getRawMsg()["FromUserName"]).Value.ToString());
            groupMessage.setToUserName(((JValue)userMessage.getRawMsg()["ToUserName"]).Value.ToString());
            groupMessage.setMsgType(((JValue)userMessage.getRawMsg()["MsgType"]).Value.ToString());
            groupMessage.setText(userMessage.getText());

            String content = ((JValue)userMessage.getRawMsg()["Content"]).Value.ToString().Replace("&lt;", "<").Replace("&gt;", ">");

            Dictionary <String, String> group = null, src = null;

            if (groupMessage.getFromUserName().StartsWith("@@"))
            {
                //接收到来自群的消息
                String g_id = groupMessage.getFromUserName();
                groupMessage.setGroupId(g_id);
                group = this.getGroupById(g_id);
                if (content.Contains(":<br/>"))
                {
                    String u_id = content.Split(new string[] { ":<br/>" }, StringSplitOptions.None)[0];
                    src = getGroupUserById(u_id, g_id);
                }
            }
            else if (groupMessage.getToUserName().StartsWith("@@"))
            {
                // 自己发给群的消息
                String g_id = groupMessage.getToUserName();
                groupMessage.setGroupId(g_id);
                String u_id = groupMessage.getFromUserName();
                src   = this.getGroupUserById(u_id, g_id);
                group = this.getGroupById(g_id);
            }

            if (null != src)
            {
                groupMessage.setUser_attrstatus(src["AttrStatus"]);
                groupMessage.setUser_display_name(src["DisplayName"]);
                groupMessage.setUser_nickname(src["NickName"]);
            }
            if (null != group)
            {
                groupMessage.setGroup_count(group["MemberCount"]);
                groupMessage.setGroup_owner_uin(group["OwnerUin"]);
                groupMessage.setGroup_name(group["ShowName"]);
            }
            groupMessage.setTimestamp(((JValue)userMessage.getRawMsg()["CreateTime"]).Value.ToString());

            return(groupMessage);
        }
Example #2
0
        private void show_msg(UserMessage userMessage)
        {
            Dictionary <String, String> src = new Dictionary <string, string>()
            {
                { "", "" }
            };
            Dictionary <String, String> dst   = null;
            Dictionary <String, String> group = null;
            JObject msg = userMessage.getRawMsg();

            String content = ((JValue)msg["Content"]).Value.ToString();

            content = content.Replace("&lt;", "<").Replace("&gt;", ">");

            String msg_id = ((JValue)msg["MsgId"]).Value.ToString();

            // 接收到来自群的消息
            if (((JValue)msg["FromUserName"]).Value.ToString().Substring(0, 2) == "@@")
            {
                String groupId = ((JValue)msg["FromUserName"]).Value.ToString();
                group = this.getGroupById(groupId);
                if (content.Contains(":<br/>"))
                {
                    String u_id = content.Split(new string[] { ":<br/>" }, StringSplitOptions.None)[0];
                    src = this.getGroupUserById(u_id, groupId);
                    dst = new Dictionary <string, string>()
                    {
                        { "ShowName", "GROUP" }
                    };
                }
                else
                {
                    String u_id = ((JValue)msg["ToUserName"]).Value.ToString();
                    src = new Dictionary <string, string>()
                    {
                        { "ShowName", "SYSTEM" }
                    };
                    dst = getGroupUserById(u_id, groupId);
                }
            }
            else
            {
                // 非群聊消息
                src = this.getUserById(((JValue)msg["FromUserName"]).Value.ToString());
                dst = this.getUserById(((JValue)msg["ToUserName"]).Value.ToString());
            }


            if (null != group)
            {
                WriteLog("{0} |{1}| {2} -> {3}: {4}\n", msg_id, group["ShowName"], src["ShowName"],
                         dst["ShowName"], userMessage.getLog());
            }
            else
            {
                string newMsg = string.Format(DateTime.Now.ToString(" hh:mm:ss ") + "{0} {1} -> {2}: {3}\n", msg_id, src["ShowName"],
                                              dst["ShowName"], userMessage.getLog());

                WriteLog(newMsg);
            }
            //显示到界面上
            string showMsg = DateTime.Now.ToString(" hh:mm:ss ") + src["ShowName"] + ":" + userMessage.getLog() + "\r\n";

            if (FormLogin.formMain.isCurr(src["UserName"])) //发来消息是否来自于当前聊天窗口用户
            {
                FormLogin.formMain.AddtextBoxHistory(showMsg);
            }
            else
            {
                FormLogin.formMain.SetTitle(showMsg);
            }
            listUserMsg.Add(userMessage);
        }