• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C# OSAEMethod类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C#中OSAEMethod的典型用法代码示例。如果您正苦于以下问题:C# OSAEMethod类的具体用法?C# OSAEMethod怎么用?C# OSAEMethod使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



OSAEMethod类属于命名空间,在下文中一共展示了OSAEMethod类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。

示例1: ProcessCommand

        public void ProcessCommand(OSAEMethod method)
        {
            osae.AddToLog("Received command: " + method.MethodName, false);
            if (method.MethodName == "TWEET")
            {
                SendTweet(osae.PatternParse(method.Parameter1));
            }
            else if (method.MethodName == "AUTHENTICATE")
            {
                string pin = osae.GetObjectPropertyValue(_pname, "Pin").Value;

                if (pin != "")
                {
                    osae.AddToLog("Found pin: " + pin + ". Attempting to authorize", true);
                    try
                    {
                        // Now that the application's been authenticated, let's get the (permanent)
                        // token and secret token that we'll use to authenticate from now on.
                        _oAuth.AccessTokenGet(_oAuth.OAuthToken, pin.Trim());
                        osae.ObjectPropertySet(_pname, "Token", _oAuth.Token);
                        osae.ObjectPropertySet(_pname, "Token Secret", _oAuth.TokenSecret);
                        osae.ObjectPropertySet(_pname, "Auth Token", _oAuth.OAuthToken);
                        osae.AddToLog("Success! You're ready to start tweeting!", true);
                    }
                    catch (Exception ex)
                    {
                        osae.AddToLog("An error occurred during authorization:\n\n" + ex.Message, true);
                    }
                }
                else
                {
                    osae.AddToLog("No pin found.  Please enter the pin from twitter into the Twitter object property.", true);
                }
            }
        }
开发者ID:nacker90,项目名称:Open-Source-Automation,代码行数:35,代码来源:Twitter.cs


示例2: ProcessCommand

        public override void ProcessCommand(OSAEMethod method)
        {
            Log.Debug("Received command: " + method.MethodName);
            if (method.MethodName == "TWEET")
                SendTweet(Common.PatternParse(method.Parameter1));
            else if (method.MethodName == "AUTHENTICATE")
            {
                string pin = OSAEObjectPropertyManager.GetObjectPropertyValue(pName, "Pin").Value;

                if (pin != "")
                {
                    Log.Info("Found pin: " + pin + ". Attempting to authorize");
                    try
                    {
                        // Now that the application's been authenticated, let's get the (permanent)
                        // token and secret token that we'll use to authenticate from now on.
                        _oAuth.AccessTokenGet(_oAuth.OAuthToken, pin.Trim());
                        OSAEObjectPropertyManager.ObjectPropertySet(pName, "Token", _oAuth.Token, pName);
                        OSAEObjectPropertyManager.ObjectPropertySet(pName, "Token Secret", _oAuth.TokenSecret, pName);
                        OSAEObjectPropertyManager.ObjectPropertySet(pName, "Auth Token", _oAuth.OAuthToken, pName);
                        this.Log.Info("Success! You're ready to start tweeting!");
                    }
                    catch (Exception ex)
                    { Log.Error("An error occurred during authorization", ex); }
                }
                else
                    Log.Info("No pin found.  Please enter the pin from twitter into the Twitter object property.");
            }
        }
开发者ID:opensourceautomation,项目名称:Open-Source-Automation,代码行数:29,代码来源:Twitter.cs


示例3: ProcessCommand

        //private System.Timers.Timer Clock;




        public override void ProcessCommand(OSAEMethod method)
        {
            //System.Data.DataRow row = table.Rows[0];
            //logging.AddToLog("Found Command: " + row["method_name"].ToString() + " | param1: " + row["parameter_1"].ToString() + " | param2: " + row["parameter_1"].ToString(), false);

            //XBMCSystem s = getXBMCSystem(row["object_name"].ToString());
            //if (s != null)
            //{
            //    switch (row["method_name"].ToString())
            //    {
            //        case "VPLAYPAUSE":
            //            s.Connection.Player.PlayPause();
            //            break;
            //        case "VSTOP":
            //            s.Connection.Player.Stop();
            //            break;
            //        case "VBIGSKIPFORWARD":
            //            s.Connection.Player.BigSkipForward();
            //            break;
            //        case "VBIGSKIPBACK":
            //            s.Connection.Player.BigSkipBackward();
            //            break;
            //    }
            //}

        }
