private IEnumerator DownloadData(DatNewTopic NewTopic) { //最新ニュースデータ取得 IEnumerator Async; //件数が少ない場合はライト版で取得する if (NewTopic == null) { NewTopic = new DatNewTopic(); NewTopic.LastData = new ResLpsTopicList(); Async = ClalisForLiplisGetNewTopic2MltLight.GetNewTopic(new List <string>()); } else if (NewTopic.LastData == null) { NewTopic.LastData = new ResLpsTopicList(); Async = ClalisForLiplisGetNewTopic2MltLight.GetNewTopic(new List <string>()); } else if (NewTopic.TalkTopicList.Count <= 25) { Async = ClalisForLiplisGetNewTopic2MltLight.GetNewTopic(new List <string>()); } else { Async = ClalisForLiplisGetNewTopic2Mlt.GetNewTopic(new List <string>()); } return(Async); }
/// <summary> /// デバッグテキストを設定する /// </summary> private void SetText() { try { //トークインスタンス取得 DatNewTopic NewTopic = LiplisStatus.Instance.NewTopic; if (LiplisSetting.Instance.Setting.FlgDebug) { //テキスト表示 TxtQNum.text = NewTopic.TalkTopicList.Count.ToString(); TxtTopicNum.text = NewTopic.LastData.topicList.Count.ToString(); TxtChatedNum.text = NewTopic.ChattedKeyList.Count.ToString(); TxtNewsListNum.text = LiplisStatus.Instance.NewsList.LastNewsList.NewsList.Count.ToString(); } //トピック件数を表示する TxtTopicNumR.text = NewTopic.TalkTopicList.Count.ToString(); //カウント SliderTopicNum.value = NewTopic.TalkTopicList.Count; } catch { } }
/// <summary> /// テキストの表示 /// </summary> void UpdateText() { try { //トークインスタンス取得 DatNewTopic NewTopic = LiplisStatus.Instance.NewTopic; //テキスト表示 TxtQNum.text = NewTopic.TalkTopicList.Count.ToString(); TxtTopicNum.text = NewTopic.LastData.topicList.Count.ToString(); TxtChatedNum.text = NewTopic.ChattedKeyList.Count.ToString(); TxtNewsListNum.text = LiplisStatus.Instance.NewsList.LastNewsList.NewsList.Count.ToString(); TxtTopicNumR.text = NewTopic.TalkTopicList.Count.ToString(); //カウント TopicQSlider.value = NewTopic.TalkTopicList.Count; } catch { } }
/// <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; }