Esempio n. 1
0
        private isRock.LineBot.MessageBase ProcessCommand(Event LineEvent)
        {
            var language        = LineEvent.message.text.Trim().Replace("/翻成", "");
            var SupportLanguage = MyFun.Languagelist();
            var ret             = from c in SupportLanguage
                                  where c.Key == language
                                  select c;

            if (ret.Count() > 0)
            {
                SetState(LineEvent.source.userId, ret.FirstOrDefault().Value);
                var ResponseMsg = new isRock.LineBot.TextMessage($"好的,後面你輸入的句子我會開始翻譯成{ret.FirstOrDefault().Key},如要停止翻譯 /停止翻譯");
                return(ResponseMsg);
            }
            else
            {
                var ResponseMsg = new isRock.LineBot.TextMessage($"喔喔,我還認不得你要的語言 - {language}");
                return(ResponseMsg);
            }
        }
Esempio n. 2
0
        public IActionResult Post()
        {
            var AdminUserId = "U8dd73688cf9bd43782e74083c6c372f7";

            try
            {
                //設定ChannelAccessToken
                this.ChannelAccessToken = _lineBotConfig.accessToken;
                //取得Line Event

                var LineEvent = this.ReceivedMessage.events.FirstOrDefault();
                //配合Line verify
                if (LineEvent == null)
                {
                    return(Ok());
                }
                if (LineEvent.replyToken == "00000000000000000000000000000000")
                {
                    return(Ok());
                }
                var responseMsg = "";
                //準備回覆訊息
                if (LineEvent.type.ToLower() == "message")
                {
                    if (LineEvent.message.type == "text")
                    {
                        //GoogleShee.SaveMsg(LineEvent.message.text);
                        var ImgTemplist = MyFun.ImgTemplist();
                        if (LineEvent.message.text.StartsWith("/"))
                        {
                            if (LineEvent.message.text == "/help")
                            {
                                responseMsg = "目前可用關鍵字" + Environment.NewLine + string.Join(Environment.NewLine, ImgTemplist.Select(x => x.Key)) + Environment.NewLine + "/選單" + Environment.NewLine + "/翻成XX" + Environment.NewLine + "/語系";
                                this.ReplyMessage(LineEvent.replyToken, responseMsg);
                            }
                            else if (LineEvent.message.text == "/選單")
                            {
                                var actions = new List <TemplateActionBase>();
                                actions.Add(new MessageAction() //MessageAction
                                {
                                    label = "倒了",
                                    text  = "已經倒了"
                                });
                                actions.Add(new MessageAction() //MessageAction
                                {
                                    label = "快倒了",
                                    text  = "看來是快要倒了"
                                });
                                actions.Add(new MessageAction() //MessageAction
                                {
                                    label = "命不久已",
                                    text  = "唉唉唉"
                                });
                                var btn = new isRock.LineBot.ButtonsTemplate
                                {
                                    title             = "公司倒了嗎",
                                    text              = "我只是想問公司的情況",
                                    thumbnailImageUrl = new Uri("https://i.imgur.com/mm1JcL0.jpg"),
                                    actions           = actions
                                };
                                this.ReplyMessage(LineEvent.replyToken, btn);
                                //return Ok();
                            }
                            else if (LineEvent.message.text == "/語系")
                            {
                                var Languagelist = MyFun.Languagelist().Select(x => x.Key);
                                responseMsg = "目前可翻譯語系" + Environment.NewLine + string.Join(Environment.NewLine, Languagelist);
                                this.ReplyMessage(LineEvent.replyToken, responseMsg);
                            }
                            else if (LineEvent.message.text.StartsWith("/翻成"))
                            {
                                var response = ProcessCommand(LineEvent);
                                if (response != null)
                                {
                                    this.ReplyMessage(LineEvent.replyToken, response);
                                }
                            }
                            else if (LineEvent.message.text == "/停止翻譯")
                            {
                                SetState(LineEvent.source.userId, "");
                                responseMsg = "好的,已停止翻譯";
                                this.ReplyMessage(LineEvent.replyToken, responseMsg);
                            }
                            else
                            {
                                var ImgTemp = ImgTemplist.Where(x => x.Key == LineEvent.message.text).FirstOrDefault();
                                if (ImgTemp != null)
                                {
                                    this.ReplyMessage(LineEvent.replyToken, ImgTemp.uri);
                                }
                                //responseMsg = $"你說了: {LineEvent.message.text}";
                            }
                        }
                        else
                        {
                            var MSTranslator = _MSTranslatorlist.Where(x => x.ID == LineEvent.source.userId).FirstOrDefault();
                            if (MSTranslator != null && !string.IsNullOrEmpty(MSTranslator.language))
                            {
                                MSTranslatorUtility.MSTranslatorTextKey = _lineBotConfig.MSTranslatorTextKey;
                                var result = MSTranslatorUtility.Translate(LineEvent.message.text.Trim(), GetState(LineEvent.source.userId));
                                this.ReplyMessage(LineEvent.replyToken, result.FirstOrDefault().translations.FirstOrDefault().text);
                            }
                        }
                    }
                    else if (LineEvent.message.type == "image")
                    {
                    }
                    else
                    {
                        //this.ReplyMessage(LineEvent.replyToken, 11538, 51626501);
                    }
                }
                else
                {
                    //responseMsg = $"收到 event : {LineEvent.type} ";
                }
                //回覆訊息
                //this.ReplyMessage(LineEvent.replyToken, responseMsg);
                //response OK
                return(Ok());
            }
            catch (Exception ex)
            {
                //回覆訊息
                this.PushMessage(AdminUserId, "發生錯誤:\n" + ex.Message);
                //response OK
                return(Ok());
            }
        }