开发者ID:jesszgc,项目名称:Open-Source-Automation,代码行数:31,代码来源:XBMC.cs


示例4: ProcessCommand

        public override void ProcessCommand(OSAEMethod method)
        {
            logging.AddToLog("Process command: " + method.MethodName, false);

            switch (method.MethodName)
            {
                case "SET TEMPORARY COOL":
                    ThermostatLib.ThermostatInfo.SetTemporaryCool(method.Address, Double.Parse(method.Parameter1));
                    break;

                case "SET TEMPORARY HEAT":
                    ThermostatLib.ThermostatInfo.SetTemporaryHeat(method.Address, Double.Parse(method.Parameter1));
                    break;

                case "SET HOLD":
                    ThermostatLib.ThermostatInfo.SetHold(method.Address, true);
                    break;

                case "REMOVE HOLD":
                    ThermostatLib.ThermostatInfo.SetHold(method.Address, false);
                    break;

                case "REBOOT":
                    ThermostatLib.SystemInfo.Reboot(method.Address);
                    break;

                case "SET LED":
                    ThermostatLib.SystemInfo.SetLED(method.Address, method.Parameter1);
                    break;
            }
        }
开发者ID:just8,项目名称:Open-Source-Automation,代码行数:31,代码来源:RadioThermostat.cs


示例5: ProcessCommand

        /// <summary>
        /// A Command to be processed bu the plugin
        /// </summary>
        /// <param name="method"></param>
        public override void ProcessCommand(OSAEMethod method)
        {
            try
            {
                string script = "";

                int scriptId;
                if (int.TryParse(method.Parameter1, out scriptId))
                {
                    script = OSAEScriptManager.GetScript(method.Parameter1);
                }
                else
                {
                    script = OSAEScriptManager.GetScriptByName(method.Parameter1);
                }

                logging.AddToLog("running script: " + script, false);

                if(!string.IsNullOrEmpty(script))
                {
                    RunScript(script, method);
                }
            }
            catch (Exception exc)
            {
                logging.AddToLog("Error Processing Command: " + exc.Message, true);
            }
        }
开发者ID:jesszgc,项目名称:Open-Source-Automation,代码行数:32,代码来源:PowerShellPlugin.cs


示例6: ProcessCommand

        /// <summary>
        /// A Command to be processed bu the plugin
        /// </summary>
        /// <param name="method"></param>
        public override void ProcessCommand(OSAEMethod method)
        {
            try
            {
                string script = "";

                int scriptId;
                if (int.TryParse(method.Parameter1, out scriptId))
                {
                    script = OSAEScriptManager.GetScript(method.Parameter1);
                }
                else
                {
                    script = OSAEScriptManager.GetScriptByName(method.Parameter1);
                }

                this.Log.Debug("running script: " + script);

                if(!string.IsNullOrEmpty(script))
                {
                    RunScript(script, method);
                }
            }
            catch (Exception exc)
            {
                this.Log.Error("Error Processing Command ", exc);
            }
        }
开发者ID:rajeshwarn,项目名称:Open-Source-Automation,代码行数:32,代码来源:PowerShellPlugin.cs


示例7: ProcessCommand

        public override void ProcessCommand(OSAEMethod method)
        {
            this.Log.Debug("Found Command: " + method.MethodName + " | param1: " + method.Parameter1 + " | param2: " + method.Parameter2);

            XBMCSystem s = getXBMCSystem(method.ObjectName);
            if (s != null)
            {
                switch (method.MethodName)
                {
                    case "VPLAYPAUSE":
                        s.xbmcSystem.Player.PlayPause();
                        break;
                    case "VSTOP":
                        s.xbmcSystem.Player.Stop();
                        break;
                    case "VBIGSKIPFORWARD":
                        s.xbmcSystem.Player.Seek2(0,Player.Seekvalue.bigforward);
                        break;
                    case "VBIGSKIPBACK":
                        s.xbmcSystem.Player.Seek2(0, Player.Seekvalue.bigbackward);
                        break;
                }
            }

        }
