Exemple #1
0
        // ユーザのリアクション
        protected override async Task OnMessageReactionActivityAsync(ITurnContext <IMessageReactionActivity> turnContext, System.Threading.CancellationToken cancellationToken)
        {
            ChannelAccount user = turnContext.Activity.From;

            WordBook yourWb = WordBooks.getYourBook(user);//userのwordbookを取得

            yourWb.receiveReaction(turnContext, cancellationToken, _clientFactory).Wait();
        }
Exemple #2
0
        protected override async Task OnMessageActivityAsync(ITurnContext <IMessageActivity> turnContext, CancellationToken cancellationToken)
        {
            var message = turnContext.Activity.RemoveRecipientMention();//message that mention deleted

            string[]       mlist = message.Split(" ");
            ChannelAccount user  = turnContext.Activity.From;//メッセージを送ってきたuser

            Debug.WriteLine(turnContext.Activity.From);
            if (mlist[0] == "word")
            {
                WordBook yourWb = WordBooks.getYourBook(user);//userのwordbookを取得
                yourWb.receiveMessage(turnContext, cancellationToken, _clientFactory).Wait();
            }

            else if (message.Contains("echo"))//echobot
            {
                await turnContext.SendActivityAsync(MessageFactory.Text(message, message), cancellationToken);
            }
        }
        /// //////////////////////////////////////////////////////////////////////////
        //wordコマンドに対していろいろするクラス word **** **** て感じのめっそっど
        public async Task receiveWordMessage(ITurnContext <IMessageActivity> turnContext, CancellationToken cancellationToken, IHttpClientFactory clientFactory)
        {
            updateContextToken(turnContext, cancellationToken, clientFactory);//各情報の更新
            if (getMessageSplit().Length == 1)
            {
                reply("wordの後にスペース入れてそのあとにメッセージを入れてほしいな").Wait();
            }
            else if (getMessageSplit()[1] == "pic")
            {                            //画像入力
                addWordFromPic().Wait(); //画像受け取ったらtemp単語を登録
            }
            else if (getMessageSplit()[1] == "ranking")
            {
                int i = WordBooks.getRanking(lc.getLevel(), lc.getExp());
                reply("あなたは世界ランキング" + i + "位です").Wait();
            }
            else if (getMessageSplit()[1] == "status")
            {
                reply(lc.getInfo()).Wait();
            }
            else if (getMessageSplit()[1] == "list")
            {
                try
                {
                    if (getMessageSplit()[2] == "word")//temp一覧を表示
                    {
                        reply(words.indexWords()).Wait();
                    }
                    else if (getMessageSplit()[2] == "temp")
                    {
                        foreach (Word w in words.getTempWords())//words一覧を表示
                        {
                            reply(w.ToString()).Wait();
                        }
                    }
                }
                catch
                {
                    reply("存在しないコマンドです。helpコマンドで確認してください").Wait();
                }
            }
            else if (getMessageSplit()[1] == "check") //picのチェック
            {
                checkAWordFromTemp().Wait();          //tempワードから一つ取り出して単語帳に追加するかユーザに問う
            }

            else if (getMessageSplit()[1] == "test")
            {
                testWord().Wait();
            }
            else if (getMessageSplit()[1] == "ans")
            {
                if (getState() == "asking")
                {
                    try//ユーザが答えを指定してきたとき
                    {
                        String ans = getMessageSplit()[2];
                        if (askingWord.jap == ans)
                        {
                            success();
                        }
                        else
                        {
                            miss();
                        }
                    }
                    catch
                    {
                        reply(askingWord.eng + "の意味は…" + askingWord.jap + "でした!わかりましたか?").Wait();
                    }
                }
            }
            //新規単語追加
            else if (getMessageSplit()[1] == "add")
            {
                Debug.WriteLine("word add");
                String eng = getMessageSplit()[2];
                String jap = getMessageSplit()[3];
                if (words.addNewWord(eng, jap))
                {
                    reply(eng + ":" + jap + "は追加されました").Wait();
                }
                else
                {
                    reply(eng + "という単語は既に存在しています").Wait();
                }
            }

            //csv取得
            else if (getMessageSplit()[1] == "tocsv")
            {
                reply(words.getCsvStr()).Wait();
            }

            else
            {
                reply("コマンドが間違っています。helpコマンドで確認してください。変なスペースがまぎれてないかチェックしてください").Wait();
            }
        }