示例#1
0
 private static void DemoSendRoomText()
 {
     try
     {
         var Result = AirCatApi.SendRoomText("", RoomWxid, DemoTextMessage);
         Console.WriteLine(Result.ToString());
     }
     catch (Exception ex)
     {
         Console.WriteLine(ex.ToString());
     }
 }
示例#2
0
        private void MainWindow_Loaded(object sender, RoutedEventArgs e)
        {
            AirCatApi airCatApi = new AirCatApi();

            airCatApi.AirWebApiIP    = AirWebApiIP;
            airCatApi.AirWebApiPort  = AirWebApiPort;
            airCatApi.ServicePort    = LocalManagerPort;
            airCatApi.AirWebApiToken = ShareToken;


            Type type = airCatApi.GetType();

            MethodInfo[] methods = type.GetMethods();

            List <String> CommandList = new List <string>();

            foreach (MethodInfo method in methods)
            {
                if (method.IsStatic == false)
                {
                    continue;
                }
                if (method.ReturnParameter.ParameterType.Name != "String")
                {
                    continue;
                }
                CommandList.Add(method.Name);
            }
            CommandList.Sort();
            this.CobmoxCommands.ItemsSource = CommandList;


            airCatApi.OnDebug += AirCatApi_OnDebug;
            airCatApi.ServiceStart();

            ServerIP.Text         = AirWebApiIP;
            ServerPort.Text       = AirWebApiPort.ToString();
            ManagerIP.Text        = "127.0.0.1";
            ManagerPort.Text      = LocalManagerPort.ToString();
            Token.Text            = ShareToken;
            TestRobotWxid.Text    = DefaultRobotWxid;
            TestRoomWxid.Text     = DefaultRoomWxid;
            TestContractWxid.Text = DefaultContractWxid;


            new Thread(() =>
            {
                this.Dispatcher.Invoke(new Action(() =>
                {
                    CobmoxCommands.SelectedIndex = CobmoxCommands.Items.IndexOf("GetRobotList");
                }));
            }).Start();
        }
示例#3
0
 /// <summary>
 /// 获取微信端信息
 /// </summary>
 private static void DemoGetServerStatus()
 {
     try
     {
         var Result = AirCatApi.GetServerStatusData();
         Console.WriteLine(Result.ToString());
     }
     catch (Exception ex)
     {
         Console.WriteLine(ex.ToString());
     }
 }
示例#4
0
        static void Main(string[] args)
        {
            //启动本地Web服务器
            AirCatApi airCatApi = new AirCatApi();

            airCatApi.OnDebug += AirCatApi_OnDebug;
            airCatApi.ServiceStart();


            DemoGetServerStatus();
            Thread.Sleep(2000);

            DemoSendContractText();
            Thread.Sleep(2000);

            DemoSendRoomText();
            Thread.Sleep(2000);

            Console.ReadLine();
        }
示例#5
0
        private static void CheckContract()
        {
            Console.WriteLine("检测指定的联系人......");
            var contactList = AirCatApi.GetContactListData(RobotWxid, "", "");

            foreach (var contact in contactList.Members)
            {
                Console.WriteLine(contact.Wxid + "\t" + contact.WxName);
                if (ContractWxid == contact.Wxid)
                {
                    Console.WriteLine("OK!");
                    ContractFound = true;
                    //break;
                }
            }
            if (ContractFound == false)
            {
                Console.WriteLine("指定的联系人未找到,程序无法继续执行!");
                Console.ReadLine();
                return;
            }
        }
示例#6
0
        static void CheckRobot()
        {
            Console.WriteLine("检测在线机器人......");
            var RobotList = AirCatApi.GetRobotListData();

            foreach (var item in RobotList.Robots)
            {
                //Console.WriteLine(item.RobotWxid + "\t" + item.LoginTime + "\t" + item.RobotWxName);
                if (RobotWxid == item.RobotWxid)
                {
                    Console.WriteLine("OK!");
                    RobotFound = true;
                    break;
                }
            }
            if (RobotFound == false)
            {
                Console.WriteLine("指定的机器人未找到,程序无法继续执行!");
                Console.ReadLine();
                return;
            }
        }