开发者ID:matthewste,项目名称:Open-Source-Automation,代码行数:25,代码来源:XBMC.cs


示例8: ProcessCommand

        public override void ProcessCommand(OSAEMethod method)
        {
            // COSMUPDATER.Run Method.RELOADITEMS

            switch (method.MethodName.ToUpper())
            {
                case "OFF":
                    logging.AddToLog("COSMUpdater Stopped", true);
                    enabled = false;
                    break;
                case "ON":
                    logging.AddToLog("COSMUpdater Started", true);
                    enabled = true;
                    break;
                case "WRITEDATA":
                    logging.AddToLog("COSMUpdater DataWrite Forced", true);
                    WriteData();
                    break;
                case "RELOADITEMS":
                    logging.AddToLog("COSMUpdater ReloadItems", true);
                    GetCurrentList();
                    break;
                default:
                    logging.AddToLog(string.Format("COSMUpdater got method of {0} but it is not implemented", method.MethodName), true);
                    break;
            }
        }
开发者ID:just8,项目名称:Open-Source-Automation,代码行数:27,代码来源:COSMUpdater.cs


示例9: ProcessCommand

        public override void ProcessCommand(OSAEMethod method)
        {
            try {
                string object_name = method.ObjectName;
                string method_name = method.MethodName;
                string parameter_1 = method.Parameter1;
                string parameter_2 = method.Parameter2;

                Log.Debug("Found Command: " + method_name + " | param1: " + parameter_1 + " | param2: " + parameter_2);

                if (object_name == pName)
                {
                    switch (method_name)
                    {
                        case "NOTIFYALL":
                            Log.Debug("NOTIFYALL event triggered");
                            Log.Debug("NOTIFYALL devices to loop:" + mdevices.Count);

                            foreach (AndroidDevice d in mdevices)
                            {
                                Log.Debug("NOTIFYALL loop for device:" + d.Name);
                                d.ProcessCommand("NOTIFY", parameter_1, parameter_2);
                            }

                            break;

                        case "EXECUTEALL":
                            Log.Debug("EXECUTEALL event triggered");
                            Log.Debug("EXECUTEALL devices to loop:" + mdevices.Count);

                            foreach (AndroidDevice d in mdevices)
                            {
                                Log.Debug("EXECUTEALL loop for device:" + d.Name);
                                d.ProcessCommand("EXECUTE", parameter_1, parameter_2);
                            }
                            break;
                    }
                }
                else
                {
                    AndroidDevice d = getAndroidDevice(object_name);

                    if (d == null)
                    {
                        OSAEObject obj = OSAEObjectManager.GetObjectByName(object_name);
                        createdevice(obj);
                        d = getAndroidDevice(object_name);
                    }

                    if (d != null)
                        d.ProcessCommand(method_name, parameter_1, parameter_2);

                }
            }
            catch (Exception ex)
            {
                Log.Error("Error processing command!",ex);
            }
        }
开发者ID:opensourceautomation,项目名称:Open-Source-Automation,代码行数:59,代码来源:Android.cs


示例10: LogMethodInformation

 /// <summary>
 /// Logs information about a method found in the Queue
 /// </summary>
 /// <param name="method">The method to log</param>
 private void LogMethodInformation(OSAEMethod method)
 {
     this.Log.Debug("Found method in queue: " + method.MethodName);
     this.Log.Debug("-- object name: " + method.ObjectName);
     this.Log.Debug("-- param 1: " + method.Parameter1);
     this.Log.Debug("-- param 2: " + method.Parameter2);
     this.Log.Debug("-- object owner: " + method.Owner);
 }
开发者ID:joejoewill,项目名称:Open-Source-Automation,代码行数:12,代码来源:OSAEService.HelperCode.cs


