Commit edcda087 authored by SherryChaos's avatar SherryChaos

online deck bug fix

parent 04e91b0f
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -57,8 +57,8 @@ namespace MDPro3.Duel.YGOSharp ...@@ -57,8 +57,8 @@ namespace MDPro3.Duel.YGOSharp
Grave = 1100001; Grave = 1100001;
Stand = 1110001; Stand = 1110001;
Mate = 1000001; Mate = 1000001;
string st = ydk.Replace("\r", ""); string st = ydk.Replace("\r", string.Empty).Replace("\\r", string.Empty).Replace("\\n", "\n");
string[] lines = st.Split(new string[] { "\n" }, StringSplitOptions.RemoveEmptyEntries); string[] lines = st.Split("\n", StringSplitOptions.RemoveEmptyEntries);
int flag = -1; int flag = -1;
foreach (string line in lines) foreach (string line in lines)
...@@ -278,7 +278,7 @@ namespace MDPro3.Duel.YGOSharp ...@@ -278,7 +278,7 @@ namespace MDPro3.Duel.YGOSharp
{ {
var path = Program.PATH_DECK + deckName + Program.EXPANSION_YDK; var path = Program.PATH_DECK + deckName + Program.EXPANSION_YDK;
File.WriteAllText(path, ydk, Encoding.UTF8); File.WriteAllText(path, ydk, Encoding.UTF8);
File.SetLastWriteTime(path, saveTime); File.SetLastWriteTimeUtc(path, saveTime);
if (MyCard.account != null && upload) if (MyCard.account != null && upload)
_ = OnlineDeck.SyncDeck(deckId, deckName, this, true); _ = OnlineDeck.SyncDeck(deckId, deckName, this, true);
......
...@@ -54,7 +54,6 @@ namespace MDPro3.Net ...@@ -54,7 +54,6 @@ namespace MDPro3.Net
if (request.result == UnityWebRequest.Result.Success) if (request.result == UnityWebRequest.Result.Success)
{ {
string jsonResult = request.downloadHandler.text;
var responseData = JsonUtility.FromJson<ResponseMultiSimpleData>(request.downloadHandler.text); var responseData = JsonUtility.FromJson<ResponseMultiSimpleData>(request.downloadHandler.text);
return responseData.data; return responseData.data;
} }
...@@ -162,7 +161,10 @@ namespace MDPro3.Net ...@@ -162,7 +161,10 @@ namespace MDPro3.Net
if (responseData.code == 0) if (responseData.code == 0)
MessageManager.Cast(InterString.Get("点赞卡组成功。")); MessageManager.Cast(InterString.Get("点赞卡组成功。"));
else else
MessageManager.Cast(InterString.Get("点赞卡组失败:") + InterString.Get(responseData.message, responseData.messageValue)); MessageManager.Cast(InterString.Get("点赞卡组失败:") +
//InterString.Get(responseData.message, responseData.messageValue)
responseData.message
);
} }
else else
MessageManager.Cast(InterString.Get("点赞卡组失败:") + request.error); MessageManager.Cast(InterString.Get("点赞卡组失败:") + request.error);
...@@ -229,7 +231,7 @@ namespace MDPro3.Net ...@@ -229,7 +231,7 @@ namespace MDPro3.Net
decks[i].deckId = ids[i]; decks[i].deckId = ids[i];
decks[i].userId = MyCard.account.user.id.ToString(); decks[i].userId = MyCard.account.user.id.ToString();
decks[i].Save(newName, DateTime.Now, false); decks[i].Save(newName, DateTime.UtcNow, false);
} }
var json = JsonUtility.ToJson(body); var json = JsonUtility.ToJson(body);
...@@ -296,10 +298,9 @@ namespace MDPro3.Net ...@@ -296,10 +298,9 @@ namespace MDPro3.Net
if (request.result == UnityWebRequest.Result.Success) if (request.result == UnityWebRequest.Result.Success)
{ {
var responseData = JsonUtility.FromJson<SyncResponseSingleData>(request.downloadHandler.text); var responseData = JsonUtility.FromJson<SyncResponseSingleData>(request.downloadHandler.text);
Debug.LogFormat("Sync Deck: {0}, Result: {1} {2} {3}.", deckName, responseData.code, responseData.message, responseData.data);
if (showHint) if (showHint)
MessageManager.Cast(InterString.Get("云端卡组「[?]」已同步。", deckName)); MessageManager.Cast(InterString.Get("云端卡组「[?]」已同步。", deckName));
deck.Save(deckName, DateTime.Now, false); deck.Save(deckName, DateTime.UtcNow, false);
return true; return true;
} }
else else
...@@ -451,45 +452,41 @@ namespace MDPro3.Net ...@@ -451,45 +452,41 @@ namespace MDPro3.Net
public string deckId; public string deckId;
public string deckContributor; public string deckContributor;
public string deckName; public string deckName;
public string deckType;
public int deckRank = 0; public int deckRank = 0;
public int deckLike = 0; public int deckLike = 0;
public string deckUploadDate; public long deckUploadDate;
public string deckUpdateDate; public long deckUpdateDate;
public int deckCoverCard1 = 0; public int deckCoverCard1 = 0;
public int deckCoverCard2 = 0; public int deckCoverCard2 = 0;
public int deckCoverCard3 = 0; public int deckCoverCard3 = 0;
public int deckCase = 0; public int deckCase = 0;
public int deckProtector = 0; public int deckProtector = 0;
public string lastDate;
public string deckYdk;
public string deckMainSerial; public string deckMainSerial;
public string deckYdk;
public int userid; public int userid;
public bool isPublic; public bool isPublic;
public string description; public string description;
public bool isDelete; public bool isDelete;
//List Only
public string lastDate;
public OnlineDeckData() { } public OnlineDeckData() { }
public DateTime GetUpdateTime() public DateTime GetUpdateUtcTime()
{
try
{
return DateTime.Parse(deckUpdateDate);
}
catch
{ {
return DateTime.Parse(deckUploadDate); var dataTimeOffset = DateTimeOffset.FromUnixTimeSeconds(deckUpdateDate);
return dataTimeOffset.UtcDateTime;
} }
} }
}
[Serializable] [Serializable]
public class ResponseSingleData public class ResponseSingleData
{ {
public int code = 0; public int code = 0;
public string message; public string message;
public string messageValue; //public string messageValue;
public OnlineDeckData data; public OnlineDeckData data;
} }
......
...@@ -296,9 +296,10 @@ namespace MDPro3.Servant ...@@ -296,9 +296,10 @@ namespace MDPro3.Servant
{ {
localFoundedIds.Add(od.deckId); localFoundedIds.Add(od.deckId);
var fileInfo = new FileInfo(deckFiles[i]); var fileInfo = new FileInfo(deckFiles[i]);
var serverTime = od.GetUpdateTime(); var serverTime = od.GetUpdateUtcTime();
var diff = serverTime - fileInfo.LastWriteTime; var diff = serverTime - fileInfo.LastWriteTimeUtc;
//Debug.LogFormat("{0}({1}): {2}-{3}={4}", od.deckName, od.deckId, serverTime, fileInfo.LastWriteTime, diff.TotalSeconds);
//Debug.Log($"{od.deckName}: serverTime: {serverTime} localTime: {fileInfo.LastWriteTimeUtc}");
if (diff.TotalSeconds > 5f || diff.TotalSeconds < -5f) if (diff.TotalSeconds > 5f || diff.TotalSeconds < -5f)
{ {
...@@ -323,6 +324,7 @@ namespace MDPro3.Servant ...@@ -323,6 +324,7 @@ namespace MDPro3.Servant
var task = OnlineDeck.SyncDeck(deck.Value.deckId, deck.Key, deck.Value, false); var task = OnlineDeck.SyncDeck(deck.Value.deckId, deck.Key, deck.Value, false);
while (!task.IsCompleted) while (!task.IsCompleted)
yield return null; yield return null;
deck.Value.Save(deck.Key, DateTime.UtcNow, false);
} }
//更新已经有Id的本地较旧卡组 //更新已经有Id的本地较旧卡组
foreach (var deck in decksNeedUpdateFromServer) foreach (var deck in decksNeedUpdateFromServer)
...@@ -335,7 +337,7 @@ namespace MDPro3.Servant ...@@ -335,7 +337,7 @@ namespace MDPro3.Servant
File.Delete(oldPath); File.Delete(oldPath);
var newPath = Program.PATH_DECK + od.deckName + Program.EXPANSION_YDK; var newPath = Program.PATH_DECK + od.deckName + Program.EXPANSION_YDK;
File.WriteAllText(newPath, od.deckYdk); File.WriteAllText(newPath, od.deckYdk);
File.SetLastWriteTime(newPath, od.GetUpdateTime()); File.SetLastWriteTimeUtc(newPath, od.GetUpdateUtcTime());
} }
//上传没有Id的本地卡组 //上传没有Id的本地卡组
...@@ -369,7 +371,7 @@ namespace MDPro3.Servant ...@@ -369,7 +371,7 @@ namespace MDPro3.Servant
var d = new Deck(deck.deckYdk, string.Empty, string.Empty); var d = new Deck(deck.deckYdk, string.Empty, string.Empty);
d.userId = MyCard.account.user.id.ToString(); d.userId = MyCard.account.user.id.ToString();
d.deckId = deck.deckId; d.deckId = deck.deckId;
d.Save(deck.deckName, deck.GetUpdateTime()); d.Save(deck.deckName, deck.GetUpdateUtcTime());
} }
#if UNITY_EDITOR #if UNITY_EDITOR
......
...@@ -317,12 +317,12 @@ namespace MDPro3.UI.ServantUI ...@@ -317,12 +317,12 @@ namespace MDPro3.UI.ServantUI
{ {
var uri = new Uri(clipBoard); var uri = new Uri(clipBoard);
var deck = DeckShareURL.UriToDeck(uri); var deck = DeckShareURL.UriToDeck(uri);
deck.Save(deckName, DateTime.Now); deck.Save(deckName, DateTime.UtcNow);
} }
else if (clipBoard.Contains(YdkeConverter.ydkeHeader)) else if (clipBoard.Contains(YdkeConverter.ydkeHeader))
{ {
var deck = YdkeConverter.Ydke2Deck(clipBoard); var deck = YdkeConverter.Ydke2Deck(clipBoard);
deck.Save(deckName, DateTime.Now); deck.Save(deckName, DateTime.UtcNow);
} }
Config.SetConfigDeck(deckName); Config.SetConfigDeck(deckName);
RefreshList(); RefreshList();
......
...@@ -1197,7 +1197,7 @@ namespace MDPro3.UI ...@@ -1197,7 +1197,7 @@ namespace MDPro3.UI
try try
{ {
var deckName = GetDeckName(); var deckName = GetDeckName();
Deck.Save(deckName, DateTime.Now); Deck.Save(deckName, DateTime.UtcNow);
if (deckName != this.deckName) if (deckName != this.deckName)
File.Delete(Program.PATH_DECK + this.deckName + Program.EXPANSION_YDK); File.Delete(Program.PATH_DECK + this.deckName + Program.EXPANSION_YDK);
this.deckName = deckName; this.deckName = deckName;
......
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