示例#7
0
        private static void CheckRoom()
        {
            Console.WriteLine("检测指定的群......");
            var roomList = AirCatApi.GetRoomListData(RobotWxid, "", "");

            foreach (var room in roomList.Rooms)
            {
                Console.WriteLine(room.RoomWxid + "\t" + room.RoomName);
                if (RoomWxid == room.RoomWxid)
                {
                    Console.WriteLine("OK!");
                    RoomFound = true;
                    //break;
                }
            }
            if (RoomFound == false)
            {
                Console.WriteLine("指定的群未找到,程序无法继续执行!");
                Console.ReadLine();
                return;
            }
        }
示例#8
0
        private void CommandRun(Boolean ClassData)
        {
            serverMessage.Text = "";

            AirCatApi airCatApi = new AirCatApi();
            Type      type      = airCatApi.GetType();

            MethodInfo[] methods = type.GetMethods();

            String CommnadRun = CobmoxCommands.SelectedValue.ToString();

            if (ClassData == true)
            {
                CommnadRun += "Data";
            }

            List <String> CommandList = new List <string>();

            foreach (MethodInfo method in methods)
            {
                if (method.IsStatic == false)
                {
                    continue;
                }
                //if (method.ReturnParameter.ParameterType.Name != "String") continue;

                if (method.Name == CommnadRun)
                {
                    ParameterInfo[] parameterInfos = method.GetParameters();
                    object[]        obj            = new object[parameterInfos.Length];
                    for (int j = 0; j < parameterInfos.Length; j++)
                    {
                        TextBox textBox = this.FindName(parameterInfos[j].Name) as TextBox;
                        if (textBox != null)
                        {
                            obj[j] = textBox.Text;
                        }
                        else
                        {
                            ComboBox comboBox = this.FindName(parameterInfos[j].Name) as ComboBox;
                            if (comboBox != null)
                            {
                                foreach (ComboBoxItem item in comboBox.Items)
                                {
                                    if (item.IsSelected == true)
                                    {
                                        obj[j] = item.Content.ToString();
                                        break;
                                    }
                                }
                            }
                        }
                    }
                    object message = "";
                    try
                    {
                        message = method.Invoke(airCatApi, obj);
                        String json = message.ToString();
                        if (json == "")
                        {
                            return;
                        }
                        if (json.Substring(0, 1) == "[")
                        {
                            serverMessage.Text = JArray.Parse(message.ToString()).ToString(Newtonsoft.Json.Formatting.Indented);
                        }
                        else
                        {
                            serverMessage.Text = JObject.Parse(message.ToString()).ToString(Newtonsoft.Json.Formatting.Indented);
                        }

                        //获取登陆微信列表
                        if (CommnadRun == "GetRobotList")
                        {
                            robotWxidList.Clear();
                            JObject jObject = JObject.Parse(message.ToString());
                            JArray  jArray  = JArray.Parse(jObject["Robots"].ToString());
                            foreach (var item in jArray)
                            {
                                JObject j = JObject.Parse(item.ToString());
                                robotWxidList.Add(j["RobotWxid"].ToString());
                            }
                        }

                        //获取群列表
                        if (CommnadRun == "GetRoomList")
                        {
                            JObject jObject   = JObject.Parse(message.ToString());
                            string  robotWxid = jObject["RobotWxid"].ToString();

                            //查找群列表中的数据
                            List <String> rooms = new List <string>();
                            foreach (var item in roomList)
                            {
                                if (item.Key == robotWxid)
                                {
                                    rooms = item.Value;
                                    break;
                                }
                            }

                            JArray jArray = JArray.Parse(jObject["Rooms"].ToString());
                            foreach (var item in jArray)
                            {
                                JObject j        = JObject.Parse(item.ToString());
                                string  roomWxid = j["RoomWxid"].ToString();

                                Boolean roomExist = false;
                                foreach (var room in rooms)
                                {
                                    if (room == roomWxid)
                                    {
                                        roomExist = true;
                                        break;
                                    }
                                }
                                if (roomExist == false)
                                {
                                    rooms.Add(roomWxid);
                                }
                            }
                            roomList[robotWxid] = rooms;
                        }
                    }
                    catch (Exception ex)
                    {
                        serverMessage.Text = message.ToString();
                        MessageBox.Show(ex.Message + ex.StackTrace);
                    }
                    return;
                }
            }
        }