示例11: LogMethodInformation

 /// <summary>
 /// Logs information about a method found in the Queue
 /// </summary>
 /// <param name="method">The method to log</param>
 private void LogMethodInformation(OSAEMethod method)
 {
     logging.AddToLog("Found method in queue: " + method.MethodName, false);
     logging.AddToLog("-- object name: " + method.ObjectName, false);
     logging.AddToLog("-- param 1: " + method.Parameter1, false);
     logging.AddToLog("-- param 2: " + method.Parameter2, false);
     logging.AddToLog("-- object owner: " + method.Owner, false);
 }
开发者ID:jberry,项目名称:Open-Source-Automation,代码行数:12,代码来源:OSAEService.HelperCode.cs


示例12: ProcessCommand

        public override void ProcessCommand(OSAEMethod method)
        {
            //Process incomming command
            Log.Debug("Process command: " + method.MethodName);
            Log.Debug("Process parameter1: " + method.Parameter1);
            Log.Debug("Process parameter2: " + method.Parameter2);
            Log.Debug("Address: " + method.Address);

            switch (method.MethodName)
            {
                case "PLAY":
                    if (method.Parameter1.Trim() == string.Empty)
                        sbs.Play(method.Address);
                    else
                        sbs.PlaylistPlay(method.Address, method.Parameter1);
                    OSAEObjectStateManager.ObjectStateSet(OSAEObjectManager.GetObjectByAddress(method.Address).Name, "PLAYING", pName);
                    break;
                case "STOP":
                    sbs.StopPlayer(method.Address);
                    OSAEObjectStateManager.ObjectStateSet(OSAEObjectManager.GetObjectByAddress(method.Address).Name, "STOPPED", pName);
                    break;
                case "NEXT":
                    sbs.Next(method.Address);
                    break;
                case "PREV":
                    sbs.Previous(method.Address);
                    break;
                case "SHOW":
                    sbs.ShowMessage(method.Address, method.Parameter1, Int32.Parse(method.Parameter2));
                    break;
                case "PAUSE":
                    sbs.PausePlayer(method.Address);
                    OSAEObjectStateManager.ObjectStateSet(OSAEObjectManager.GetObjectByAddress(method.Address).Name, "PAUSED", pName);
                    break;
                case "TTS":
                    TextToSpeech(method.Parameter1);
                    sbs.PlaylistPlay(method.Address, ttsPlay);
                    break;
                case "TTSLIST":
                    DataSet list = OSAEObjectPropertyManager.ObjectPropertyArrayGetAll(method.Parameter1, method.Parameter2);
                    string tts = "";
                    int count = 1;
                    foreach(DataRow item in list.Tables[0].Rows)
                    {
                        tts += "  RSS item number " + count.ToString() + ".  " + item["item_name"].ToString();
                        count++;
                    }
                    TextToSpeech(tts);
                    sbs.PlaylistPlay(method.Address, ttsPlay);
                    break;
                case "TTSLISTRAND":
                    string listItem = OSAEObjectPropertyManager.ObjectPropertyArrayGetRandom(method.Parameter1, method.Parameter2);
                    TextToSpeech(listItem);
                    sbs.PlaylistPlay(method.Address, ttsPlay);
                    break;
            }
        }
开发者ID:opensourceautomation,项目名称:Open-Source-Automation,代码行数:57,代码来源:Class1.cs


示例13: ProcessCommand

        /// <summary>
        /// A Command to be processed bu the plugin
        /// </summary>
        /// <param name="method"></param>
        public override void ProcessCommand(OSAEMethod method)
        {
            try
            {
                string script = OSAEScriptManager.GetScript(method.Parameter1);

                logging.AddToLog("running script: " + script, false);

                RunScript(script, method);
            }
            catch (Exception exc)
            {
                logging.AddToLog("Error Processing Command: " + exc.Message, true);
            }
        }
开发者ID:JohnneyBoy,项目名称:Open-Source-Automation,代码行数:19,代码来源:PowerShellPlugin.cs


