From 79d9e215b6bf3bb9173bced502fe505f920dea8d Mon Sep 17 00:00:00 2001 From: callmeyan Date: Fri, 29 Mar 2024 11:57:54 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=B0=E5=BD=95=E9=94=99=E8=AF=AF=E6=97=A5?= =?UTF-8?q?=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vs/AIProofread/v17/.suo | Bin 266752 -> 268288 bytes AIProofread/Bridge.cs | 95 ++++++++++-------- AIProofread/Config.cs | 8 +- AIProofread/Controls/BaseWinForm.cs | 21 ++-- AIProofread/ProofreadItem.cs | 30 +++--- AIProofread/Ribbon1.cs | 3 +- AIProofread/core/DocumentText.cs | 4 + AIProofread/core/Tools.cs | 22 +++- .../AIProofread.csproj.GenerateResource.cache | Bin 1073 -> 1073 bytes AIProofread/obj/Debug/AIProofread.dll | Bin 386048 -> 386560 bytes AIProofread/obj/Debug/AIProofread.pdb | Bin 122368 -> 122368 bytes .../DesignTimeResolveAssemblyReferences.cache | Bin 10926 -> 10926 bytes 12 files changed, 108 insertions(+), 75 deletions(-) diff --git a/.vs/AIProofread/v17/.suo b/.vs/AIProofread/v17/.suo index fc9e454398d42c7be19e7ea610243d25f388b593..d7fc550942b65ba3bcc4806b5129a810cb329f01 100644 GIT binary patch delta 14247 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 delta 12409 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 diff --git a/AIProofread/Bridge.cs b/AIProofread/Bridge.cs index 8c2a178..47c2b20 100644 --- a/AIProofread/Bridge.cs +++ b/AIProofread/Bridge.cs @@ -111,7 +111,7 @@ namespace AIProofread Userinfo info = JsonConvert.DeserializeObject(userinfo); // 登录成功 展示 Globals.ThisAddIn.ribbon.ProcessLoginInfo(info); - Globals.ThisAddIn.SendMessageToWeb("async-login-success", null); + //Globals.ThisAddIn.SendMessageToWeb("async-login-success", null); } // 获取文档所有文本数据 @@ -362,58 +362,65 @@ namespace AIProofread public Microsoft.Office.Tools.Word.Bookmark AddBookmark(CorrectedContent item, int findIndex, int offset, int length) { - var document = Globals.ThisAddIn.Application.ActiveDocument; - ControlCollection controls = Globals.Factory.GetVstoObject(document).Controls; - var Start = offset; - var End = offset + length - 1; - // 整体选区的内容 - var fullRange = document.Range(Start, End); - string fullText = fullRange.Text; - End = offset + item.start; - Start = offset + item.end; - Microsoft.Office.Tools.Word.Bookmark bookmark = null; - var r = document.Range(End, Start); - var markName = Config.BuildBookmarkName(item.id); + try + { + var document = Globals.ThisAddIn.Application.ActiveDocument; + ControlCollection controls = Globals.Factory.GetVstoObject(document).Controls; + var Start = offset; + var End = offset + length - 1; + // 整体选区的内容 + var fullRange = document.Range(Start, End); + string fullText = fullRange.Text; + End = offset + item.start; + Start = offset + item.end; - // 判断是否已经存在 - if (controls.Contains(markName)) - { - controls.Remove(markName); - } - // 判断选区是否正确 - if (item.tag == "i" || r.Text == item.origin) - { - bookmark = controls.AddBookmark(r, markName); - bookmark.Tag = "ai_proofread"; - if (item.color != null) + var r = document.Range(End, Start); + var markName = Config.BuildBookmarkName(item.id); + + // 判断是否已经存在 + if (controls.Contains(markName)) { - // 给选区添加背景颜色 - r.Shading.BackgroundPatternColor = (WdColor)ColorTranslator.ToOle(Colors.FromHex(item.color)); + controls.Remove(markName); } - } - else - { - int startPos = 0, index,findCount = 0; - while ((index = fullText.IndexOf(item.origin, startPos)) != -1) + // 判断选区是否正确 + if (item.tag == "i" || r.Text == item.origin) { - if (findCount == findIndex) + bookmark = controls.AddBookmark(r, markName); + bookmark.Tag = "ai_proofread"; + if (item.color != null) { - r = document.Range(offset + index, offset + index + item.origin.Length); - bookmark = controls.AddBookmark(r, markName); - bookmark.Tag = "ai_proofread"; - if (item.color != null) - { - // 给选区添加背景颜色 - r.Shading.BackgroundPatternColor = (WdColor)ColorTranslator.ToOle(Colors.FromHex(item.color)); - } - break; + // 给选区添加背景颜色 + r.Shading.BackgroundPatternColor = (WdColor)ColorTranslator.ToOle(Colors.FromHex(item.color)); + } + } + else + { + int startPos = 0, index, findCount = 0; + while ((index = fullText.IndexOf(item.origin, startPos)) != -1) + { + if (findCount == findIndex) + { + r = document.Range(offset + index, offset + index + item.origin.Length); + bookmark = controls.AddBookmark(r, markName); + bookmark.Tag = "ai_proofread"; + if (item.color != null) + { + // 给选区添加背景颜色 + r.Shading.BackgroundPatternColor = (WdColor)ColorTranslator.ToOle(Colors.FromHex(item.color)); + } + break; + } + startPos = index; + findCount++; } - startPos = index; - findCount++; } - } + } + catch (Exception ex) + { + Logger.Log("create mark error:" + ex.Message + "\n" + ex.StackTrace + "\n\n"); + } return bookmark; } diff --git a/AIProofread/Config.cs b/AIProofread/Config.cs index 0d6728f..cc1dcf7 100644 --- a/AIProofread/Config.cs +++ b/AIProofread/Config.cs @@ -10,14 +10,10 @@ namespace AIProofread /// /// 网页访问地址 /// - public static readonly string WEB_PATH = "http://localhost:5173/"; + public static readonly string WEB_PATH = "https://gm-plugin.gachafun.com/"; #else - public static readonly string WEB_PATH = "dist/index.html"; + public static readonly string WEB_PATH = "https://gm-plugin.gachafun.com/"; #endif - /// - /// 词库地址 - /// - public static readonly string LEXICON_PATH = "https://gm.gachafun.com/lexicon"; public static readonly string WEB_DATA_PATH = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\ai_proofread\\userdata"; /// diff --git a/AIProofread/Controls/BaseWinForm.cs b/AIProofread/Controls/BaseWinForm.cs index b586c2e..154a4ba 100644 --- a/AIProofread/Controls/BaseWinForm.cs +++ b/AIProofread/Controls/BaseWinForm.cs @@ -113,16 +113,23 @@ namespace AIProofread.Controls protected async void InitWebView(WebView2 webView,String url,string name) { //Bridge.InitWebEnvAsync(name, webView); + try + { + if (webView.IsDisposed) return; + var ops = new CoreWebView2EnvironmentOptions("--disable-web-security"); + var env = await CoreWebView2Environment.CreateAsync(null, Config.WEB_DATA_PATH, ops); - var ops = new CoreWebView2EnvironmentOptions("--disable-web-security"); - var env = await CoreWebView2Environment.CreateAsync(null, Config.WEB_DATA_PATH, ops); - await webView.EnsureCoreWebView2Async(env); + await webView.EnsureCoreWebView2Async(env); - var eventForwarder = new EventForwarder(this); - webView.CoreWebView2.AddHostObjectToScript("event", eventForwarder); - webView.CoreWebView2.AddHostObjectToScript("bridge", Bridge.bridge); + var eventForwarder = new EventForwarder(this); + webView.CoreWebView2.AddHostObjectToScript("event", eventForwarder); + webView.CoreWebView2.AddHostObjectToScript("bridge", Bridge.bridge); - webView.Source = new Uri(url); + webView.Source = new Uri(url); + }catch (Exception ex) + { + Logger.Log("\ninit webview error:" + ex.Message + "\n" + ex.StackTrace); + } } } } diff --git a/AIProofread/ProofreadItem.cs b/AIProofread/ProofreadItem.cs index d74c5ca..caa81b1 100644 --- a/AIProofread/ProofreadItem.cs +++ b/AIProofread/ProofreadItem.cs @@ -23,7 +23,13 @@ namespace UtilLib public ProofreadItem(CorrectedContent content, Bookmark bookmark) { this.content = content; - InitBookMark(bookmark); + if (bookmark != null) + { + this.mark = bookmark; + // 记录目前字体 + originSize = bookmark.Range.Font.Size; + } + //InitBookMark(bookmark); } private void InitBookMark(Bookmark bookmark) @@ -59,37 +65,35 @@ namespace UtilLib public void Select() { - if (mark != null) - { - mark.Range.Font.Size = originSize + 2; // 将选中标签文本放大字体 - //Globals.ThisAddIn.Application.ActiveWindow.View.Type = Microsoft.Office.Interop.Word.WdViewType.wdOutlineView; - //Globals.ThisAddIn.Application.ActiveWindow.View.SeekView = Microsoft.Office.Interop.Word.WdSeekView.wdSeekPrimaryHeader; - //Globals.ThisAddIn.Application.ActiveWindow.Activate(); - mark.Select(); - } + if (mark == null) return; + mark.Range.Font.Size = originSize + 2; // 将选中标签文本放大字体 + mark.Select(); + } public void UnSelect() { - if (mark != null) - { - mark.Range.Font.Size = originSize; // 还原 - } + if (mark == null) return; + mark.Range.Font.Size = originSize; // 还原 } private void SetMarkStyle() { + if (mark == null) return; mark.Range.Underline = Microsoft.Office.Interop.Word.WdUnderline.wdUnderlineThick; mark.Shading.BackgroundPatternColor = (WdColor)ColorTranslator.ToOle(Colors.FromHex(content.color)); } private void ResetMarkStyle() { + if (mark == null) return; mark.Range.Underline = Microsoft.Office.Interop.Word.WdUnderline.wdUnderlineNone; mark.Range.Shading.BackgroundPatternColor = Microsoft.Office.Interop.Word.WdColor.wdColorAutomatic; } public void Process(int status) { + + if (mark == null) return; // content.isAccept = status; if (status == AcceptStatus.Accept) diff --git a/AIProofread/Ribbon1.cs b/AIProofread/Ribbon1.cs index 219094a..5b462fb 100644 --- a/AIProofread/Ribbon1.cs +++ b/AIProofread/Ribbon1.cs @@ -66,7 +66,7 @@ namespace AIProofread private void btnOpenLexicon_Click(object sender, RibbonControlEventArgs e) { - Process.Start(Config.LEXICON_PATH); + Globals.ThisAddIn.SendMessageToWeb("show-lexicon", null); } private void btnSetting_Click(object sender, RibbonControlEventArgs e) @@ -94,6 +94,7 @@ namespace AIProofread private void btnClear_Click(object sender, RibbonControlEventArgs e) { DocumentUtil.ClearProofreadMarks(); + Globals.ThisAddIn.SendMessageToWeb("clear-tips",null); } } } diff --git a/AIProofread/core/DocumentText.cs b/AIProofread/core/DocumentText.cs index 440ba89..a431d64 100644 --- a/AIProofread/core/DocumentText.cs +++ b/AIProofread/core/DocumentText.cs @@ -8,6 +8,10 @@ namespace AIProofread public string Text { get; set; } public DocumentText() { } + public DocumentText(string text) + { + this.Text = text; + } public DocumentText(byte[] hash, string text) { this.Hash = BitConverter.ToString(hash).ToLower().Replace("-", ""); diff --git a/AIProofread/core/Tools.cs b/AIProofread/core/Tools.cs index fc4048a..39b4249 100644 --- a/AIProofread/core/Tools.cs +++ b/AIProofread/core/Tools.cs @@ -1,27 +1,41 @@ using Newtonsoft.Json; +using System; using System.Collections.Generic; +using System.Linq; using System.Security.Cryptography; +using System.Security.Policy; using System.Text; +using static System.Net.Mime.MediaTypeNames; namespace AIProofread { public class Tools { + private static readonly string[] paragSplitor = new string[] { "\r", "\n", "\r\n" }; public static Dictionary GetAllText() { // 获取当前文档所有文本 string allText = Globals.ThisAddIn.Application.ActiveDocument.Range().Text; List list = new List(); - + if (allText != null && allText.Trim().Length > 0) { // 开始分割 MD5 md5 = new MD5CryptoServiceProvider(); - List lines = StringUtil.CutTextToSentences(allText); + + List lines = allText.Split(paragSplitor, StringSplitOptions.None).ToList();//StringUtil.CutTextToSentences(allText); foreach (string text in lines) { - byte[] hash = md5.ComputeHash(Encoding.Default.GetBytes(text)); - list.Add(new DocumentText(hash, text)); + if(text.Trim().Length > 0) + { + byte[] hash = md5.ComputeHash(Encoding.Default.GetBytes(text)); + list.Add(new DocumentText(hash, text + "\n")); + } + else + { + + list.Add(new DocumentText(text + "\n")); + } } } var map = new Dictionary diff --git a/AIProofread/obj/Debug/AIProofread.csproj.GenerateResource.cache b/AIProofread/obj/Debug/AIProofread.csproj.GenerateResource.cache index 30ba720e7c2118631cc49288d832cc276f62d6c7..bd20f29528b16bf0048035c09bc4481fe7c4fd5f 100644 GIT binary patch delta 23 ccmdnUv5{kg5(|I#H0Fg5{O@ouGBSVw09{4~G5`Po delta 23 ccmdnUv5{kg5(|HFs-Fjs{~ZoSMg|Z708YmQ_W%F@ diff --git a/AIProofread/obj/Debug/AIProofread.dll b/AIProofread/obj/Debug/AIProofread.dll index 4b19588cc87265163592471e71a8996d1c1e27f7..dba262f75aaa26413fdacd049d8a80ccea76cc7c 100644 GIT binary patch delta 28738 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 delta 27538 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 LF!40y2j%|(0{Pb> diff --git a/AIProofread/obj/Debug/AIProofread.pdb b/AIProofread/obj/Debug/AIProofread.pdb index 799a10de99e7a4bd6173cd701535ad42903dbcb2..43008005d13e7620c2d5c164c8ebbdd8f637b2d2 100644 GIT binary patch delta 17783 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 SzQW8uK)M6mrPoluvi|{0vz$f% delta 16622 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