示例#9
0
        private void CobmoxCommands_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            CommandParams.Children.Clear();
            CommandParams.Orientation = Orientation.Vertical;
            ComboBox comboBox = (ComboBox)sender;

            //检查参数
            AirCatApi airCatApi = new AirCatApi();
            Type      type      = airCatApi.GetType();

            MethodInfo[] methods = type.GetMethods();

            foreach (MethodInfo method in methods)
            {
                if (method.IsStatic == false)
                {
                    continue;
                }
                if (method.ReturnParameter.ParameterType.Name != "String")
                {
                    continue;
                }


                //if (method.ReturnParameter.) continue;
                if (method.Name == comboBox.SelectedValue.ToString())
                {
                    Grid grid = new Grid();
                    // grid.ShowGridLines = true;
                    ColumnDefinition columnDefinition1 = new ColumnDefinition();
                    columnDefinition1.Width = GridLength.Auto;
                    ColumnDefinition columnDefinition2 = new ColumnDefinition();
                    grid.ColumnDefinitions.Add(columnDefinition1);
                    grid.ColumnDefinitions.Add(columnDefinition2);

                    TextBlock_ApiComments.Text       = ("名称:" + method.Name + ((ApiCommentAttribute)method.GetCustomAttribute(typeof(ApiCommentAttribute))).ApiComment).Trim();
                    TextBlock_ApiComments.Visibility = Visibility.Visible;

                    ParameterInfo[] parameterInfos = method.GetParameters();
                    for (int i = 0; i < parameterInfos.Length; i++)
                    {
                        RowDefinition rowDefinition = new RowDefinition();
                        grid.RowDefinitions.Add(rowDefinition);
                    }

                    for (int i = 0; i < parameterInfos.Length; i++)
                    {
                        TextBlock textBlock = new TextBlock();
                        textBlock.Text    = parameterInfos[i].Name;
                        textBlock.Padding = new Thickness(3);
                        textBlock.Margin  = new Thickness(3);
                        grid.Children.Add(textBlock);
                        Grid.SetRow(textBlock, i);
                        Grid.SetColumn(textBlock, 0);


                        ComboBox comboBox2 = this.FindName(parameterInfos[i].Name) as ComboBox;
                        if (comboBox2 != null)
                        {
                            CommandParams.UnregisterName(parameterInfos[i].Name);
                        }

                        TextBox textBox2 = this.FindName(parameterInfos[i].Name) as TextBox;
                        if (textBox2 != null)
                        {
                            CommandParams.UnregisterName(parameterInfos[i].Name);
                        }

                        if (parameterInfos[i].Name == "FileName")
                        {
                            StackPanel stackPanel = new StackPanel();
                            TextBox    textBox    = new TextBox();
                            textBox.Name       = parameterInfos[i].Name;
                            textBox.Padding    = new Thickness(3);
                            textBox.Margin     = new Thickness(3);
                            textBox.IsReadOnly = true;
                            CommandParams.RegisterName(parameterInfos[i].Name, textBox);
                            stackPanel.Children.Add(textBox);

                            Button button = new Button();
                            button.Content = "浏览";
                            button.Click  += Button_Click1;
                            button.Tag     = parameterInfos[i].Name;
                            stackPanel.Children.Add(button);

                            grid.Children.Add(stackPanel);
                            Grid.SetRow(stackPanel, i);
                            Grid.SetColumn(stackPanel, 1);
                        }
                        else
                        {
                            if (parameterInfos[i].Name == "RobotWxid")
                            {
                                //登陆的用户列表
                                ComboBox comboBox1 = new ComboBox();
                                comboBox1.Name              = parameterInfos[i].Name;
                                comboBox1.Padding           = new Thickness(3);
                                comboBox1.Margin            = new Thickness(3);
                                comboBox1.SelectionChanged += ComboBox1_SelectionChanged;
                                comboBox1.SelectedIndex     = 0;

                                foreach (String item in robotWxidList)
                                {
                                    ComboBoxItem comboBoxItem = new ComboBoxItem();
                                    comboBoxItem.Content = item;

                                    if (selectedRobotWxid == item)
                                    {
                                        comboBoxItem.IsSelected = true;
                                    }

                                    comboBox1.Items.Add(comboBoxItem);
                                }

                                grid.Children.Add(comboBox1);
                                Grid.SetRow(comboBox1, i);
                                Grid.SetColumn(comboBox1, 1);
                                CommandParams.RegisterName(parameterInfos[i].Name, comboBox1);
                            }
                            //else if (parameterInfos[i].Name == "GetRoomList")
                            //{

                            //}
                            else
                            {
                                TextBox textBox = new TextBox();
                                textBox.Name    = parameterInfos[i].Name;
                                textBox.Padding = new Thickness(3);
                                textBox.Margin  = new Thickness(3);

                                if (parameterInfos[i].Name == "RoomWxid")
                                {
                                    textBox.Text = DefaultRoomWxid;
                                }
                                else if (parameterInfos[i].Name == "Wxid")
                                {
                                    textBox.Text = DefaultContractWxid;
                                }
                                else if (parameterInfos[i].Name == "AtWxid")
                                {
                                    textBox.Text = DefaultContractWxid;
                                }
                                grid.Children.Add(textBox);
                                Grid.SetRow(textBox, i);
                                Grid.SetColumn(textBox, 1);
                                CommandParams.RegisterName(parameterInfos[i].Name, textBox);
                            }
                        }
                    }
                    CommandParams.Children.Add(grid);
                }
            }
        }