示例14: ProcessCommand

        public override void ProcessCommand(OSAEMethod method)
        {
            String object_name = method.ObjectName;
            String method_name = method.MethodName;
            String parameter_1 = method.Parameter1;
            String parameter_2 = method.Parameter2;

            log("Found Command: " + method_name + " | param1: " + parameter_1 + " | param2: " + parameter_2, true);

            if (object_name == pName)
            {

                switch (method_name)
                {

                    case "NOTIFYALL":
                        log("NOTIFYALL event triggered", false);

                        log("NOTIFYALL devices to loop:"+mdevices.Count, false);

                        foreach (AndroidDevice d in mdevices)
                        {
                            log("NOTIFYALL loop for device:"+d.Name, false);
                            d.ProcessCommand("NOTIFY", parameter_1, parameter_2);
                        }

                        break;

                }
            }
            else
            {
                AndroidDevice d = getAndroidDevice(object_name);

                if (d == null)
                {
                    OSAEObject obj = OSAEObjectManager.GetObjectByName(object_name);
                    createdevice(obj);
                    d = getAndroidDevice(object_name);
                }

                if (d != null)
                {
                    d.ProcessCommand(method_name, parameter_1, parameter_2);
                }

            }
        }
开发者ID:jesszgc,项目名称:Open-Source-Automation,代码行数:48,代码来源:Android.cs


示例15: ProcessCommand

        public override void ProcessCommand(OSAEMethod method)
        {
            string sMethod = method.MethodName;
            string sParam1 = method.Parameter1;
            string sParam2 = method.Parameter2;

            if (gDebug) Log.Debug("Received Command to: " + sMethod + " (" + sParam1 + ", " + sParam2 + ")");

            if (sMethod == "SENDMESSAGE")
            {
                string sText = Common.PatternParse(sParam1);
                OSAEObjectPropertyManager.ObjectPropertySet(gAppName, "Speaking", "TRUE", gAppName);
                Thread.Sleep(500);
                OSAEObjectPropertyManager.ObjectPropertySet(gAppName, "Speaking", "FALSE", gAppName);
            }
        }
开发者ID:opensourceautomation,项目名称:Open-Source-Automation,代码行数:16,代码来源:OSAPubNub.cs


