Пример #1
0
        /// <summary>
        /// 最新データをダウンロードする
        /// </summary>
        /// <returns></returns>
        private IEnumerator SetTopicDirectTopicAsync()
        {
            //最新ニュースデータ取得
            var Async = ClalisForLiplisGetNewTopicOne.GetNewTopicAsync(LiplisStatus.Instance.NewTopic.ToneUrlList);

            //非同期実行
            yield return(Async);

            //データ取得
            ResLpsTopicList data = (ResLpsTopicList)Async.Current;

            //NULL回避
            if (data == null)
            {
                yield break;
            }
            if (data.topicList == null)
            {
                yield break;
            }

            //おしゃべり済みに追加しないでおしゃべり
            foreach (var topic in data.topicList)
            {
                topic.FlgNotAddChatted = true;

                //アロケーションIDを設定する
                TopicUtil.SetAllocationIdAndTone(topic, LiplisModels.Instance.GetModelList());
            }

            //データ追加
            LiplisStatus.Instance.NewTopic.TalkTopicList.AddRange(data.topicList);
        }
Пример #2
0
    private IEnumerator SetTopicTalkFromClalis(string DataKey, ContentCategoly NewsSource)
    {
        //トピックをランダムで取得する
        var Async = ClalisForLiplisGetNewTopicOne.GetNewTopicAsync(LiplisStatus.Instance.NewTopic.ToneUrlList, DataKey, ((int)NewsSource).ToString());

        //非同期実行
        yield return(Async);

        //取得結果取得
        ResLpsTopicList resTopic = (ResLpsTopicList)Async.Current;

        //現在ロード中の話題をおしゃべり済みに入れる
        if (resTopic != null)
        {
            //話題取得
            this.NowLoadTopic = resTopic.topicList[0];

            //カテゴリセット
            this.NowLoadTopic.TopicClassification = ((int)NewsSource).ToString();

            //おしゃべり済みに追加
            LiplisStatus.Instance.NewTopic.ChattedKeyList.AddToNotDuplicate(this.NowLoadTopic.Clone());

            //話題のセット、移動
            StartCoroutine(SetToipcEnd());

            //ログ追加
            StartCoroutine(NewsLog.AddLog(this.NowLoadTopic.Clone()));
        }
        else
        {
            //だめなら、デフォルト処理
            SetTopicTalkTopicList();
        }
    }
Пример #3
0
        /// <summary>
        /// ショートニュースからトピックを生成する
        /// </summary>
        /// <returns></returns>
        private IEnumerator SetTopicDirectTopic()
        {
            //トピックをランダムで取得する
            var Async = ClalisForLiplisGetNewTopicOne.GetNewTopicAsync(LiplisStatus.Instance.NewTopic.ToneUrlList);

            //非同期実行
            yield return(Async);

            ResLpsTopicList resTopic = (ResLpsTopicList)Async.Current;

            //NULLチェック
            if (resTopic == null || resTopic.topicList.Count < 0)
            {
                this.NowLoadTopic = LiplisModels.Instance.CreateTopicFromShortNews();
            }

            //取得したトピックを返す
            this.NowLoadTopic = resTopic.topicList[0];

            //話題のセット、移動
            StartCoroutine(SetToipcEnd());
        }
Пример #4
0
    /// <summary>
    /// 最新データをダウンロードする
    /// </summary>
    /// <returns></returns>
    private IEnumerator SetLastTopicMltData()
    {
        if (FlgRunSetLastTopicMltData)
        {
            goto End;
        }

        //実行中
        FlgRunSetLastTopicMltData = true;

        //トークインスタンス取得
        DatNewTopic NewTopic = LiplisStatus.Instance.NewTopic;

        //アシンク取得
        IEnumerator Async = DownloadData(NewTopic);

        //非同期実行
        yield return(Async);

        //データ取得
        ResLpsTopicList DownloadLastData = (ResLpsTopicList)Async.Current;

        //NULLチェック
        if (DownloadLastData == null)
        {
            goto End;
        }
        if (DownloadLastData.topicList == null)
        {
            goto End;
        }

        //データ取得
        NewTopic.LastData = DownloadLastData;

        //キーリスト取得
        List <string> keyList = NewTopic.GetKeyList();

        //スライス
        yield return(new WaitForSeconds(1f));

        //キーが無ければ入れる。
        foreach (MsgTopic topic in NewTopic.LastData.topicList)
        {
            //話題を積む条件は精査必要
            if (!keyList.Contains(topic.DataKey))
            {
                if (LiplisSetting.Instance.Setting.CatCheck(topic.TopicClassification))
                {
                    //対象カテゴリならトピックリストに追加する
                    NewTopic.TalkTopicList.InsertToNotDuplicate(topic.Clone(), 0);
                }
                else
                {
                    //おしゃべり済みに追加
                    NewTopic.ChattedKeyList.AddToNotDuplicate(topic.Clone());
                }
            }

            //1フレームスキップ
            yield return(null);
        }

        //取得した結果、120件以下ならおかわり
        if (NewTopic.TalkTopicList.Count <= 120)
        {
            //終了にする
            FlgRunSetLastTopicMltData = false;

            StartCoroutine(SetLastTopicMltData());
        }

        //重複排除
        NewTopic.RemoveDuplicateTopicList();

        //終了ラベル
        End :;

        //終了にする
        FlgRunSetLastTopicMltData = false;
    }