示例#10
0
        private static void SendContractMsg()
        {
            Console.WriteLine("加载要发送的消息......");
            LoadMsg();

            Console.WriteLine("开始发送消息......");
            foreach (var item in msgList)
            {
                //发送消息之前,先延时(秒);
                Console.WriteLine("延时:" + item.Item2);

                int currentLineCursor = Console.CursorTop;

                //发送的时间
                DateTime sendTime = DateTime.Now.AddSeconds(item.Item2);
                while (sendTime > DateTime.Now)
                {
                    Console.Write((sendTime - DateTime.Now).Seconds.ToString());
                    Thread.Sleep(100);
                    Console.SetCursorPosition(0, Console.CursorTop);
                    Console.Write(new string(' ', Console.WindowWidth));
                    Console.SetCursorPosition(0, currentLineCursor);
                }
                String result = "";
                switch (item.Item3)
                {
                case ENUM_MSG_TYPE.TEXT:
                    Console.WriteLine("发送文本消息:" + item.Item1.ToString());
                    AirCatApi.SendContractText(RobotWxid, ContractWxid, item.Item1.ToString());
                    break;

                case ENUM_MSG_TYPE.IMAG:
                    Console.WriteLine("发送图片消息:" + item.Item1.ToString());
                    AirCatApi.SendContractImage(RobotWxid, ContractWxid, item.Item1.ToString());
                    break;

                case ENUM_MSG_TYPE.LINK:
                    Console.WriteLine("发送链接消息:" + item.Item1.ToString());
                    JObject jObject   = (JObject)(item.Item1);
                    String  title     = jObject["Title"].ToString();
                    String  text      = jObject["Text"].ToString();
                    String  targetUrl = jObject["TargetUrl"].ToString();
                    String  imgUrl    = jObject["ImgUrl"].ToString();
                    String  icoUrl    = jObject["IcoUrl"].ToString();
                    AirCatApi.SendContractLink(RobotWxid, ContractWxid, title, text, targetUrl, imgUrl, icoUrl);
                    break;

                case ENUM_MSG_TYPE.FILE:
                    Console.WriteLine("发送文件:" + item.Item1.ToString());
                    AirCatApi.SendContractFile(RobotWxid, ContractWxid, item.Item1.ToString());
                    break;

                case ENUM_MSG_TYPE.EMOJI:
                    Console.WriteLine("发送文件:" + item.Item1.ToString());
                    AirCatApi.SendContractEmoji(RobotWxid, ContractWxid, item.Item1.ToString());
                    break;

                case ENUM_MSG_TYPE.VEDIO:
                    Console.WriteLine("发送文件:" + item.Item1.ToString());
                    result = AirCatApi.SendContractVideo(RobotWxid, ContractWxid, item.Item1.ToString());
                    break;

                default:
                    break;
                }
                Console.WriteLine(result);
            }

            Console.WriteLine("发送完毕!");
        }