示例16: ProcessCommand

        public override void ProcessCommand(OSAEMethod method)
        {
            
            String object_name = method.ObjectName;
            String method_name = method.MethodName;
            String parameter_1 = method.Parameter1;
            String parameter_2 = method.Parameter2;
            String mycommand;

            log("Found Command: " + method_name + " | param1: " + parameter_1 + " | param2: " + parameter_2, true);

            if (object_name == pName)
            {
                
                switch (method_name)
                {
                    case "SCAN":
                        //will eventaully try to run a network scan to check if any devices are active on port 40400 or 40500
                        log("Scan event triggered... currently it does nothing ", false);
                        break;
                    case "NOTIFYALL":
                        mycommand = @"msgbox ""OSA"" """ + parameter_1 + @""" " + parameter_2;
                        log("NOTIFYALL event triggered, command to send=" + mycommand, false);

                        foreach (MCDevice d in mcdevices)
                        {
                            d.SendCommand_Network(mycommand);
                        }
                        
                        break;

                }
            }
            else
            {
                MCDevice d = getMCDevice(object_name);
                if (d != null)
                {
                    d.ProcessCommand(method_name, parameter_1, parameter_2);
                    
                }
            }
        }
开发者ID:just8,项目名称:Open-Source-Automation,代码行数:43,代码来源:MediaCenter.cs


示例17: ProcessCommand

        public override void ProcessCommand(OSAEMethod method)
        {
            try
            {
                string[] tmp = method.Parameter1.Split('/');
                server = tmp[0];
                username = tmp[1];
                password = tmp[2];
                string command = method.Parameter2;
                Log.Debug("Sending command: " + command + " | " + server + " | " + username + " | " + password);
                SshExec ssh = new SshExec(server, username, password);
                ssh.Connect();

                string response = ssh.RunCommand(command);
                Log.Debug("Response: " + response);
                ssh.Close();
            }
            catch (Exception ex)
            { Log.Error("Error Sending command", ex); }
        }
开发者ID:opensourceautomation,项目名称:Open-Source-Automation,代码行数:20,代码来源:SSH.cs


示例18: ProcessCommand

        public override void ProcessCommand(OSAEMethod method)
        {
            try
            {
                //basically just need to send parameter two to the contact in parameter one with sendMessage();
                //Process incomming command
                string to = "";
                if (gDebug) Log.Debug("Process command: " + method.MethodName);
                if (gDebug) Log.Debug("Message: " + method.Parameter2);
                OSAEObjectProperty prop = OSAEObjectPropertyManager.GetObjectPropertyValue(method.Parameter1, "JabberID");

                if(prop != null)
                    to = prop.Value;
                else
                    to = method.Parameter1;

                if (to == "") to = method.Parameter1;

                if (gDebug) Log.Debug("To: " + to);

                switch (method.MethodName)
                {
                    case "SEND MESSAGE":
                        sendMessage(Common.PatternParse(method.Parameter2), to);
                        break;

                    case "SEND QUESTION":
                        Ask_Question(to);
                        break;

                    case "SEND FROM LIST":
                        string speechList = method.Parameter2.Substring(0,method.Parameter2.IndexOf(","));
                        string listItem = method.Parameter2.Substring(method.Parameter2.IndexOf(",") + 1, method.Parameter2.Length - (method.Parameter2.IndexOf(",")+ 1));
                        if (gDebug) Log.Debug("List = " + speechList + "   Item=" + listItem);
                        sendMessage(Common.PatternParse(OSAEObjectPropertyManager.ObjectPropertyArrayGetRandom(speechList, listItem)), to);
                        break;
                }
            }
            catch (Exception ex)
            { Log.Error("Error in ProcessCommand!", ex); }
        }
开发者ID:VeronicaMartin,项目名称:Open-Source-Automation,代码行数:41,代码来源:Jabber.cs


示例19: ProcessCommand

        public override void ProcessCommand(OSAEMethod method)
        {
            try
            {
                string[] tmp = method.Parameter1.Split('/');
                server = tmp[0];
                username = tmp[1];
                password = tmp[2];
                string command = method.Parameter2;
                logging.AddToLog("Sending command: " + command + " | " + server + " | " + username + " | " + password, false);
                SshExec ssh = new SshExec(server, username, password);
                ssh.Connect();

                string response = ssh.RunCommand(command);
                logging.AddToLog("Response: " + response, false);
                ssh.Close();
            }
            catch (Exception ex)
            {
                logging.AddToLog("Error Sending command - " + ex.Message + " -" + ex.InnerException, true);
            }
        }
开发者ID:joejoewill,项目名称:Open-Source-Automation,代码行数:22,代码来源:SSH.cs


示例20: ProcessCommand

        public override void ProcessCommand(OSAEMethod method)
        {
            try
            {
                //basically just need to send parameter two to the contact in parameter one with sendMessage();
                //Process incomming command
                string to = "";
                this.Log.Debug("Process command: " + method.MethodName);
                this.Log.Debug("Message: " + method.Parameter2);
                OSAEObjectProperty prop = OSAEObjectPropertyManager.GetObjectPropertyValue(method.Parameter1, "JabberID");

                if(prop != null)
                    to = prop.Value;
                else
                    to = method.Parameter1;

                if (to == "")
                    to = method.Parameter1;

                this.Log.Debug("To: " + to);

                switch (method.MethodName)
                {
                    case "SEND MESSAGE":
                        sendMessage(Common.PatternParse(method.Parameter2), to);
                        break;

                    case "SEND FROM LIST":
                        //Speech List here should not be hard coded, but I understand we only have 2 parameters to work with...
                        sendMessage(Common.PatternParse(OSAEObjectPropertyManager.ObjectPropertyArrayGetRandom("Speech List", method.Parameter2)), to);
                        break;
                }
            }
            catch (Exception ex)
            {
                this.Log.Error("Error processing command ", ex);
            }
        }
开发者ID:robbyrhaynes,项目名称:Open-Source-Automation,代码行数:38,代码来源:Jabber.cs



注:本文中的OSAEMethod类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C# OSD类代码示例发布时间:2022-05-24
下一篇:
C# OS类代码示例发布时间:2022-05-24
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap