private static void ListeningTest(HttpApiClient httpApi)
        {
            Console.WriteLine("input listening port");
            string port = Console.ReadLine();

            ApiPostListener listener = new ApiPostListener();

            listener.ApiClient   = httpApi;
            listener.PostAddress = $"http://127.0.0.1:{port}/";
            listener.ForwardTo   = "http://[::1]:10202";
            listener.StartListen();
            listener.FriendRequestEvent += Friend;
            listener.FriendRequestEvent += ApiPostListener.ApproveAllFriendRequests;
            listener.GroupInviteEvent   += Group;
            listener.GroupInviteEvent   += ApiPostListener.ApproveAllGroupRequests;
            listener.GroupRequestEvent  += Group;
            listener.GroupRequestEvent  += ApiPostListener.ApproveAllGroupRequests;
            //listener.MessageEvent += ApiPostListener.RepeatAsync;
            listener.MessageEvent          += PrintRaw;
            listener.GroupNoticeEvent      += ApiPostListener.RepeatAsync;
            listener.AnonymousMessageEvent += ApiPostListener.RepeatAsync;
            listener.AnonymousMessageEvent += PrintRaw;
            //listener.MessageEvent += ApiPostListener.Say("good");

            var listener2 = new ApiPostListener();

            listener2.PostAddress = "http://[::1]:10202";
            listener2.StartListen();
            listener2.MessageEvent += (api, message) =>
            {
                Console.WriteLine(message.Time);
                Console.WriteLine(message.Content.Raw);
            };
        }
        private static void Main(string[] args)
        {
            var culture = CultureInfo.GetCultureInfo("zh-CN");

            CultureInfo.DefaultThreadCurrentCulture   = culture;
            CultureInfo.DefaultThreadCurrentUICulture = culture;
            CultureInfo.CurrentCulture   = culture;
            CultureInfo.CurrentUICulture = culture;

            var httpApiClient = new HttpApiClient();

            var friendList = httpApiClient.GetFriendListAsync().ConfigureAwait(false).GetAwaiter().GetResult();
            // test for get_friend_list ha kokomade.

            var groupMemberInfo = httpApiClient.GetGroupMemberInfoAsync(661021255, 962549599).GetAwaiter().GetResult();
            //var groupMemberInfos = httpApiClient.GetGroupMemberListAsync(641236878).GetAwaiter().GetResult();

            var banResult = httpApiClient.BanAnonymousMember(72318078, "AAAAAAAPQl8ADMfHwK2hpMSqtvvDyQAoAHXUxZeiC+YKi480g3ERUrpzM+o20KsUJ0mm1xxoobOEtwYU+3KqiA==", 60).GetAwaiter().GetResult();

            banResult = httpApiClient.BanWholeGroup(72318078, true).GetAwaiter().GetResult();
            Task.Delay(TimeSpan.FromSeconds(10)).Wait();
            banResult = httpApiClient.BanWholeGroup(72318078, false).GetAwaiter().GetResult();

            var postListener = new ApiPostListener(8876);

            PrintNoticeAndRequests(postListener);
            postListener.StartListen();
            Console.ReadKey(true);
            Environment.Exit(0);

            var httpApi = new HttpApiClient();

            httpApi.ApiAddress = "http://127.0.0.1:5700/";

            //var privateResponse = httpApi.SendPrivateMessageAsync(962549599, "hello").Result;
            //Console.WriteLine(privateResponse.MessageId);
            //var groupResponse = httpApi.SendGroupMessageAsync(72318078, "hello").Result;
            //Console.WriteLine(groupResponse.MessageId);
            //605617685
            #region kick test
            //var success1 = httpApi.KickGroupMember(605617685, 962549599);
            //var success2 = httpApi.KickGroupMember(72318078, 962549599);
            //Console.WriteLine(success1);
            //Console.WriteLine(success2);
            #endregion
            Console.WriteLine("--------------");
            #region recall test
            //var delete1 = httpApi.RecallMessageAsync(privateResponse).Result;
            //var delete2 = httpApi.RecallMessageAsync(groupResponse).Result;
            //Console.WriteLine(delete1);
            //Console.WriteLine(delete2);
            #endregion

            #region group member info test
            //Console.Write("group num:");
            //long group = long.Parse(Console.ReadLine().Trim());
            //Console.Write("qq id:");
            //long qqid = long.Parse(Console.ReadLine().Trim());
            //var member = httpApi.GetGroupMemberInfoAsync(group, qqid).Result;
            //Console.WriteLine(member.Age);
            //Console.WriteLine(member.Area);
            //Console.WriteLine(member.Authority.ToString());
            //Console.WriteLine(member.GroupId);
            //Console.WriteLine(member.InGroupName);
            //Console.WriteLine(member.IsCardChangeable);
            //Console.WriteLine(member.JoinTime);
            //Console.WriteLine(member.LastSendTime);
            //Console.WriteLine(member.Nickname);
            //Console.WriteLine(member.Title);
            //Console.WriteLine(member.UserId);

            //var memberList = httpApi.GetGroupMemberListAsync(605617685).Result;
            //var query = from m in memberList
            //            where m.Age > 19
            //            select new { m.InGroupName, m.Nickname, m.Area };
            //foreach (var item in query)
            //{
            //    Console.WriteLine(item.InGroupName);
            //    Console.WriteLine(item.Nickname);
            //    Console.WriteLine(item.Area);
            //}
            #endregion

            #region Message Class Test
            //var message = new Message("this is at test,: ");
            //message += Message.At(962549599);
            //httpApi.SendGroupMessageAsync(72318078, message).Wait();
            #endregion

            #region Image Test
            //var imgMessage = Message.LocalImage(@"C:\Users\Administrator\Desktop\Rinima.jpg");
            //var netMessage = Message.NetImage(@"https://files.yande.re/image/ca815083c96a99a44ff72e70c6957c14/yande.re%20437737%20dennou_shoujo_youtuber_shiro%20heels%20pantyhose%20shiro_%28dennou_shoujo_youtuber_shiro%29%20shouju_ling.jpg");
            //httpApi.SendGroupMessageAsync(72318078, imgMessage).Wait();
            //httpApi.SendGroupMessageAsync(72318078, netMessage).Wait();
            //httpApi.SendGroupMessageAsync(72318078, imgMessage + netMessage).Wait();
            //message += netMessage;
            //httpApi.SendGroupMessageAsync(72318078, message).Wait();
            #endregion

            RecordTestAsync(httpApi);

            //ListeningTest(httpApi);

            Console.WriteLine("end");
            Console.ReadKey();
        }
