diff --git a/ProjectNLD/Assets/Editor/Tools/AutoConfig/ConfigTools.cs b/ProjectNLD/Assets/Editor/Tools/AutoConfig/ConfigTools.cs index 017dba04f49..480545baeb2 100644 --- a/ProjectNLD/Assets/Editor/Tools/AutoConfig/ConfigTools.cs +++ b/ProjectNLD/Assets/Editor/Tools/AutoConfig/ConfigTools.cs @@ -94,16 +94,19 @@ public static class ConfigTools if (!File.Exists(combiePath)) { - DownloadConfig(); + var sid = EditorPrefs.GetString("ConfSid"); + var cookies = EditorPrefs.GetString("ConfCookie"); + DownloadConfig(cookies); } ConfigWindow.ShowWindow(); } - public static async void DownloadConfig() + public static async void DownloadConfig(string cookies) { EditorUtility.DisplayProgressBar("配置工具", $"正在下ConfigList....", 0); - var downLoader = new WPExcelDownloader("AConfigList.xlsx", "e3_AQIA8QbmAKEFwoGRFPhT9uizRsOaA"); + var downLoader = new WPExcelDownloader("AConfigList.xlsx", + "e3_AQIA8QbmAKEFwoGRFPhT9uizRsOaA", cookies); var dir = new DirectoryInfo(CONFIG_DIR); AutoConfig.DownloadConfig.SAVE_PATH = dir.FullName + "Datas/"; diff --git a/ProjectNLD/Assets/Editor/Tools/AutoConfig/ConfigWindow.cs b/ProjectNLD/Assets/Editor/Tools/AutoConfig/ConfigWindow.cs index b341b9c950a..0d0bd7cfadb 100644 --- a/ProjectNLD/Assets/Editor/Tools/AutoConfig/ConfigWindow.cs +++ b/ProjectNLD/Assets/Editor/Tools/AutoConfig/ConfigWindow.cs @@ -4,7 +4,9 @@ using System.Collections.Generic; using System.IO; using Cysharp.Threading.Tasks; using System; +using AutoConfig; using Luban.Editor; +using UnityEngine.Networking; public class ConfigInfo { @@ -30,41 +32,44 @@ public class ConfigWindow : EditorWindow private Vector2 scrollPosition = Vector2.zero; - private string sid; private string cookie; const string DATA_TABLE_ASSEMBLY_REFERENCE_PATH = "Assets/Code/Scripts/Gameplay/DataTable/FrameWork.asmref"; const string DATA_TABLE_OUTSIDE_ASSEMBLY_REFERENCE_PATH = "Assets/Code/Scripts/Gameplay/FrameWork.asmref"; + + /// + /// 0 未知 + /// 1 checking + /// 2 ok + /// 3 failed + /// + private int _authState = 0; + public static void ShowWindow() { - try - { - ConfigWindow window = GetWindow(typeof(ConfigWindow)) as ConfigWindow; - window.titleContent = new GUIContent("自动化配置工具"); - window.maximized = false; - window.minSize = new Vector2(300, 300); - int width = 600; - int height = 400; - var x = (Screen.currentResolution.width - width) / 2; - var y = (Screen.currentResolution.height - height) / 2; - Rect centerRect = new Rect(x, y, width, height); - window.position = centerRect; + var window = GetWindow(); + window.titleContent = new GUIContent("自动化配置工具"); + window.maximized = false; + window.minSize = new Vector2(300, 300); - window.InitData(); - window.Show(); + int width = 600; + int height = 400; + var x = (Screen.currentResolution.width - width) / 2; + var y = (Screen.currentResolution.height - height) / 2; + Rect centerRect = new Rect(x, y, width, height); + window.position = centerRect; + window._authState = 0; + window.InitData(); + window.Show(); + window.Focus(); - } - catch (Exception e) - { - Debug.LogError("ShowWindow catch exception, msg=" + e.Message); - } } public void InitData() { var dir = new DirectoryInfo(ConfigTools.CONFIG_DIR); var combiePath = dir.FullName + "Datas/AConfigList.xlsx"; - + // var configPath = ConfigTools.CONFIG_DIR + "/config_list.txt"; // var lines = File.ReadAllLines(configPath); @@ -88,53 +93,126 @@ public class ConfigWindow : EditorWindow m_Configs.Add(ci); } } - else { + else + { Debug.LogError($"配置文件不存在,path={combiePath}"); } - + ExportClient = true; ExportServer = false; NeedDownload = true; - sid = PlayerPrefs.GetString("ConfSid", ""); - cookie = PlayerPrefs.GetString("ConfCookie", ""); + cookie = EditorPrefs.GetString("ConfCookie", ""); } void OnGUI() { - try { - OnGUIContent(); - } - catch + OnGUIContent(); + } + + private async void _StartChecking() + { + if (string.IsNullOrEmpty(cookie)) return; + _authState = 1; + + var downLoader = new WPExcelDownloader("AConfigList.xlsx", + "e3_AQIA8QbmAKEFwoGRFPhT9uizRsOaA",cookie); + Debug.Log("开始检查授权"); + + var checkResult = await downLoader.OnlyCheck(); + if (checkResult) { - EditorGUILayout.LabelField("请关闭窗口重新打开"); + Debug.Log("授权成功"); + _authState = 2; } - + else + { + Debug.LogError("授权失败"); + _authState = 3; + } + } + + + private void _ShowSIDConfig() + { + cookie = EditorGUILayout.TextField("Cookie:", cookie); + GUILayout.BeginHorizontal(); + if (GUILayout.Button("重新检查授权")) + { + _StartChecking(); + } + if (GUILayout.Button("打开授权网页")) + { + _OpenAuthWindow(); + } + GUILayout.EndHorizontal(); + } + + private void _OpenAuthWindow() + { + var url = "https://doc.weixin.qq.com/sheet/e3_Ab4A8gbmAKEPGX4tMzIRYCedjxh0O?scode=ADIAuQeZAGMDe7Ww2ZAb4A8gbmAKE&tab=BB08J2"; + Application.OpenURL(url); } void OnGUIContent() { GUILayout.Space(10); + switch (_authState) + { + case 0: + // 未知 + if (string.IsNullOrEmpty(cookie)) + { + // 未配置 + EditorGUILayout.HelpBox("请先配置sid和cookie", MessageType.Error); - sid = EditorGUILayout.TextField("SID:", sid); - cookie = EditorGUILayout.TextField("Cookie:", cookie); + _ShowSIDConfig(); + } + else + { + // 已配置 + _ShowSIDConfig(); + + _StartChecking(); + } + break; + case 1: + EditorGUILayout.HelpBox("检查授权中", MessageType.Warning); + + _ShowSIDConfig(); + break; + case 2: + EditorGUILayout.HelpBox("授权成功", MessageType.Info); + + _ShowSIDConfig(); + break; + + case 3: + EditorGUILayout.HelpBox("授权失败", MessageType.Error); + + _ShowSIDConfig(); + break; + } if (GUILayout.Button("刷新Config List")) { - PlayerPrefs.SetString("ConfSid", sid); - PlayerPrefs.SetString("ConfCookie", cookie); + + EditorPrefs.SetString("ConfCookie", cookie); - ConfigTools.DownloadConfig(); + ConfigTools.DownloadConfig( cookie); InitData(); } GUILayout.Space(10); - GUILayout.Label("配置列表:", EditorStyles.boldLabel); + EditorGUILayout.BeginHorizontal(); + GUILayout.Label("配置列表:", EditorStyles.boldLabel); + GUILayout.Label("共计:" + m_Configs.Count); + EditorGUILayout.EndHorizontal(); scrollPosition = EditorGUILayout.BeginScrollView(scrollPosition); for (int i = 0; i < m_Configs.Count; i++) { @@ -218,12 +296,12 @@ public class ConfigWindow : EditorWindow if (GUILayout.Button(buttonName)) { - if (string.IsNullOrEmpty(sid) || string.IsNullOrEmpty(cookie)) { + if (string.IsNullOrEmpty(cookie)) + { EditorUtility.DisplayDialog("配置工具", "请先配置sid和cookie", "OK"); return; } - - PlayerPrefs.SetString("ConfSid", sid); + PlayerPrefs.SetString("ConfCookie", cookie); _AsyncAction(); @@ -231,6 +309,7 @@ public class ConfigWindow : EditorWindow GUILayout.EndHorizontal(); } + private void MoveDataTableAssemblyReference(bool isOut) { if (isOut) @@ -238,44 +317,38 @@ public class ConfigWindow : EditorWindow else AssetDatabase.MoveAsset(DATA_TABLE_OUTSIDE_ASSEMBLY_REFERENCE_PATH, DATA_TABLE_ASSEMBLY_REFERENCE_PATH); } + private async void _AsyncAction() { - // MoveDataTableAssemblyReference(true); - try + bool needDownload = false; + for (int i = 0; i < m_Configs.Count; i++) { - bool needDownload = false; - for (int i = 0; i < m_Configs.Count; i++) - { - m_Configs[i].IsDownloadOK = false; + m_Configs[i].IsDownloadOK = false; - if (m_Configs[i].Check) - needDownload = true; - } - - if (needDownload && NeedDownload) - { - await AutoConfig.DownloadConfig.AutoProcessConfig(m_Configs); - } - else - { - Debug.Log("当前没有需要下载的配置,已跳过"); - } - - await UniTask.Delay(100); - - if (ExportClient) - { - var lubanAsset = AssetDatabase.LoadAssetAtPath("Assets/Editor/Tools/Luban_Client.asset"); - lubanAsset.Gen(); - } - - if (ExportServer) - ConfigTools.ConfigExportServer(); + if (m_Configs[i].Check) + needDownload = true; } - finally + + if (needDownload && NeedDownload) { - // MoveDataTableAssemblyReference(false); + await AutoConfig.DownloadConfig.AutoProcessConfig(m_Configs, cookie); } + else + { + Debug.Log("当前没有需要下载的配置,已跳过"); + } + + await UniTask.Delay(100); + + if (ExportClient) + { + var lubanAsset = AssetDatabase.LoadAssetAtPath("Assets/Editor/Tools/Luban_Client.asset"); + lubanAsset.Gen(); + } + + if (ExportServer) + ConfigTools.ConfigExportServer(); + } diff --git a/ProjectNLD/Assets/Editor/Tools/AutoConfig/DownloadConfig.cs b/ProjectNLD/Assets/Editor/Tools/AutoConfig/DownloadConfig.cs index ac45855ab8c..3b5255c2d8a 100644 --- a/ProjectNLD/Assets/Editor/Tools/AutoConfig/DownloadConfig.cs +++ b/ProjectNLD/Assets/Editor/Tools/AutoConfig/DownloadConfig.cs @@ -20,22 +20,8 @@ namespace AutoConfig private static int _totalDownloadCount; private static int _DownloadCount; - - // [MenuItem("LTGame/Test")] - public static async void TestFunc() - { - //download_single_file("AConfigList.xlsx", "e3_AQIA8QbmAKEFwoGRFPhT9uizRsOaA") - var downLoader = new WPExcelDownloader("AConfigList.xlsx", "e3_AQIA8QbmAKEFwoGRFPhT9uizRsOaA"); - var result = await downLoader.StartDownload(); - if (result) - { - var combiePath = SAVE_PATH + "AConfigList.xlsx"; - var list = ReadExcelList.ReadList(combiePath); - Debug.Log("读取成功:" + list.Count); - } - } - - public static async UniTask AutoProcessConfig(List m_Configs) + + public static async UniTask AutoProcessConfig(List m_Configs, string cookie) { var dir = new DirectoryInfo(ConfigTools.CONFIG_DIR); SAVE_PATH = dir.FullName + "Datas/"; @@ -49,7 +35,7 @@ namespace AutoConfig { if (m_Configs[i].Check) { - StartDownload(m_Configs[i]); + StartDownload(m_Configs[i], cookie); _totalDownloadCount++; } @@ -103,9 +89,9 @@ namespace AutoConfig } - public static async void StartDownload(ConfigInfo ci) + public static async void StartDownload(ConfigInfo ci, string cookie) { - var downloader = new WPExcelDownloader(ci.Name, ci.DocID); + var downloader = new WPExcelDownloader(ci.Name, ci.DocID, cookie); var result = await downloader.StartDownload(); if (result) diff --git a/ProjectNLD/Assets/Editor/Tools/AutoConfig/WPExcelDownloader.cs b/ProjectNLD/Assets/Editor/Tools/AutoConfig/WPExcelDownloader.cs index 27854a52a7d..6bb36f2788d 100644 --- a/ProjectNLD/Assets/Editor/Tools/AutoConfig/WPExcelDownloader.cs +++ b/ProjectNLD/Assets/Editor/Tools/AutoConfig/WPExcelDownloader.cs @@ -7,6 +7,7 @@ using System.Text; using System.Threading.Tasks; using UnityEngine; using UnityEngine.Networking; +using Random = UnityEngine.Random; namespace AutoConfig { @@ -19,7 +20,7 @@ namespace AutoConfig //{"Cookie","wedoc_openid=wozbKqDgAAYt6fSGwDXda25jv2p5OP0w; wedoc_sid=1kBsM4ycejYuLERYAMRFUQAA; wedoc_sids=13102701888889220&1oQwT4xhZXMur2NhAINNSgAA|13102702970838080&1kBsM4ycejYuLERYAMRFUQAA; wedoc_skey=13102701888889220&ac00476fed4403712cae26060dfb39b6||13102702970838080&b89214c23c46059d0221af76cb528adb; wedoc_ticket=13102701888889220&CAESIG807y5KZMJpoC13g7JnkNY7pdaXE4n_sycBDYT9KEnH|13102702970838080&CAESIAhdu0oATYX8_OokDtb82-QP6zCNIe-ecFzDi53s5For;" } }; - public string sid; + public string cookies; public string docId; public string docName; @@ -27,20 +28,21 @@ namespace AutoConfig private int _progress; private string _downloadUrl; - public WPExcelDownloader(string docName, string docId) + public WPExcelDownloader(string docName, string docId, string cookies) { this.docName = docName; this.docId = docId; _progress = 0; + + this.cookies = cookies; - sid = PlayerPrefs.GetString("ConfSid"); - _headers["Cookie"] = PlayerPrefs.GetString("ConfCookie"); - - Debug.Log("开始下载:" + docName); + _headers["Cookie"] = this.cookies; } public async UniTask StartDownload() { + Debug.Log("开始下载:" + docName); + var result = await _RequestOperationId(); if (!result) { @@ -59,6 +61,12 @@ namespace AutoConfig return r3; } + public async UniTask OnlyCheck() + { + var result = await _RequestOperationId(); + return result; + } + private async UniTask _StartDownload() { var url = _downloadUrl; @@ -140,6 +148,7 @@ namespace AutoConfig private async UniTask _RequestOperationId() { + var sid = Random.Range(1000, 10000) + ""; var url = $"https://doc.weixin.qq.com/v1/export/export_office?sid={sid}&wedoc_xsrf=1&docId={docId}&version=2"; var request = UnityWebRequest.PostWwwForm(url, ""); foreach (var data in _headers)