public GroupEditWindowViewModel(Action close, List <string> memberIds, AntSdkGroupInfo groupInfo) { IsCreateGroup = false; Title = "邀请加入讨论组"; this.GroupInfo = groupInfo; OriginalMemberIds = memberIds; this.close = close; ContactInfoViewModel.StateImageClickEvent += StateImageClickEvent; ContactListViewModel = new ContactListViewModel(GlobalVariable.ContactInfoViewContainer.GroupEditWindowViewLeft, this); LeftPartViewModel = ContactListViewModel; foreach (string memberId in memberIds) { AntSdkContact_User user = AntSdkService.AntSdkListContactsEntity.users.Find(c => c.userId == memberId); if (user == null)//离职人员信息 { user = new AntSdkContact_User(); user.picture = "pack://application:,,,/AntennaChat;Component/Images/离职人员.png"; user.userName = "******"; user.userId = memberId; } ContactInfoViewModel myselfVM = new ContactInfoViewModel(user, GlobalVariable.ContactInfoViewContainer.GroupEditWindowViewRight); if (myselfVM == null) { continue; } myselfVM.StateImageVisibility = Visibility.Collapsed; GroupMemberList.Add(myselfVM); } MemberCount = string.Format("已选择{0}个联系人", _GroupMemberList.Count()); //GroupName = groupInfo.groupName; GroupNameWateMark = groupInfo.groupName; GroupNameIsReadOnly = true; }
public void LoadTest() { GroupMemberList GroupMembers = new GroupMemberList(); GroupMembers.Load(); Assert.AreEqual(9, GroupMembers.Count); }
public void UpdateTest() { //Load up Guids PerformerList performers = new PerformerList(); Performer performer = new Performer(); performers.Load(); performer = performers.FirstOrDefault(p => p.FirstName == "Hunter"); GroupList groups = new GroupList(); Group group = new Group(); groups.Load(); group = groups.FirstOrDefault(c => c.Name == "Jazz Ensemble"); InstrumentList instruments = new InstrumentList(); Instrument instrument = new Instrument(); instruments.Load(); instrument = instruments.FirstOrDefault(c => c.Description == "Euphonium"); GroupMember groupMember = new GroupMember(); GroupMemberList groupMembers = new GroupMemberList(); groupMembers.Load(); groupMember = groupMembers.FirstOrDefault(p => p.GroupId == group.Id && p.PerformerId == performer.Id); groupMember.StartDate = Convert.ToDateTime("04/24/3000"); groupMember.EndDate = Convert.ToDateTime("04/25/3000"); groupMember.Instrument = instrument.Id; int results = groupMember.Update(); Assert.IsTrue(results == 1); }
// GET: api/GroupMember public IEnumerable <GroupMember> Get() { GroupMemberList groupMembers = new GroupMemberList(); groupMembers.Load(); return(groupMembers); }
public override void OnCreate(Bundle savedInstanceState) { prefs = PreferenceManager.GetDefaultSharedPreferences(Activity.ApplicationContext); var host = prefs.GetString("host", null); _manager = new ApiManager(host); requestsList = new GroupMemberList(new List <Model.User>()); base.OnCreate(savedInstanceState); }
public void addmembers(int _appEntity, int _group) { GroupMemberList addMember = new GroupMemberList(); addMember.AddGroupMember(_appEntity, _group); //RedirectToAction("Index", "GroupMemberAdd"); //Load all Group members into Viewdata //GroupMemberList gm = new GroupMemberList(); //ViewData["MyMembers"] = gm.GetGroupMemberList(_group); }
// // GET: /Groups/Details/5 public ActionResult Details(int id = 0) { GroupTitle grouptitle = db.GroupTitles.Single(g => g.GroupTitleID == id); if (grouptitle == null) { return(HttpNotFound()); } GroupMemberList gm = new GroupMemberList(); ViewData["GroupMembers"] = gm.GetGroupMemberList(id); return(View(grouptitle)); }
public GroupEditWindowViewModel(Action close, List <string> memberIds) { OriginalMemberIds = memberIds; IsCreateGroup = true; Title = "创建讨论组"; this.close = close; ContactInfoViewModel.StateImageClickEvent += StateImageClickEvent; ContactListViewModel = new ContactListViewModel(GlobalVariable.ContactInfoViewContainer.GroupEditWindowViewLeft, this); LeftPartViewModel = ContactListViewModel; foreach (string id in memberIds) { ContactInfoViewModel vm = new ContactInfoViewModel(AntSdkService.AntSdkListContactsEntity.users.Find(c => c.userId == id), GlobalVariable.ContactInfoViewContainer.GroupEditWindowViewRight); vm.StateImageVisibility = Visibility.Collapsed; GroupMemberList.Add(vm); } MemberCount = string.Format("已选择{0}个联系人", _GroupMemberList.Count()); }
public MultiContactsSelectViewModel(List <string> memberIds) { OriginalMemberIds = memberIds; Title = "选择联系人"; ContactInfoViewModel.StateImageClickEvent += StateImageClickEvent; ContactListViewModel = new ContactListViewModel(GlobalVariable.ContactInfoViewContainer.MultiContactsSelectLeft, this); LeftPartViewModel = ContactListViewModel; if (memberIds != null) { foreach (string id in memberIds) { ContactInfoViewModel vm = new ContactInfoViewModel(AntSdkService.AntSdkListContactsEntity.users.Find(c => c.userId == id), GlobalVariable.ContactInfoViewContainer.MultiContactsSelectRight); GroupMemberList.Add(vm); } } MemberCount = string.Format("已选择{0}个联系人", _GroupMemberList.Count()); }
protected override void OnCreate(Bundle savedInstanceState) { SetContentView(Resource.Layout.InviteActivity); prefs = PreferenceManager.GetDefaultSharedPreferences(this); var host = prefs.GetString("host", null); _manager = new ApiManager(host); invitesList = new GroupMemberList(new List <Model.User>()); CustomizeToolbarAndViewPager(); var group_id = Intent.GetIntExtra("group_id", 0); if (group_id > 0) { ShowUsers(group_id); id = group_id; } base.OnCreate(savedInstanceState); }
/// <summary> /// 根据成员名字组成默认群名 /// </summary> /// <returns></returns> private string GetNewGroupName() { var newName = string.Empty; var newNameBd = new StringBuilder(); var nameList = GroupMemberList.Select(c => c.User.userName).ToArray(); foreach (var name in nameList) { if (newNameBd.Length >= 10) { break; } else { newNameBd.Append(name + ","); } } newName = newNameBd.ToString().Substring(0, 10) + "..."; return(newName); }
public ActionResult Index(int id, string search_string) { //Load all Group members into Viewdata GroupMemberList gm = new GroupMemberList(); ViewData["MyMembers"] = gm.GetGroupMemberList(id); ViewBag.GroupName = _getGroupName(id); ViewBag.GroupID = id; if (!String.IsNullOrEmpty(search_string)) { GetPeople mySearch = new GetPeople(); return(View(mySearch.GetSearchedEmployed(search_string))); } else { return(View()); } }
public void LoadById() { //Load up Guids PerformerList performers = new PerformerList(); Performer performer = new Performer(); performers.Load(); performer = performers.FirstOrDefault(p => p.FirstName == "Hunter"); GroupList groups = new GroupList(); Group group = new Group(); groups.Load(); group = groups.FirstOrDefault(c => c.Name == "Jazz Ensemble"); InstrumentList instruments = new InstrumentList(); Instrument instrument = new Instrument(); instruments.Load(); instrument = instruments.FirstOrDefault(c => c.Description == "Euphonium"); GroupMember groupMember = new GroupMember(); GroupMemberList groupMembers = new GroupMemberList(); groupMembers.Load(); groupMember = groupMembers.FirstOrDefault(p => p.GroupId == group.Id && p.PerformerId == performer.Id); groupMember.StartDate = Convert.ToDateTime("04/24/3000"); groupMember.EndDate = Convert.ToDateTime("04/25/3000"); GroupMember newgroupmember = new GroupMember { Id = groupMember.Id }; newgroupmember.LoadById(); Assert.AreEqual(groupMember.Instrument, newgroupmember.Instrument); }
/// <summary> /// 将消息中的东西替换为CQ码 /// </summary> /// <param name="message">原始消息</param> /// <returns></returns> public static string Start(ReceiveMessage message) { string result = string.Empty; string msg = message.CurrentPacket.Data.Content; switch (message.CurrentPacket.Data.MsgType) { case "AtMsg": { TextMessage textMessage = JsonConvert.DeserializeObject <TextMessage>(msg); result = textMessage.Content; GroupMemberList ls = JsonConvert.DeserializeObject <GroupMemberList>(WebAPI.GetGroupMemberList(message.CurrentPacket.Data.FromGroupId)); foreach (var item in textMessage.UserID) { GroupMemberList.Memberlist mem = ls.MemberList.Where(x => x.MemberUin == item).First(); foreach (var pro in mem.GetType().GetProperties()) { if (string.IsNullOrEmpty(pro.GetValue(mem).ToString())) { pro.SetValue(mem, null); } } string originStr = "@" + (mem.AutoRemark ?? mem.GroupCard ?? mem.NickName); result = result.Replace(originStr, CQApi.CQCode_At(item).ToSendString()); } break; } case "TextMsg": result = msg; break; case "PicMsg": { PicMessage picMessage = JsonConvert.DeserializeObject <PicMessage>(message.CurrentPacket.Data.Content); if (!Directory.Exists("data\\image")) { Directory.CreateDirectory("data\\image"); } result = picMessage.Content; foreach (var item in picMessage.GroupPic) { string md5 = GenerateMD5(item.FileMd5).ToUpper(); string path = $"data\\image\\{md5}.cqimg"; if (!File.Exists(path)) { IniConfig ini = new IniConfig(path); ini.Object.Add(new ISection("image")); ini.Object["image"]["md5"] = item.FileMd5; ini.Object["image"]["size"] = item.FileSize; ini.Object["image"]["url"] = item.Url; ini.Save(); } result += CQApi.CQCode_Image(md5); } break; } case "VoiceMsg": { if (!Directory.Exists("data\\record\\")) { Directory.CreateDirectory("data\\record\\"); } JObject json = JObject.Parse(msg); string url = json["Url"].ToString(); string MD5 = GenerateMD5(url); string path = "data\\record\\" + MD5 + ".silk"; if (!File.Exists(path)) { IniConfig ini = new IniConfig(path); ini.Object.Add(new ISection("record")); ini.Object["record"]["url"] = url; ini.Save(); } result = CQApi.CQCode_Record(MD5 + ".silk").ToString(); break; } } result = Regex.Replace(result, "\\[表情(\\d*)\\]", "[CQ:face,id=$1]"); foreach (var a in result) { if (a == '\ud83d' && result.IndexOf(a) != result.Length - 1) { string str = a.ToString() + result[result.IndexOf(a) + 1].ToString(); string text = ""; foreach (var item in Encoding.UTF32.GetBytes(str)) { text += item.ToString("x"); } result = result.Replace(str, CQApi.CQCode_Emoji(Convert.ToInt32(text, 16)).ToString()); break; } } return(result); }
//public string NewGroupPicture; /// <summary> /// 更新讨论组 /// </summary> private void UpdateGroup() { if (GroupInfo == null) { return; } AntSdkUpdateGroupInput input = new AntSdkUpdateGroupInput(); input.userId = AntSdkService.AntSdkLoginOutput.userId; input.groupId = this.GroupInfo.groupId; NewGroupMemberList = new List <AntSdkContact_User>(); foreach (ContactInfoViewModel vm in GroupMemberList) { if (!OriginalMemberIds.Contains(vm.User.userId)) { if (input.userIds == null) { input.userIds = new List <string>(); } input.userIds.Add(vm.User.userId); if (input.userNames == null) { input.userNames = new List <string>(); } input.userNames.Add(vm.User.userName); NewGroupMemberList.Add(vm.User); } } if (NewGroupMemberList.Count != 0) { BaseOutput output = new BaseOutput(); var errCode = 0; string errMsg = string.Empty; //TODO:AntSdk_Modify //DONE:AntSdk_Modify var isResult = AntSdkService.UpdateGroup(input, ref errCode, ref errMsg); if (!isResult) { NewGroupMemberList = null; MessageBoxWindow.Show(errMsg, GlobalVariable.WarnOrSuccess.Warn); return; } //if (!(new HttpService()).UpdateGroup(input, ref output, ref errMsg)) //{ // NewGroupMemberList = null; // if (output.errorCode != "1004") // { // MessageBoxWindow.Show(errMsg,GlobalVariable.WarnOrSuccess.Warn); // } // return; // //OnUpdateGroupEvent(input.groupId, input.userIds); //} string[] ThreadParams = new string[3]; ThreadParams[0] = this.GroupInfo.groupId; ThreadParams[1] = ImageHandle.GetGroupPicture(GroupMemberList.Select(c => c.Photo).ToList()); ThreadParams[2] = string.IsNullOrEmpty(this.GroupInfo.groupName) ? "" : this.GroupInfo.groupName; Thread UpdateGroupPictureThread = new Thread(GroupPublicFunction.UpdateGroupPicture); UpdateGroupPictureThread.Start(ThreadParams); //this.NewGroupPicture = input.groupPicture; } App.Current.Dispatcher.BeginInvoke((Action)(() => { this.close.Invoke(); })); }
public InviteAdapter(GroupMemberList membersList) { _membersList = membersList; }
private void CreateGroup() { // 讨论组名不能为空 //if (string.IsNullOrWhiteSpace(GroupName)) //{ // GroupNameBorderBrush = new SolidColorBrush(Colors.Red); // //GroupNameBorderThickness = new Thickness(1, 1, 1, 1); // return; //} //else //{ // GroupNameBorderBrush = new SolidColorBrush((System.Windows.Media.Color)System.Windows.Media.ColorConverter.ConvertFromString("#e0e0e0")); // //GroupNameBorderThickness = new Thickness(0); //} // 讨论组成员不能少于3 if (GroupMemberList == null || GroupMemberList.Count < 3) { MessageBoxWindow.Show("讨论组至少需要包括三个成员", GlobalVariable.WarnOrSuccess.Warn); return; } if (string.IsNullOrWhiteSpace(GroupName.Trim(' ')))//自定义群名为空 取默认值 { GroupName = GetNewGroupName(); } GroupName = GroupName.TrimStart(' '); #region 旧代码 CreateGroupInput input = new CreateGroupInput(); input.token = AntSdkService.AntSdkLoginOutput.token; input.version = GlobalVariable.Version; input.userId = AntSdkService.AntSdkLoginOutput.userId; input.groupName = GroupName; //获取讨论组成员头像 //List<string> picList = new List<string>(); //foreach (ContactInfoViewModel m in GroupMemberList) //{ // picList.Add(m.Photo); //} //input.groupPicture = ImageHandle.GetGroupPicture(picList); //input.groupPicture =; input.userIds = string.Join(",", GroupMemberList.Select(c => c.User.userId).ToArray()); //CreateGroupOutput output = new CreateGroupOutput(); var errCode = 0; var errMsg = string.Empty; //if (!(new HttpService()).CreateGroup(input, ref output, ref errMsg)) //{ // if (output.errorCode != "1004") // { // MessageBoxWindow.Show(errMsg,GlobalVariable.WarnOrSuccess.Warn); // } // return; //} //output.group.groupPicture = ImageHandle.GetGroupPicture(GroupMemberList.Select(c => c.Photo).ToList()); //ThreadPool.QueueUserWorkItem(m => //{ //}); #endregion AntSdkCreateGroupInput newGroupInput = new AntSdkCreateGroupInput(); newGroupInput.userId = AntSdkService.AntSdkLoginOutput.userId; newGroupInput.groupName = GroupName; newGroupInput.userIds = GroupMemberList.Select(c => c.User.userId).ToArray(); //newGroupInput.groupPicture = ImageHandle.GetGroupPicture(GroupMemberList.Select(c => c.Photo).ToList()); //TODO:AntSdk_Modify //DONE:AntSdk_Modify AntSdkCreateGroupOutput createGroupOutput = AntSdkService.CreateGroup(newGroupInput, ref errCode, ref errMsg); if (createGroupOutput == null) { if (!AntSdkService.AntSdkIsConnected) { errMsg = "网络已断开,请检查网络"; } if (!string.IsNullOrEmpty(errMsg)) { MessageBoxWindow.Show(errMsg, GlobalVariable.WarnOrSuccess.Warn); } return; } createGroupOutput.groupPicture = ImageHandle.GetGroupPicture(GroupMemberList.Select(c => c.Photo).ToList()); //异步更新讨论组头像,这里需要用前台线程,因此不能用线程池 string[] ThreadParams = new string[3]; ThreadParams[0] = createGroupOutput.groupId; ThreadParams[1] = createGroupOutput.groupPicture; ThreadParams[2] = string.IsNullOrEmpty(createGroupOutput.groupName) ? "" : createGroupOutput.groupName; Thread UpdateGroupPictureThread = new Thread(GroupPublicFunction.UpdateGroupPicture); UpdateGroupPictureThread.Start(ThreadParams); this.CreateGroupOutput = createGroupOutput; App.Current.Dispatcher.BeginInvoke((Action)(() => { this.close.Invoke(); })); }
/// <summary> /// 状态图点击事件 /// </summary> /// <param name="sender"></param> /// <param name="isSelect">True表示在创建讨论组左侧选中,False表示在左侧取消选择,Null表示在右侧点击</param> private void StateImageClickEvent(object sender, bool?isSelect) { ContactInfoViewModel senderVM = sender as ContactInfoViewModel; if (senderVM == null) { return; } ContactInfoViewModel existVM = GroupMemberList.FirstOrDefault(c => c.User.userId == senderVM.User.userId); ContactInfoViewModel ContactListTempVM = null; if (ContactListViewModel.ContactInfoViewModelList != null) { ContactListTempVM = ContactListViewModel.ContactInfoViewModelList.FirstOrDefault(c => c.User.userId == senderVM.User.userId); } if (isSelect == true)//选择组织结构列表中联系人 { if (existVM == null) { ContactInfoViewModel tempVM = new ContactInfoViewModel(senderVM.User, GlobalVariable.ContactInfoViewContainer.GroupEditWindowViewRight); GroupMemberList.Add(tempVM); MemberCount = string.Format("已选择{0}个联系人", _GroupMemberList.Count()); //tempVM.MouseLeftButtonDownEvent += ModifyColorOnMouseClick; } //if (ContactListTempVM != null && ContactListTempVM != sender)//如果是从搜索列表里来的 if (ContactListTempVM != null && ContactListTempVM.IsMouseClick == false)//如果是从搜索列表里来的 { ContactListTempVM.OnStateImageClickEventEvent(ContactListTempVM, true); } } else if (isSelect == false)//取消选中组织结构列表中联系人 { if (existVM != null) { GroupMemberList.Remove(existVM); MemberCount = string.Format("已选择{0}个联系人", _GroupMemberList.Count()); } if (ContactListTempVM != null && ContactListTempVM.IsMouseClick == true) { ContactListTempVM.OnStateImageClickEventEvent(ContactListTempVM, false); } } else //从右侧讨论成员中删除联系人 { bool isLeftExist = false; if (ContactListTempVM != null && ContactListTempVM != sender) { ContactListTempVM.OnStateImageClickEventEvent(ContactListTempVM, false); isLeftExist = true; } if (_QueryContactList != null && _QueryContactList.QueryContactList != null) { ContactInfoViewModel tempVM = _QueryContactList.QueryContactList.FirstOrDefault(c => c.User.userId == senderVM.User.userId); if (tempVM != null) { tempVM.OnStateImageClickEventEvent(tempVM, false); isLeftExist = true; } } if (isLeftExist == false)//左侧组织结构或者搜索列表中都还未加载,则直接从右侧列表删除即可 { if (existVM != null) { GroupMemberList.Remove(existVM); MemberCount = string.Format("已选择{0}个联系人", _GroupMemberList.Count()); } } } }
/// <summary> /// 将消息中的东西替换为CQ码 /// </summary> /// <param name="message">原始消息</param> /// <returns></returns> public static string Start(ReceiveMessage message) { string result = string.Empty; string msg = message.CurrentPacket.Data.Content; switch (message.CurrentPacket.Data.MsgType) { case "TempSessionMsg": if (msg.Contains("图片")) { var c = JsonConvert.DeserializeObject <PicMessage>(msg).FriendPic; foreach (var item in c) { result += MakeCQImage(item); } } else { result = JObject.Parse(msg)["Content"].ToString(); } break; case "AtMsg": { //at消息主要将消息中的at消息转变为CQ码 //而@人名 中的人名格式可能会不同,不能直接用群名片替换,所以要从群成员列表寻找这个人 //按备注->群名片->昵称的顺序,替换可能出现的名称 TextMessage textMessage = JsonConvert.DeserializeObject <TextMessage>(msg); result = textMessage.Content; //从缓存寻找这个群 GroupMemberList ls = MemberSave.Find(x => x.GroupUin == message.CurrentPacket.Data.FromGroupId); if (ls == null) //未在缓存找到,将这个群加入缓存 { ls = JsonConvert.DeserializeObject <GroupMemberList>( WebAPI.GetGroupMemberList(message.CurrentPacket.Data.FromGroupId)); MemberSave.Add(ls); } foreach (var item in textMessage.UserID) { GroupMemberList.Memberlist mem = ls.MemberList.Where(x => x.MemberUin == item).First(); foreach (var pro in mem.GetType().GetProperties()) { //将空文本变成null,方便后续??运算符 try { if (string.IsNullOrEmpty(pro.GetValue(mem).ToString())) { pro.SetValue(mem, null); } } catch (NullReferenceException e) { pro.SetValue(mem, null); //如果是null则会跳至catch块 } } string originStr = "@" + (mem.AutoRemark ?? mem.GroupCard ?? mem.NickName); result = result.Replace(originStr, CQApi.CQCode_At(item).ToSendString()); } break; } case "TextMsg": result = msg; break; case "PicMsg": { //图片消息是将图片消息的信息配置进image文件夹下的以MD5为名称的cqimg文件内 PicMessage picMessage = JsonConvert.DeserializeObject <PicMessage>(message.CurrentPacket.Data.Content); if (!Directory.Exists("data\\image")) { Directory.CreateDirectory("data\\image"); } result = picMessage.Content; if (picMessage.GroupPic != null) //是群图片消息 { foreach (var item in picMessage.GroupPic) { result += MakeCQImage(item); } } else //是好友图片消息 { foreach (var item in picMessage.FriendPic) { result += MakeCQImage(item); } } break; } case "VoiceMsg": { if (!Directory.Exists("data\\record\\")) { Directory.CreateDirectory("data\\record\\"); } JObject json = JObject.Parse(msg); string url = json["Url"].ToString(); string MD5 = GenerateMD5(url); string path = "data\\record\\" + MD5 + ".silk"; if (!File.Exists(path)) { IniConfig ini = new IniConfig(path); ini.Object.Add(new ISection("record")); ini.Object["record"]["url"] = url; ini.Save(); } result = CQApi.CQCode_Record(MD5 + ".silk").ToString(); break; } case "RedBagMsg": { string title = JObject.Parse(msg)["Content"]?.ToString(); result = $"[CQ:hb,title={title}]"; break; } case "XmlMsg": { result = JObject.Parse(msg)["Content"].ToString(); var xml = new XmlDocument(); int index = result.IndexOf("</msg>"); result = result.Substring(0, index + "</msg>".Length); xml.LoadXml(result); var root = xml.FirstChild.NextSibling; foreach (XmlAttribute item in root.Attributes) { if (item.Name == "actionData" && item.Value.Contains("group:")) { result = $"[CQ:contact,id={item.Value.Replace("group:", "")},type=group]"; break; } else if (item.Name == "actionData" && item.Value.Contains("AppCmd://OpenContactInfo/?uin")) { result = $"[CQ:contact,id={item.Value.Replace("AppCmd://OpenContactInfo/?uin=", "")},type=qq]"; break; } else if (item.Name == "url" && item.Value.Contains("y.music.163.com")) { int musicid = Convert.ToInt32(Regex.Replace(item.Value, "https:\\/\\/y.music.163.com\\/m/song\\/([0-9]*)\\/\\?userid=([0-9]*)", "$1")); int userid = Convert.ToInt32(Regex.Replace(item.Value, "https:\\/\\/y.music.163.com\\/m/song\\/([0-9]*)\\/\\?userid=([0-9]*)", "$2")); result = $"[CQ:music,type=163,id={musicid},userid={userid}]"; break; } } if (!result.StartsWith("[CQ:")) { result = $"[CQ:rich,content={result.Replace("\n","").Replace("\r","")}]"; } break; } case "JsonMsg": { result = JObject.Parse(msg)["Content"].ToString(); result = result.Substring(result.IndexOf("{\"app\":\"")); var json = JObject.Parse(result); if (json["meta"]["music"] != null) { var musicroot = json["meta"]["music"]; int musicid = Convert.ToInt32(Regex.Replace(musicroot["jumpUrl"].ToString(), "https:\\/\\/y.music.163.com\\/m/song\\/([0-9]*)\\/\\?userid=([0-9]*)", "$1")); int userid = Convert.ToInt32(Regex.Replace(musicroot["jumpUrl"].ToString(), "https:\\/\\/y.music.163.com\\/m/song\\/([0-9]*)\\/\\?userid=([0-9]*)", "$2")); result = $"[CQ:music,type=163,id={musicid},userid={userid},title={musicroot["title"]},desc={musicroot["desc"]}]"; } else { result = $"[CQ:rich,title={json["prompt"]}]"; } break; } } result = Regex.Replace(result, "\\[表情(\\d*)\\]", "[CQ:face,id=$1]"); //处理QQ表情信息 //处理emoji消息 foreach (var a in result) { //UTF-8下,大部分的emoji都是以\ud83d开头 if (a == '\ud83d' && result.IndexOf(a) != result.Length - 1) { //取这个emoji string str = a.ToString() + result[result.IndexOf(a) + 1].ToString(); UTF32Encoding enc = new UTF32Encoding(true, false); byte[] bytes = enc.GetBytes(str); //转换字节数组 //使用BitConvert将字节数组转换为16进制,之后转换为10进制即可 result = result.Replace(str, CQApi.CQCode_Emoji(Convert.ToInt32(BitConverter.ToString(bytes).Replace("-", ""), 16)) .ToString()); break; } } return(result); }
public RequestAdapter(GroupMemberList membersList) { _membersList = membersList; }