Пример #3
0
        static void Main(string[] args)
        {
            Database = new MongoClient(Config.DefaultConfig.DatabaseConnectionString).GetDatabase("vtuber-bot-data");
            Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
            if (!string.IsNullOrEmpty(Config.DefaultConfig.ProxyUrl))
            {
                WebRequest.DefaultWebProxy = new WebProxy(Config.DefaultConfig.ProxyUrl);
            }
            LogHelper.Info("载入中..");
            if (!Config.DefaultConfig.UseLocalClient)
            {
                LogHelper.Info("使用CoolQ HTTP接口启动机器人");
                Client = new HttpApiClient()
                {
                    ApiAddress  = Config.DefaultConfig.CoolQApi,
                    AccessToken = Config.DefaultConfig.CoolQAccessToken
                };

                Listener = new ApiPostListener()
                {
                    ApiClient   = Client,
                    PostAddress = Config.DefaultConfig.CoolQListenUrl,
                };

                Listener.StartListen();
                var service = new CoolService();
                SendService = service;
                Bot         = new LocalVtuberBot(SendService, service, null);
            }
            else
            {
                LogHelper.Info("使用本地QQ框架启动机器人");
                User = new QQUser(Config.DefaultConfig.Id, Config.DefaultConfig.Password);
                var socketServer = new SocketServiceImpl(User);
                var transponder  = new Transponder();
                SendService = new SendMessageServiceImpl(socketServer, User);
                var manage = new MessageManage(socketServer, User, transponder);
                manage.Init();
                QQGlobal.DebugLog = false;
                while (string.IsNullOrEmpty(User.NickName))
                {
                    Thread.Sleep(100);
                }
                Bot = new LocalVtuberBot(SendService, transponder, User);
            }
            LogHelper.Info("载入完成");
            LogHelper.Info("载入缓存中");
            CacheManager.Manager.Init();
            Thread.Sleep(10000);
            LogHelper.Info("载入完成");
            Bot.Commands.Add(new MenuCommand());
            Bot.Commands.Add(new TimeLineCommand());
            Bot.Commands.Add(new OfficeInfoCommand());
            Bot.Commands.Add(new YoutubeSearchCommand());
            Bot.Commands.Add(new VtuberInfoCommand(SendService));
            Bot.Commands.Add(new SubscribeCommand());
            Bot.Commands.Add(new LiveCommand(SendService));
            Bot.Commands.Add(new PluginManagerCommand(SendService));
            LogHelper.Info("载入插件中...");
            PluginManager.Manager.LoadPlugins();
            LogHelper.Info("载入完成.");
            Console.ReadLine();
        }