From 80658debb68683f0811429c6c62fa32d50c4684e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=9F=B3=E5=85=B4=E9=9C=96?= <3189844089@qq.com> Date: Sat, 25 Oct 2025 23:20:05 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E5=9B=BE=E6=A0=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 102 +++++++++------------------------------------------ 1 file changed, 17 insertions(+), 85 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 581bc00..5df5b1a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,90 +1,22 @@ -# 变更日志 +# 更新日志 -所有针对 MagicWord 的显著变更都会记录在这个文件中。 +## [2.0.1] - 2024-11-03 -格式基于 [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), -版本遵循 [语义化版本](https://semver.org/spec/v2.0.0.html)。 -库依赖: -- PyQt5 -- python-docx -- PyPDF2 -- requests -- beautifulsoup4 -依赖地址: -- [PyQt5](https://pypi.org/project/PyQt5/) -- [python-docx](https://pypi.org/project/python-docx/) -- [PyPDF2](https://pypi.org/project/PyPDF2/) -- [requests](https://pypi.org/project/requests/) -- [beautifulsoup4](https://pypi.org/project/beautifulsoup4/) +### 修改 +- 更改应用程序图标:现在使用类似 Microsoft Word 的图标,但将字母 "W" 更改为 "M" 以代表 MagicWord +- 图标文件位于 `resources/icons/app_icon.png` +- 支持多种分辨率的图标(32x32, 64x64, 128x128, 256x256) -## [0.1.0] - 2025-10-12 +## [2.0.0] - 2024-11-01 ### 新增 - -- 实现核心文档打字伪装功能 -- 支持多种文档格式 (.txt, .docx, .pdf) -- 实现天气信息显示功能 -- 实现每日一句名言显示功能 -- 添加基础配置管理系统 -- 实现文件管理和解析模块 -- 添加输入处理和准确率计算功能 -- 创建图形用户界面 -- 实现打包和分发脚本 -- 添加测试套件 - -### 更改 - -- 优化UI界面设计 -- 改进文档解析性能 -- 提升应用稳定性和错误处理能力 - -### 修复 - -- 修复了文档解析过程中的编码问题 -- 修复了界面布局在不同分辨率下的适配问题 -- 修复了网络请求超时处理问题 - -## [开发中] - 未来版本 - -### 计划新增 - -- EPUB格式支持 -- 打字速度统计和历史记录 -- 更多个性化设置选项 -- 云同步功能 -- 社区功能和内容分享 - - -## [0.2.0] - 2025-10-19 - -### 新增 -- 实现完整的天气功能集成 -- 添加自动IP定位功能,自动获取用户地理位置 -- 支持中英文城市名智能映射(如:Tianjin → 天津) -- 扩展城市支持到40+个主要城市 -- 添加4个不同的IP定位API接口(搜狐、pconline、ip-api、淘宝) -- 实现天气数据缓存和状态栏显示 -- 添加城市选择下拉菜单功能 -- 集成3天天气预报功能 -- 添加详细的错误处理和调试日志 - -### 更改 -- 重构天气API集成架构 -- 优化城市ID映射机制 -- 改进错误处理和用户反馈 -- 增强网络请求稳定性 -- 优化UI界面布局和响应速度 - -### 修复 -- 修复KeyError天气数据访问问题 -- 修复自动定位功能失败问题 -- 修复城市ID映射错误 -- 修复网络请求超时和异常处理 -- 修复界面状态更新问题 -- 修复中英文城市名混用问题 - -### 技术改进 -- 实现多重IP定位备份机制 -- 添加智能城市名解析和映射 -- 优化API调用性能和错误恢复 -- 增强代码模块化和可维护性 \ No newline at end of file +- 全新的 Word 风格用户界面 +- 功能区(Ribbon)设计 +- 改进的文档处理功能 +- 天气显示功能 +- 每日一句名言功能 + +### 修改 +- 重构了整个用户界面以模仿 Microsoft Word +- 改进了打字伪装功能 +- 增强了文件处理能力 \ No newline at end of file -- 2.34.1 From ffb37173c41134df58f5e28db975f878184e2b61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=A9=AC=E5=AD=90=E6=98=82?= <929110464@qq.com> Date: Sun, 26 Oct 2025 12:52:44 +0800 Subject: [PATCH 2/5] changelog --- CHANGELOG.md | 134 +++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 131 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5df5b1a..fc98bf9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,13 +1,141 @@ -# 更新日志 +# 变更日志 -## [2.0.1] - 2024-11-03 +所有针对 MagicWord 的显著变更都会记录在这个文件中。 + +格式基于 [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +版本遵循 [语义化版本](https://semver.org/spec/v2.0.0.html)。 +库依赖: +- PyQt5 +- python-docx +- PyPDF2 +- requests +- beautifulsoup4 +依赖地址: +- [PyQt5](https://pypi.org/project/PyQt5/) +- [python-docx](https://pypi.org/project/python-docx/) +- [PyPDF2](https://pypi.org/project/PyPDF2/) +- [requests](https://pypi.org/project/requests/) +- [beautifulsoup4](https://pypi.org/project/beautifulsoup4/) + +## [0.1.0] - 2025-10-12 + +### 新增 + +- 实现核心文档打字伪装功能 +- 支持多种文档格式 (.txt, .docx, .pdf) +- 实现天气信息显示功能 +- 实现每日一句名言显示功能 +- 添加基础配置管理系统 +- 实现文件管理和解析模块 +- 添加输入处理和准确率计算功能 +- 创建图形用户界面 +- 实现打包和分发脚本 +- 添加测试套件 + +### 更改 + +- 优化UI界面设计 +- 改进文档解析性能 +- 提升应用稳定性和错误处理能力 + +### 修复 + +- 修复了文档解析过程中的编码问题 +- 修复了界面布局在不同分辨率下的适配问题 +- 修复了网络请求超时处理问题 + +## [开发中] - 未来版本 + +### 计划新增 + +- EPUB格式支持 +- 打字速度统计和历史记录 +- 更多个性化设置选项 +- 云同步功能 +- 社区功能和内容分享 + + +## [0.2.0] - 2025-10-19 + +### 新增 +- 实现完整的天气功能集成 +- 添加自动IP定位功能,自动获取用户地理位置 +- 支持中英文城市名智能映射(如:Tianjin → 天津) +- 扩展城市支持到40+个主要城市 +- 添加4个不同的IP定位API接口(搜狐、pconline、ip-api、淘宝) +- 实现天气数据缓存和状态栏显示 +- 添加城市选择下拉菜单功能 +- 集成3天天气预报功能 +- 添加详细的错误处理和调试日志 + +### 更改 +- 重构天气API集成架构 +- 优化城市ID映射机制 +- 改进错误处理和用户反馈 +- 增强网络请求稳定性 +- 优化UI界面布局和响应速度 + +### 修复 +- 修复KeyError天气数据访问问题 +- 修复自动定位功能失败问题 +- 修复城市ID映射错误 +- 修复网络请求超时和异常处理 +- 修复界面状态更新问题 +- 修复中英文城市名混用问题 + +### 技术改进 +- 实现多重IP定位备份机制 +- 添加智能城市名解析和映射 +- 优化API调用性能和错误恢复 +- 增强代码模块化和可维护性 + +## [0.2.1] - 2025-10-20 + +### 新增 +- 集成每日一言功能到WordRibbon界面 +- 添加每日一言自动获取和显示功能 +- 实现每日一言刷新按钮和手动刷新功能 +- 添加每日一言显示/隐藏切换功能 +- 集成天气功能到WordRibbon工具栏 +- 实现天气信息状态栏显示 +- 添加城市选择和天气刷新功能 + +### 更改 +- 将视图菜单中的"天气信息"选项重命名为"附加工具" +- 优化每日一言显示格式,移除"每日一言:"前缀 +- 改进天气信息状态栏显示文本 +- 统一UI界面风格和交互逻辑 +- 优化错误处理和用户反馈信息 + +### 修复 +- 修复每日一言API集成问题 +- 修复天气数据解析和显示错误 +- 修复UI组件显示/隐藏状态同步问题 +- 修复网络请求异常处理 + +### 技术改进 +- 重构WordRibbon类结构,增强可扩展性 +- 优化API调用和数据处理逻辑 +- 改进组件间的通信机制 +- 增强代码的模块化和可维护性 + +### 发布/构建与工程维护 - 2025-10-22 +- 新增Apple ARM64的软件 + +### 未来计划-2025-10-23 +- 新增断点记录 +- 改进页面更像word +- 新增切换输入模式功能 +- 详细天气模块中,去除天气预报,只显示当前天气 + +## [0.2.2] - 2025-10-25 ### 修改 - 更改应用程序图标:现在使用类似 Microsoft Word 的图标,但将字母 "W" 更改为 "M" 以代表 MagicWord - 图标文件位于 `resources/icons/app_icon.png` - 支持多种分辨率的图标(32x32, 64x64, 128x128, 256x256) -## [2.0.0] - 2024-11-01 +## [0.2.3] - 2025-10-26 ### 新增 - 全新的 Word 风格用户界面 -- 2.34.1 From e3375737282b6bc5f7a063573d49c04a1b532b00 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=A9=AC=E5=AD=90=E6=98=82?= <929110464@qq.com> Date: Sun, 26 Oct 2025 12:56:02 +0800 Subject: [PATCH 3/5] changlog --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fc98bf9..61e5301 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -87,7 +87,7 @@ - 实现多重IP定位备份机制 - 添加智能城市名解析和映射 - 优化API调用性能和错误恢复 -- 增强代码模块化和可维护性 +- 增强代码的模块化和可维护性 ## [0.2.1] - 2025-10-20 -- 2.34.1 From dd7fb2cbb9bb5adc94dad648e6b2bf1a9b209ee3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=A9=AC=E5=AD=90=E6=98=82?= <929110464@qq.com> Date: Sun, 26 Oct 2025 13:02:55 +0800 Subject: [PATCH 4/5] =?UTF-8?q?chore:=20=E6=9B=B4=E6=96=B0.gitignore?= =?UTF-8?q?=E4=BB=A5=E4=BF=9D=E7=95=99=E5=9B=BE=E6=A0=87=E5=92=8C=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E8=B5=84=E6=BA=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 添加例外规则以保留resources目录下的图标和配置文件 --- .gitignore | 5 +++++ resources/icons/app_icon.ico | 1 + 2 files changed, 6 insertions(+) create mode 100644 resources/icons/app_icon.ico diff --git a/.gitignore b/.gitignore index 7f08f94..f4d94b7 100644 --- a/.gitignore +++ b/.gitignore @@ -211,6 +211,11 @@ dist_package/ /resources/user_data/ /resources/cache/ +# Resources - keep icons and config +!/resources/config/ +!/resources/config/icons/ +!/resources/icons/ + # Test reports htmlcov/ .coverage diff --git a/resources/icons/app_icon.ico b/resources/icons/app_icon.ico new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/resources/icons/app_icon.ico @@ -0,0 +1 @@ + -- 2.34.1 From 287d2b9e1c5769cbd5eca52c6a3d6848960b6453 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=A9=AC=E5=AD=90=E6=98=82?= <929110464@qq.com> Date: Sun, 26 Oct 2025 13:20:02 +0800 Subject: [PATCH 5/5] =?UTF-8?q?feat(=E5=9B=BE=E6=A0=87):=20=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E5=A4=9A=E5=B0=BA=E5=AF=B8=E5=BA=94=E7=94=A8=E5=9B=BE?= =?UTF-8?q?=E6=A0=87=E5=B9=B6=E4=BC=98=E5=8C=96=E5=9B=BE=E6=A0=87=E5=8A=A0?= =?UTF-8?q?=E8=BD=BD=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 添加32x32、64x64、128x128和256x256尺寸的应用图标 删除旧的ico格式图标文件 优化代码以支持多尺寸图标文件的自动选择 移除重复的图标设置代码 --- resources/icons/app_icon.ico | 1 - resources/icons/app_icon_128*128.png | Bin 0 -> 1432 bytes resources/icons/app_icon_256*256.png | Bin 0 -> 2898 bytes resources/icons/app_icon_32*32.png | Bin 0 -> 372 bytes resources/icons/app_icon_64*64.png | Bin 0 -> 763 bytes src/main.py | 18 ++++++++++++++-- src/word_main_window.py | 31 ++++++++++++++++----------- 7 files changed, 34 insertions(+), 16 deletions(-) delete mode 100644 resources/icons/app_icon.ico create mode 100644 resources/icons/app_icon_128*128.png create mode 100644 resources/icons/app_icon_256*256.png create mode 100644 resources/icons/app_icon_32*32.png create mode 100644 resources/icons/app_icon_64*64.png diff --git a/resources/icons/app_icon.ico b/resources/icons/app_icon.ico deleted file mode 100644 index 8b13789..0000000 --- a/resources/icons/app_icon.ico +++ /dev/null @@ -1 +0,0 @@ - diff --git a/resources/icons/app_icon_128*128.png b/resources/icons/app_icon_128*128.png new file mode 100644 index 0000000000000000000000000000000000000000..52a63263854a8502eace12865841c9eac8b8c46b GIT binary patch literal 1432 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrV2$^5aSW-L^LBP@uyDG_asN04 z7N>=-t3UDiy$)H$D$25j=P1`{pZ7mG>bUKjuluD}UF?qgu683TcdnRAhG523F@Zz7 z_nheF)aO)unUhzt`Fzlc4YzFnf8JeFwt2Q^UG=%*bD!6&UiP|d5=+FL_rJI~-irw` z$P7-TZ`tr`^YRz7XUD&-K9^_XsB6A&>4&s4-`)%Fx$62<{r+Z~y4SlIfBpKcSj3d0 z*vPU#~r5 zc+ad)ETJOj;v%UP8hi}KjBd-rGn4Y}n&cgK@y#}C|Nncx|HR9M zTNtd$<@{zGn{{43SL#E>oszu=ZzM<5ZuR}^|Lo*T1AzxS-(Ge2yi-W)%z4kV?+AM51SVcD>b%}e9K zc^lp*KlWUiCFbhHE&atuadvQ`%7Nn4e|dXD=6y7c)}J!@e)=6F!8Z>Lec3b{@g6ty6ud?xARxLXU#D$mz&F@%~%(}F(Feb zWA%E4_-XB>Kho6?`~f=i__V$yK%aQ;U&ZmbB!V+Rly%(;--XUg8k-vQr&`@hsVJHF zY}(-?ymd@pX3jQQX;SdD|1^%>LpTskPk}hk_d9f2#%i=c;8cSiEu8ojmd1H|?_- zr(NHk@!=--<%-{os~B~4{~Z4=^dUCv~jK zJuOpNNOj!?QH7~&LR}^W3zP0&TYp;OZ)AJ@HKrxs-q_By4>4V^RJQxrBOS9kC$5B> zBAYyzm&!l8ynK1T^sze0IcXceN{2P<{;PQFwztHw8nMg;!U<3L{TjZ0;Ij?NxtkZh z=i%a|t^ZGy_0-kcINwRsZSdQ!#QWm(o}HHKFFT|bGR|G8VKk?>KA~&T?&>45-{eEP}|E{3d>wKVd%1IrHhc=eh5B&wZbJpXc17 zZ+v}>Hkxk)02q;vc%1+M(k&r?M(H3V?M@T`o3@d?4hK-VYI(1JpbtVgZ|b%6nd^3t9VRB|0;F%l;}gnp(V?l&GRJJ|+jJQ!;2a92wO+f9IVo(FMm*`CI|y5-G$a99!G(xB)TR&~JR6Xei@n``bm$ZGq-a8g_!c zu;we^Zo2AtqqS8;8xG(s#fDoU1?fUez8m9ETT9p7>XQ}!;fxbDW#9x8d>GAAefH`~ zDdw+gmz$@)JCVSiQCwe&#X}I9ROqM2fVHMgY0n#*{qzjbB;a9zN?EZ+AxeHTbBMlW zf!ggriDT~{{DW?uLINiS2AxM~)AOuB)cVba!MpZnZpNa~qzm6m%NaKfV6%a8(p>2MuMG*l-#JeRq|npLAot~DEfK# zy<~@0n=XRO+&Erf$-<(x|{ zfcA3WC5|E#5@3)5y>?H3U^xdMsZRHYIv+qw z2HxL(`|h?uCam!Q9yIe8;|eL@^upbfyGm8?+y-dQ3l`}~>1!3zhQO(wc5{?$51%4Y zO)a!brmVlgAqBR3)DgZL8yz$$k8H-?DTq3zstJdZ)jgzdLvg?4THI>r-XH<%lXWlbHRy|+z=>0ZE{ zWjoBBZ!h7@?#sb^fp)5V@I&2{H$md8H0C0|A|Y=BkcMe$zkzG-*E zm?IIm`?X2!)vwzQRs}iPyCY1Va9PT&`A}bo)+Yy0YaZMZiY2RVhABnt@?lyuwFa-s zJ--7~m{*=lI9P9#b-+;8($q5$5V+GyC}+Z0R*Z|G{JR&AVDdCUoM7j?!xAYt9hSNH zD~DaHVw=TO;nyzgTlXB02Qo!w=({ko#1fXA~hR3NKqlC*VzRD9n=IHN;${Hdnaf zh8;JA=0*lOtCS;u9(KrwHYjSpnEI~nh&#KQKZXYliCcdWk`L=1P=A>Cx|11o%FkZs zn~urpzV(RPkNm&serdBn_NTl_g*!%)|F9!bYGk#}qDZe)iUa7YyyR+%=Q%_(+*&ZH*HcgwXZ}*$; z{G^5S#2SgmFKu3%Y%{Meh+Xvv2!iPbD3nnapjUgaH2;y0G59m9Rz zF*Ia0qxsJ(dxNi2Ez;pmFJM!#^-8gkCuK(aI+kxqR8ST(Z_c4f;T^mI6|IWi(8;>+ z?u^a~WZxFvY$%d%!VVQ6lVw3G7O1;*CzFh)hqzR(e5p8-kzWjuA_;nZFttbRq02~%=g+%g!msOFTo5LA z5?n??M2;V0Cuv14Pj{H=&({rdgVDAx+)C2Ahj(`9xe5-f+tWL(;pBzEb66H>=u~C~ z&(X~J>L~#cFjE4Zfu6Rj3xyj;n9^K?ogj3z`aD3+1h8MB_PdQ}_-UsH4B5xsm=5dS01<6A zCUZqkyon{Ly8@#=JTxk*?Cj%HbtaZ)t$8|K6U@I;#%!t&J@dc@%diF5 znC{3#0nI;`61qAxMEIf0E}F~7eB5YFNfiC$M+hBoypbf0TaXMssyAkIc3G$H0NDHS z^Xl4X6d7@`Ja}+#%;%|V15e&(o1hRTMb~!Q=?|UN*2ia1J;K9$-yEC;5qNN^m6|B~ z$ydBP23PXvvpW>d@@(t+MGRD!*X}lZE=!xCek``-CoCC?b|0P@uOl|>0KXl}BMyae z{){`!Gb)|3+lk%)6^bUpeD($ZcqZK%ADbjd)?Lmngb9}C928&hx=)aA8Td!q@uBU> z=njeY9dou7`?seaz()E~X$p8F@Y{lT_Sem7 zZ#s$t&+AkU7E1`Zx1^;$7YesSg(qF&^+JU`L?a|V(sgy0xGtwiUlWYDkpsMvcKGQf z>`z*h_xG*{9FX|5O%W&X=&Ay1z0Yd;5Cb^9cX@zX74S*!2Ja literal 0 HcmV?d00001 diff --git a/resources/icons/app_icon_32*32.png b/resources/icons/app_icon_32*32.png new file mode 100644 index 0000000000000000000000000000000000000000..9fb8df82c937c763beb07f7dc8e73f6eea9f0f5a GIT binary patch literal 372 zcmV-)0gL{LP)IU%&rmu-22okn^-sW;k%} zA#EK10te4N0{a#jfP!2?h@0Ws{WlCWcff&j4;dVdQKJFk`$r7_$!OXzk*eY3m1hjh zOpFXR`iN-ov{GU?aP|@Dwlk37fS2h=GfPmBGe9799Wk&yt?{DRRKukKY-t+AJx~G|M>{4A0}Pl(9l$WsqW}QGl3*TG SN_J%c0000KtJpTdv4|bmgoPmLt_&dW?d*v^7 zUGn2lFOmde|Fk3Rm8AXHk12Rm- zBr-B@zh!)XXU37ICmU~lFOu9*@L6x)+H@(o!&L{GjvI$x%)1$$y}RtU+@kz_TjJO> zxC~71?Ots6+}%HC=g(=|8}c7L>03Ad+n0kH8T#z^Z|Iyjf0_C22KkLpu)E*_tSQ!|Gdd%?ZuNI|F2vMX)eGtT=2Y(5*VLsb*mdyMO8L zEqfTc&kLVO={EZ2`zN+xm2XR_S#j0;Y2pg;AsYp*{y#g>k^RlK=G$@Vx6bd7HJZmO zHThrLRmR2(?eS(Sf<=DX)+)FjblcW&RGf2$SHpv%O<}@Uw7dSq?fv`jlDkNkmXE5# z!WGxVw!Y0N*z;PT?e|-wd8<>pUzRmD7Su|I%>TPm-m)cmexetn)9FPUPM)rK#V;Ka z{{QC*u8`1XO;(MSv%YLkNZBAAJ9igv%(=q_yZcU6Yzs1;@y$U+;9{;q*zZ-mtE}w{ z;{d^Iy+ z!6y>|)BkHD1zW8kLi+y_B+C