Exemplo n.º 1
0
        public static string SelectClassTableImg(UserRequest userrequest)
        {
            string path = root + BufferSubdirectory.ClassTable + "/" + userrequest.FromUserName;

            if (System.IO.File.Exists(path))
            {
                ClassTableDrawer drawer = new ClassTableDrawer();
                Stream           stream = drawer.DrawClassTableInStream(userrequest.FromUserName);
                WeChatHttpHelper.GetToken();
                return(userrequest.Get_Img(WeChatHttpHelper.GetMediaID(stream)));
            }
            else
            {
                return(userrequest.Get_Reply(isnotexist(userrequest.FromUserName)));
            }
        }
Exemplo n.º 2
0
        }//信息来源是腾讯才会返回true

        private void task_voicemanager()
        {
            try
            {
                string path = @"C:\Users\Administrator\Desktop\ElearnOralResult\" + WechatRequest.FromUserName;
                if (!Directory.Exists(path))
                {
                    Directory.CreateDirectory(path);
                }
                WeChatHttpHelper.GetToken();
                var bytelist = WeChatHttpHelper.DownloadMedia(WechatRequest.MediaId);
                using (FileStream fs = new FileStream(path + @"\0.amr", FileMode.Create, FileAccess.Write))
                {
                    foreach (var abyte in bytelist)
                    {
                        fs.WriteByte(abyte);
                    }
                    fs.Flush();
                }
                ISEServerAgent.ConvertVideo(path + @"\0.amr");
                using (FileStream fs = new FileStream(path + @"\0.wav", FileMode.Open, FileAccess.Read))
                    using (ISEServerAgent agent = new ISEServerAgent())
                    {
                        agent.Login(System.Web.Configuration.WebConfigurationManager.AppSettings["iflytekKey"]);
                        if (agent.errorCode != (int)ErrorCode.MSP_SUCCESS)
                        {
                            WechatRequest.Save_log("\r\n" + agent.errorCode);
                            return;
                        }
                        agent.TextPut("[content]\r\nIt was two weeks before the Spring Festival.\r\n");
                        agent.AudioWrite(fs);
                        agent.GetAndSaveRemark(path + "\\result.txt");
                    }
            }
            catch (Exception e)
            {
                WechatRequest.Save_log(e.ToString());
            }
        }
Exemplo n.º 3
0
        // GET: WeChat
        public string Index() //回复全都是xml格式的string
        {
            if (IsFromTencent("961016") && Request.HttpMethod == "GET")
            {
                return(Request["echostr"]);
            }
            if (IsFromTencent("961016") && Request.HttpMethod == "POST")
            {
                WechatRequest = new WechatRequest(Request.InputStream);
                #region wechatpost
                if (WechatRequest.IsClick())
                {
                    #region ButtonEvent
                    switch (WechatRequest.EventKey)
                    {
                    case "elearning_wordlearn":
                        return(WechatRequest.Get_Reply(WechatRequest.elearning_wordlearn));

                    case "elearning_textlearn":
                        return(WechatRequest.Get_Reply(WechatRequest.elearning_textlearn));

                    case "elearning_nextword":
                        string nextword = DataBaseController.GetNextWord(WechatRequest.FromUserName);
                        if (nextword != null)
                        {
                            return(WechatRequest.Get_Reply(nextword));
                        }
                        else
                        {
                            return(WechatRequest.Get_Reply("当前未设立测试范围或已经学习完全部内容"));
                        }

                    case "elearning_oraltrain":
                        return(WechatRequest.Get_Reply("It was two weeks before the Spring Festival."));

                    default:
                        return(WechatRequest.Get_Reply("功能还在开发中,敬请期待"));
                    }
                    #endregion
                }
                else if (WechatRequest.IsSubscribe())
                {
                    #region FollowEvent
                    DataBaseController.AddIntoWechatIds(WechatRequest.FromUserName);
                    return(WechatRequest.Get_Reply(WechatRequest.elearn_welcome));

                    #endregion
                }
                else if (WechatRequest.IsVoice())
                {
                    #region VoiceEvent
                    Thread t = new Thread(new ThreadStart(task_voicemanager));
                    t.Start();
                    return(WechatRequest.Get_Reply("提交成功,请等待一段时间后输入Get查看结果!"));

                    #endregion
                }
                else
                {
                    #region MessageEvent
                    string message = WechatRequest.Content;
                    if (Regex.IsMatch(message, "^xh.+"))
                    {
                        DataBaseController.UpdateStudents(WechatRequest.FromUserName, message.Substring(2), null);
                        return(WechatRequest.Get_Reply("学号已修改,现在您绑定的学号为:" + message.Substring(2) + "请输入jwc + 您的教务处密码来绑定,如jwc123456"));
                    }
                    else if (Regex.IsMatch(message, "^jwc.+"))
                    {
                        string studentnum  = DataBaseController.GetStudentNum(WechatRequest.FromUserName);
                        string jwcpassword = message.Substring(3);
                        if (JWCHttpHelper.isPasswordTrue(studentnum, jwcpassword))
                        {
                            DataBaseController.UpdateStudents(WechatRequest.FromUserName, studentnum, jwcpassword);
                            return(WechatRequest.Get_Reply("验证成功!"));
                        }
                        else
                        {
                            return(WechatRequest.Get_Reply($"输入的密码{ jwcpassword }不正确"));
                        }
                    }
                    else
                    {
                        if (Regex.IsMatch(message, "\\d{4,4}"))
                        {
                            if (message.Substring(0, 1) == "0")
                            {
                                if (DataBaseController.tryUpdateProcesses(WechatRequest.FromUserName, message))
                                {
                                    return(WechatRequest.Get_Reply("选择成功!按next开始学习"));
                                }
                                else
                                {
                                    return(WechatRequest.Get_Reply("选择失败,请确认是否绑定学号及输入代码是否正确"));
                                }
                            }
                            else if (message.Substring(0, 1) == "2")
                            {
                                return(WechatRequest.Get_ImgText());
                            }
                        }
                        if (!DataBaseController.HaveBinding(WechatRequest.FromUserName))
                        {
                            return(WechatRequest.Get_Reply(WechatRequest.elearn_welcome));
                        }
                        switch (message)
                        {
                        case "001":
                            return(WechatRequest.Get_Reply(WechatRequest.elearning_testmsg1));

                        case "201":
                            return(WechatRequest.Get_Reply(WechatRequest.elearning_testmsg2));

                        case "speak":
                            string word = DataBaseController.GetNowWord(WechatRequest.FromUserName);
                            if (word == null)
                            {
                                return(WechatRequest.Get_Reply("请先选择学习内容"));
                            }
                            WeChatHttpHelper.GetToken();
                            string mediaid = WeChatHttpHelper.GetMediaID(SpeecherController.mytts("读音:" + word), "voice");
                            return(WechatRequest.Get_Voice(mediaid));

                        case "Get":
                            string path = $@"C:\Users\Administrator\Desktop\ElearnOralResult\{WechatRequest.FromUserName}\result.txt";
                            using (FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read))
                            {
                                StreamReader sr = new StreamReader(fs);
                                return(WechatRequest.Get_Reply(sr.ReadToEnd()));
                            }

                        default:
                            return(WechatRequest.Get_Reply("识别错误,请重试"));
                        }
                    }
                    #endregion
                }
                #endregion
            }
            else//不是腾讯发来的post
            {
                return("Do not touch this server,guy!");
            }
        }