public void AddVtuberCommand(MessageInfo message, string[] args) { var vtb = Config.DefaultConfig.GetVtuber(args[2]); if (vtb != null) { _service.SendToGroup(message.GroupNumber, "已存在该Vtuber"); return; } var streamers = HiyokoApi.SearchStreamer(args[2]); if (streamers.Count != 1) { _service.SendToGroup(message.GroupNumber, "无法找到" + args[2]); return; } var streamer = streamers.First(); vtb = new VtuberInfo() { OriginalName = streamer.Name, TwitterProfileId = streamer.TwitterId, YoutubeChannelId = streamer.Channels.FirstOrDefault(v => v.ChannelType == 1)?.ChannelId, HiyokoProfileId = streamer.Name }; Config.DefaultConfig.Vtubers.Add(vtb); Config.SaveToDefaultFile(Config.DefaultConfig); _service.SendToGroup(message.GroupNumber, "已根据互联网相关资料添加: " + args[2] + "\r\n可使用!Vtuber set修改"); _service.SendToGroup(message.GroupNumber, $"Vtuber相关信息: \r\n" + $"原名: {streamer.Name}\r\n" + $"推特主页: https://twitter.com/{streamer.TwitterId}\r\n" + $"Youtube频道: https://www.youtube.com/channel/{streamer.Channels.FirstOrDefault(v => v.ChannelType == 1)?.ChannelId}"); }
public async void AddVtuberCommand(AcceptedMessage message, string[] args) { try { var vtuberName = string.Join(" ", args.Skip(2)); var vtuber = await GetVtuberAsync(vtuberName); if (vtuber != null) { await SendingService.SendGroupMessageAsync(message.FromGroup, "已存在 " + vtuberName); return; } await SendingService.SendGroupMessageAsync(message.FromGroup, "正在搜索, 这可能需要一段时间."); var streamers = HiyokoApi.SearchStreamer(vtuberName); if (streamers.Count == 0) { await SendingService.SendGroupMessageAsync(message.FromGroup, "无法找到: " + vtuberName); return; } var streamer = streamers.First(); var bilibiliChannel = streamer.Channels.FirstOrDefault(v => v.ChannelType == 6)?.ChannelId? .Replace("BL_", string.Empty); if (await GetVtuberAsync(streamer.Name) != null) { await SendingService.SendGroupMessageAsync(message.FromGroup, "已存在 " + vtuberName); return; } var entity = new VtuberEntity() { OriginalName = streamer.Name, TwitterProfileId = streamer.TwitterId, YoutubeChannelId = streamer.Channels.FirstOrDefault(v => v.ChannelType == 1)?.ChannelId, HiyokoProfileId = streamer.Name, BilibiliUserId = string.IsNullOrEmpty(bilibiliChannel) ? 0 : long.Parse(bilibiliChannel) }; var userlocalVtuber = (await UserlocalApi.SearchAsync(vtuberName).Retry(5)) .Select(v => UserlocalApi.GetVtuberInfoAsync(v.Id).Retry(5).GetAwaiter().GetResult()).FirstOrDefault( v => { if (v.ChannelLink.EndsWith("/")) { v.ChannelLink = v.ChannelLink.Substring(0, v.ChannelLink.Length - 1); } return(v.ChannelLink.Split('/').Last() == entity.YoutubeChannelId); }); if (userlocalVtuber != null) { entity.Group = userlocalVtuber.OfficeName; entity.UserlocalProfile = userlocalVtuber.Id; } await _vtuberCollection.InsertOneAsync(entity); await SendingService.SendGroupMessageAsync(message.FromGroup, "已根据互联网相关资料添加: " + vtuberName + "\r\n可使用!Vtuber set修改"); await SendingService.SendGroupMessageAsync(message.FromGroup, $"Vtuber相关信息: \r\n" + $"原名: {streamer.Name}\r\n" + $"推特主页: https://twitter.com/{streamer.TwitterId}\r\n" + $"Youtube频道: https://www.youtube.com/channel/{streamer.Channels.FirstOrDefault(v => v.ChannelType == 1)?.ChannelId}\r\n" + $"B站主页: https://space.bilibili.com/{entity.BilibiliUserId}\r\n" + $"所属团体: {entity.Group}"); } catch (Exception ex) { await SendingService.SendGroupMessageAsync(message.FromGroup, "添加vtuber时出现错误, 请重试或反馈, 错误信息: " + ex.Message); } }