callmeyan 8284a9d552 break: ActiveDocument 改为实时获取
优化调试逻辑,增强日志记录,简化代码结构

- 修改 AIProofread.csproj.user 的 <StartAction> 配置,调试时直接启动项目。
- Bridge.cs 中增加异常处理的详细错误信息。
- DocumentInfo.cs 增加日志记录,调整 RunInMainThread 方法逻辑。
- DocumentList.cs 删除过时的 XML 注释。
- ThisAddIn.cs 优化文档管理逻辑,调整 ActiveDocument 属性为只读,改进文档列表处理,删除冗余代码。
2025-05-09 16:59:27 +08:00

102 lines
3.6 KiB
C#

using System;
using System.Text.RegularExpressions;
namespace AIProofread
{
public enum AppEnvironment
{
Dev,
Test,
Prod
}
public class AppServer
{
/// <summary>
/// 开发环境
/// </summary>
public const string DEV = "http://localhost:5173/";
/// <summary>
/// 测试环境
/// </summary>
public const string PROD = "http://aijdw1.goldmye.com/";
public const string TEST = "http://tt-plugin.zverse.group/";
}
public class Config
{
public static readonly string APP_NAME = "AI校对王";
public static readonly string APP_VERSION = "2.2.5";
public static readonly string BuildVersion = "20250509_1656";
public static bool IS_WPS = false;
public static bool UpgradeForcedNotice = false;
public static readonly string APP_BASE_DIR = AppDomain.CurrentDomain.BaseDirectory;
public static readonly string CONFIG_FILE = AppDomain.CurrentDomain.BaseDirectory + "app.json";
public static string USER_MANUAL_URL = "https://aiprhelp.guomai.cn/";
/// <summary>
/// 文本背景色
/// </summary>
public static readonly string TextBackgroundColor = "#E9DABB"; // e9dabb D6AA69
public static string DeviceId = "";
#if DEBUG
/// <summary>
/// 网页访问地址
/// </summary>
public static string WEB_PATH = AppServer.DEV; //pre-gm-plugin.gachafun.com localhost:5173 gm2-plugin.zverse.group
public static bool RUN_IN_DEBUG = true;
public static AppEnvironment APP_ENV = AppEnvironment.Prod;
#else
public static string WEB_PATH = AppServer.PROD; // gm-plugin.gachafun.com pre-gm-plugin.gachafun.com
public static bool RUN_IN_DEBUG = false;
public static AppEnvironment APP_ENV = AppEnvironment.Prod;
#endif
public static readonly string APP_DATA_PATH = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\ai_proofread";
public static readonly string APP_LOG_PATH = APP_DATA_PATH + "\\logs\\";
public static readonly string WEB_DATA_PATH = APP_DATA_PATH + "\\userdata";
/// <summary>
/// 书签前缀
/// </summary>
public static readonly string BOOKMARK_NAME_PREFIX = "ai_proofread_";
private static readonly Regex regex = new Regex("^ai_proofread_\\d+$");
public static bool IsProofreadMark(string name)
{
return name != null && regex.IsMatch(name);
}
/// <summary>
/// 获取书签名称
/// </summary>
/// <param name="id">校对提示id</param>
/// <returns>书签名称</returns>
public static string BuildBookmarkName(int id)
{
return BOOKMARK_NAME_PREFIX + id;
}
/// <summary>
/// 根据书签名称获取校对提示id
/// </summary>
/// <param name="name">书签名称</param>
/// <returns>校对提示id</returns>
public static int GetBookmarkIdByName(string name)
{
if (!IsProofreadMark(name)) return -1;
return int.Parse(name.Substring(BOOKMARK_NAME_PREFIX.Length));
}
/// <summary>
/// 获取完整访问路径
/// </summary>
/// <param name="path"></param>
/// <returns></returns>
public static string WebPath(string path)
{
Random r = new Random();
return WEB_PATH + path + (path.IndexOf("?") == -1 ? "?":"&") + $"ver={APP_VERSION}&r=" + r.NextDouble();
}
}
}