Commit 4482d224 authored by SherryChaos's avatar SherryChaos

cache mycard_apps.json

parent 04a89db7
...@@ -61,3 +61,4 @@ Data/ur.ydk ...@@ -61,3 +61,4 @@ Data/ur.ydk
/Assets/StreamingAssets/ /Assets/StreamingAssets/
/Assets/Wallpaper/ /Assets/Wallpaper/
Data/lflist_genesys.conf Data/lflist_genesys.conf
Data/mycard_apps.json
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -11837,7 +11837,7 @@ MonoBehaviour: ...@@ -11837,7 +11837,7 @@ MonoBehaviour:
m_lineSpacingMax: 0 m_lineSpacingMax: 0
m_paragraphSpacing: 0 m_paragraphSpacing: 0
m_charWidthMaxAdj: 0 m_charWidthMaxAdj: 0
m_TextWrappingMode: 1 m_TextWrappingMode: 0
m_wordWrappingRatios: 0.4 m_wordWrappingRatios: 0.4
m_overflowMode: 0 m_overflowMode: 0
m_linkedTextComponent: {fileID: 0} m_linkedTextComponent: {fileID: 0}
...@@ -12409,7 +12409,7 @@ MonoBehaviour: ...@@ -12409,7 +12409,7 @@ MonoBehaviour:
m_HandleRect: {fileID: 7446650972608614846} m_HandleRect: {fileID: 7446650972608614846}
m_Direction: 2 m_Direction: 2
m_Value: 1 m_Value: 1
m_Size: 0.7315 m_Size: 0.7195
m_NumberOfSteps: 0 m_NumberOfSteps: 0
m_OnValueChanged: m_OnValueChanged:
m_PersistentCalls: m_PersistentCalls:
...@@ -53106,7 +53106,7 @@ MonoBehaviour: ...@@ -53106,7 +53106,7 @@ MonoBehaviour:
m_HandleRect: {fileID: 6524435541314575836} m_HandleRect: {fileID: 6524435541314575836}
m_Direction: 2 m_Direction: 2
m_Value: 0 m_Value: 0
m_Size: 1 m_Size: 0.64285713
m_NumberOfSteps: 0 m_NumberOfSteps: 0
m_OnValueChanged: m_OnValueChanged:
m_PersistentCalls: m_PersistentCalls:
...@@ -63866,7 +63866,7 @@ MonoBehaviour: ...@@ -63866,7 +63866,7 @@ MonoBehaviour:
m_HandleRect: {fileID: 4664753718165055069} m_HandleRect: {fileID: 4664753718165055069}
m_Direction: 2 m_Direction: 2
m_Value: 0 m_Value: 0
m_Size: 1 m_Size: 0.6923077
m_NumberOfSteps: 0 m_NumberOfSteps: 0
m_OnValueChanged: m_OnValueChanged:
m_PersistentCalls: m_PersistentCalls:
...@@ -69434,6 +69434,10 @@ PrefabInstance: ...@@ -69434,6 +69434,10 @@ PrefabInstance:
propertyPath: m_AnchoredPosition.y propertyPath: m_AnchoredPosition.y
value: 0 value: 0
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 3036679950856914851, guid: d4403fd2f98246942bb4edbb4b732ea1, type: 3}
propertyPath: m_Size
value: 0.9531484
objectReference: {fileID: 0}
- target: {fileID: 3039851360208839043, guid: d4403fd2f98246942bb4edbb4b732ea1, type: 3} - target: {fileID: 3039851360208839043, guid: d4403fd2f98246942bb4edbb4b732ea1, type: 3}
propertyPath: m_AnchorMax.y propertyPath: m_AnchorMax.y
value: 0 value: 0
using Cysharp.Threading.Tasks; using Cysharp.Threading.Tasks;
using Newtonsoft.Json;
using Percy;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO; using System.IO;
...@@ -13,6 +15,7 @@ namespace MDPro3.Net ...@@ -13,6 +15,7 @@ namespace MDPro3.Net
public static void Initialize() public static void Initialize()
{ {
_ = InitializeGenesysLflist(); _ = InitializeGenesysLflist();
_ = InitializeMyCardAppsAsync();
} }
#region Genesys lflist #region Genesys lflist
...@@ -21,6 +24,7 @@ namespace MDPro3.Net ...@@ -21,6 +24,7 @@ namespace MDPro3.Net
private const string PATH_GENESYS_LFLIST = "Data/lflist_genesys.conf"; private const string PATH_GENESYS_LFLIST = "Data/lflist_genesys.conf";
private static readonly List<int> genesysBannedCards = new(); private static readonly List<int> genesysBannedCards = new();
private static readonly List<GenesysPoint> genesysPoints = new(); private static readonly List<GenesysPoint> genesysPoints = new();
private static int officialGenesysLimit = 100;
private static async UniTask InitializeGenesysLflist() private static async UniTask InitializeGenesysLflist()
{ {
...@@ -34,9 +38,7 @@ namespace MDPro3.Net ...@@ -34,9 +38,7 @@ namespace MDPro3.Net
await DownloadGenesysLflist(eTag); await DownloadGenesysLflist(eTag);
} }
else else
{
Program.Debug("Genesys Lflist do not need update."); Program.Debug("Genesys Lflist do not need update.");
}
} }
ParseGenesysLflist(); ParseGenesysLflist();
...@@ -138,19 +140,17 @@ namespace MDPro3.Net ...@@ -138,19 +140,17 @@ namespace MDPro3.Net
/// <summary> /// <summary>
/// color for Genesys Points one card score /// color for Genesys Points one card score
/// </summary> /// </summary>
/// <param name="gp"></param>
/// <returns></returns>
public static Color GetGenesysPointColor(int gp) public static Color GetGenesysPointColor(int gp)
{ {
if (gp < 0) if (gp < 0)
return Color.red; return Color.red;
if (gp == 0) if (gp == 0)
return Color.gray; return Color.gray;
if (gp < 10) if (gp <= officialGenesysLimit / 10)
return Color.green; return Color.green;
if (gp < 50) if (gp <= officialGenesysLimit / 2)
return Color.yellow; return Color.yellow;
if (gp < 100) if (gp <= officialGenesysLimit)
return Color.magenta; return Color.magenta;
return Color.red; return Color.red;
} }
...@@ -158,17 +158,74 @@ namespace MDPro3.Net ...@@ -158,17 +158,74 @@ namespace MDPro3.Net
/// <summary> /// <summary>
/// color for Genesys Points total score /// color for Genesys Points total score
/// </summary> /// </summary>
/// <param name="gp"></param>
/// <returns></returns>
public static Color GetGenesysPointsColor(int gp) public static Color GetGenesysPointsColor(int gp)
{ {
if (gp < 100) if (gp <= officialGenesysLimit)
return Color.white; return Color.white;
return Color.red; return Color.red;
} }
#endregion #endregion
#region MyCard Apps
private const string URL_MYCARD_APPS = "https://cdntx.moecube.com/apps.json";
private const string PATH_MYCARD_APPS = "Data/mycard_apps.json";
public static MyCardNews myCardNews;
private static async UniTask InitializeMyCardAppsAsync()
{
var eTag = await GetETagAsync(URL_MYCARD_APPS);
if (!string.IsNullOrEmpty(eTag))
{
var configTag = Config.Get(GetLocalETagKey(URL_MYCARD_APPS), Config.EMPTY_STRING);
if (!string.Equals(eTag, configTag, StringComparison.Ordinal))
{
Program.Debug("Update MyCard Apps.");
await DownloadMyCardApps(eTag);
}
else
Program.Debug("MyCard Apps do not need update.");
}
ParseMyCardNews();
}
private static async UniTask DownloadMyCardApps(string ETag)
{
using var request = UnityWebRequest.Get(URL_MYCARD_APPS);
request.timeout = 15;
await request.SendWebRequest();
if (request.result == UnityWebRequest.Result.Success)
{
File.WriteAllText(PATH_MYCARD_APPS, request.downloadHandler.text);
Config.Set(GetLocalETagKey(URL_MYCARD_APPS), ETag);
Config.Save();
}
else
Program.Debug("下载MyCard apps.json失败。");
}
private static void ParseMyCardNews()
{
if (!File.Exists(PATH_MYCARD_APPS))
return;
var json = File.ReadAllText(PATH_MYCARD_APPS);
json = json.Replace("\"news\":[]", "\"news\":{}");
var apps = JsonConvert.DeserializeObject<MyCardApp[]>(json);
foreach (var app in apps)
if (app.id == "ygopro")
{
myCardNews = app.news;
return;
}
}
#endregion
#region Online Tools #region Online Tools
private static string GetLocalETagKey(string url) => $"ETag_{url.GetHashCode()}"; private static string GetLocalETagKey(string url) => $"ETag_{url.GetHashCode()}";
......
...@@ -140,10 +140,10 @@ namespace MDPro3.Servant ...@@ -140,10 +140,10 @@ namespace MDPro3.Servant
private IEnumerator LoadMyCardNewsAsync() private IEnumerator LoadMyCardNewsAsync()
{ {
var news = MyCard.GetNews(); while(OnlineService.myCardNews == null)
while (!news.IsCompleted)
yield return null; yield return null;
GetUI<MainMenuUI>().News.news = news.Result; var news = OnlineService.myCardNews;
GetUI<MainMenuUI>().News.news = news;
GetUI<MainMenuUI>().News.LoadNews(); GetUI<MainMenuUI>().News.LoadNews();
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment