コード例 #1
0
ファイル: LiplisGreet.cs プロジェクト: kknet/LiplisMoonLight
        /// <summary>
        /// あいさつデータからトピックを生成する
        /// </summary>
        /// <returns></returns>
        public MsgTopic CreateGreetTopic(DateTime dt, LiplisTone Tone)
        {
            //ピックアップリスト生成
            List <MsgTopic> PicupList = new List <MsgTopic>();

            //現在時刻作成
            DateTime nowTime    = DateUtil.CreateDatetime(dt.Hour, dt.Minute, dt.Second);
            DateTime dayEndTime = DateUtil.CreateDatetime(23, 59, 59);
            DateTime daySrtTime = DateUtil.CreateDatetime(0, 0, 0);

            foreach (MsgGreet greet in GreetList)
            {
                //日またぎを考慮
                if (greet.SrtTime <= greet.EndTime)
                {
                    //日またがない
                    if (nowTime >= greet.SrtTime && nowTime <= greet.EndTime)
                    {
                        PicupList.Add(greet.GetTopic());
                    }
                }
                else
                {
                    //日またぎ
                    if ((nowTime >= greet.SrtTime && nowTime <= dayEndTime) || (nowTime >= daySrtTime && nowTime <= greet.EndTime))
                    {
                        PicupList.Add(greet.GetTopic());
                    }
                }
            }

            //0以下の場合は適当に返す
            if (PicupList.Count < 1)
            {
                if (GreetList.Count > 0)
                {
                    return(GreetList[0].GetTopic());
                }
                else
                {
                    return(new MsgTopic(Tone, "こんにちは", "こんにちは", 0, 0, false, 0));
                }
            }

            //シャッフルする
            PicupList.Shuffle();

            //選択されたあいさつを返す
            return(PicupList[0]);
        }
コード例 #2
0
        public MsgGreet(LiplisTone Tone, ChatSetting chat, int AllocationId)
        {
            try
            {
                this.message = new MsgTopic(Tone, chat.sentence, chat.sentence, chat.GetEmotion(), chat.GetEmotion(), true, AllocationId);

                //Chatに設定があれば、時間範囲を設定する
                if (chat.rangeStart != "" || chat.rangeEnd != "")
                {
                    //スタート時刻をセット
                    string[] start = chat.rangeStart.Split(':');
                    this.SrtTime = DateUtil.CreateDatetime(int.Parse(start[0]), int.Parse(start[1]), 0);

                    //終了時刻をセット
                    string[] end = chat.rangeEnd.Split(':');
                    this.EndTime = DateUtil.CreateDatetime(int.Parse(end[0]), int.Parse(end[1]), 0);
                }
            }
            catch
            {
                //エラーでも処理を継続
            }
        }