pymud 0.20.2__tar.gz → 0.20.2a2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pymud-0.20.2/src/pymud.egg-info → pymud-0.20.2a2}/PKG-INFO +24 -30
- {pymud-0.20.2 → pymud-0.20.2a2}/README.md +24 -30
- {pymud-0.20.2 → pymud-0.20.2a2}/pyproject.toml +1 -1
- {pymud-0.20.2 → pymud-0.20.2a2}/src/pymud/extras.py +28 -35
- {pymud-0.20.2 → pymud-0.20.2a2}/src/pymud/pymud.py +7 -24
- {pymud-0.20.2 → pymud-0.20.2a2}/src/pymud/session.py +28 -35
- {pymud-0.20.2 → pymud-0.20.2a2}/src/pymud/settings.py +4 -6
- {pymud-0.20.2 → pymud-0.20.2a2/src/pymud.egg-info}/PKG-INFO +24 -30
- {pymud-0.20.2 → pymud-0.20.2a2}/LICENSE.txt +0 -0
- {pymud-0.20.2 → pymud-0.20.2a2}/setup.cfg +0 -0
- {pymud-0.20.2 → pymud-0.20.2a2}/src/pymud/__init__.py +0 -0
- {pymud-0.20.2 → pymud-0.20.2a2}/src/pymud/__main__.py +0 -0
- {pymud-0.20.2 → pymud-0.20.2a2}/src/pymud/dialogs.py +0 -0
- {pymud-0.20.2 → pymud-0.20.2a2}/src/pymud/logger.py +0 -0
- {pymud-0.20.2 → pymud-0.20.2a2}/src/pymud/main.py +0 -0
- {pymud-0.20.2 → pymud-0.20.2a2}/src/pymud/modules.py +0 -0
- {pymud-0.20.2 → pymud-0.20.2a2}/src/pymud/objects.py +0 -0
- {pymud-0.20.2 → pymud-0.20.2a2}/src/pymud/pkuxkx.py +0 -0
- {pymud-0.20.2 → pymud-0.20.2a2}/src/pymud/protocol.py +0 -0
- {pymud-0.20.2 → pymud-0.20.2a2}/src/pymud.egg-info/SOURCES.txt +0 -0
- {pymud-0.20.2 → pymud-0.20.2a2}/src/pymud.egg-info/dependency_links.txt +0 -0
- {pymud-0.20.2 → pymud-0.20.2a2}/src/pymud.egg-info/entry_points.txt +0 -0
- {pymud-0.20.2 → pymud-0.20.2a2}/src/pymud.egg-info/requires.txt +0 -0
- {pymud-0.20.2 → pymud-0.20.2a2}/src/pymud.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: pymud
|
3
|
-
Version: 0.20.
|
3
|
+
Version: 0.20.2a2
|
4
4
|
Summary: a MUD Client written in Python
|
5
5
|
Author-email: "newstart@pkuxkx" <crapex@hotmail.com>
|
6
6
|
Maintainer-email: "newstart@pkuxkx" <crapex@hotmail.com>
|
@@ -737,23 +737,17 @@ Requires-Dist: prompt-toolkit
|
|
737
737
|
|
738
738
|
## 版本更新信息
|
739
739
|
|
740
|
-
|
741
|
-
+ 功能调整: MTTS协商中,将256 Color明确写入协商回复。原先仅包含ANSI 和 TrueColor
|
740
|
+
## 0.20.2 (2024-11-18)
|
741
|
+
+ 功能调整: MTTS协商中,将256 Color明确写入协商回复。原先仅包含ANSI 和 TrueColor。推测武庙特殊颜色偶尔不正常与此有关。
|
742
742
|
+ 功能调整: 修复了纯文本正则处理,目前理论上支持所有ANSI控制代码的处置,以正确响应纯文本触发器。
|
743
743
|
+ 功能调整: 修改了#var和#global的显示实现,提高了变量打印排列的整齐度和辨识度,以适应长值变量和复杂变量。
|
744
|
-
+ 问题修复: 修复了单行颜色代码跨行无法显示问题。现在星宿毒草可以正常辨认颜色了。
|
745
|
-
+ 功能调整: 调整了info/warning/error的显示处理,默认样式进行了修改。
|
746
|
-
+ 功能新增: 新增菜单选项:打开/关闭美化,以便于更好的在触发器时复制出正确的内容(以前计算可能不准确)。
|
747
|
-
+ 功能新增: 状态栏的分隔符可以通过本地设置取消了。在pymud.cfg的client中新增设置,将 status_divider 设置为 false 即可。
|
748
|
-
+ 功能调整: 在pymud.cfg的client中可以支持将buffer_lines设置为0了,表示不清除缓存。
|
749
|
-
+ 功能新增: 为状态栏显示函数增加了异常保护,再有status_maker出错的时候,状态栏会显示出错信息。
|
750
744
|
|
751
|
-
|
745
|
+
## 0.20.1 (2024-11-16)
|
752
746
|
+ 功能调整: 会话中触发器匹配实现进行部分调整,减少循环次数以提高响应速度
|
753
747
|
+ 功能调整: #test / #show 触发器测试功能调整,现在会对使能的和未使能的触发器均进行匹配测试。其中,#show 命令仅测试,而 #test 命令会导致触发器真正响应。
|
754
748
|
+ 功能新增: pymud对象新增了一个持续运行的1s的周期定时任务。该任务中会刷新页面显示。可以使用 session.application.addTimerTickCallback 和 session.application.removeTimerTickCallback 来注册和解除定时器回调。
|
755
749
|
|
756
|
-
|
750
|
+
## 0.20.0 (2024-08-25)
|
757
751
|
+ 功能调整: 将模块主入口函数从__main__.py中移动到main.py中,以使可以在当前目录下,可直接使用pymud,也可使用python -m pymud启动
|
758
752
|
+ 功能调整: 使用argsparser标准模块来配置命令行,可以使用 pymud -h 查看命令行具体参数及说明
|
759
753
|
+ 功能新增: 命令行参数增加指定启动目录的功能,参数为 -s, --startup_dir。即可以从任意目录通过指定脚本目录方式启动PyMUD了。
|
@@ -815,21 +809,21 @@ Requires-Dist: prompt-toolkit
|
|
815
809
|
+ 问题修复: 修复 #var 等命令中,若含有中文则等号位置不对齐的问题
|
816
810
|
+ 功能调整: 在 #tri 等命令中,当对象的 group 为空时,将不再显示 group 属性,减少无用信息
|
817
811
|
|
818
|
-
|
812
|
+
## 0.19.4 (2024-04-20)
|
819
813
|
+ 功能调整: info 现在 msg 恢复为可接受任何类型参数,不一定是 str
|
820
814
|
+ 功能调整: #var, #global 指令中,现在可以使用参数扩展了,例如 #var max_qi @qi
|
821
815
|
+ 功能调整: #var, #global 指令中,现在对字符串会先使用 eval 转换类型,转换失败时使用 str 类型。例如, #var myvar 1 时,myvar类型将为int
|
822
816
|
+ 功能调整: 变量替代时,会自动实现类型转化,当被替代变量值为非 str 类型时不会再报错
|
823
817
|
+ 问题修复: 修复之前从后向前选择时,无法复制的问题
|
824
818
|
|
825
|
-
|
819
|
+
## 0.19.3post2 (2024-04-05)
|
826
820
|
+ 问题修复: 一次发送多个命令时,发送顺序可能不正确的情况
|
827
821
|
+ 功能增加: 新增一个exec_async函数,是exec函数的异步形式。可以在其他会话中异步执行一段代码
|
828
822
|
+ 帮助完善: 帮助文档逻辑完善,已完成整个包的内置文档的编写和修改
|
829
823
|
+ 注: 由于我没弄太明白 readthedocs.io 网站对于读取github源代码的逻辑,目前只能通过新发布正式版本的形式来使 readthedocs.io 网站的文档中的类参考自动更新。
|
830
824
|
+ 问题修复: 修复退出程序时的小bug
|
831
825
|
|
832
|
-
|
826
|
+
## 0.19.2post2 (2024-03-24)
|
833
827
|
+ 错误修复:订正部分错别字、错误帮助、错别格式
|
834
828
|
+ 系统完善:完善帮助体系,按reST格式重写所有有关的docstring
|
835
829
|
+ 功能调整:session.exec_command / exec_command_async / exec 系列命令调整,现在可以在exec时带变量参数了。例如 session.exec("dazuo @dzpt"),直接调用 dzpt的变量值
|
@@ -843,14 +837,14 @@ Requires-Dist: prompt-toolkit
|
|
843
837
|
+ 帮助完善: 帮助文档逻辑完善
|
844
838
|
+ 实现调整: 改用官方示例的task清除方式,每个任务结束后清除
|
845
839
|
|
846
|
-
|
840
|
+
## 0.19.1 (2024-03-06)
|
847
841
|
+ 功能新增: 新增鼠标启用禁用功能,以适用于ssh远程情况下的复制功能。F2快捷键可以切换状态。当鼠标禁用时,底部状态栏右侧会显示“鼠标已禁用状态”
|
848
842
|
+ 功能新增: 新增快捷键F1会直接通过浏览器打开帮助网址 https://pymud.readthedocs.io/
|
849
843
|
+ 功能新增: 新增默认快捷键F3=#ig, F4=#cls, F11=#close, F12=#exit。此几个快捷键通过配置文件进行配置,可以自行定义或修改。F1、F2为写死的系统功能。
|
850
844
|
+ 功能调整: 将除#session之外的所有其他#命令实现统一到Session类中实现,这些命令均支持通过Session.exec_command运行
|
851
845
|
+ 功能调整: python -m pymud init时,创建的pymud.cfg文件增加了keys字典
|
852
846
|
|
853
|
-
|
847
|
+
## 0.19.0 (2024-03-01)
|
854
848
|
+ 实现调整: session.info/warning/error处理多行时,会给每一行加上同样颜色
|
855
849
|
+ 功能新增: 初次运行时,可以使用python -m pymud init来初始化环境,自动创建目录并在该目录中建立配置文件和样例脚本文件
|
856
850
|
+ 实现调整: 将缓冲清除行数的实现调整到SessionBuffer中,减少代码耦合并进一步降低内存占用
|
@@ -860,7 +854,7 @@ Requires-Dist: prompt-toolkit
|
|
860
854
|
+ 实现调整: 调整COPY-RAW模式复制,即使仅选中行中的部分内容,也自动识别整行(多行模式也是整个多行)
|
861
855
|
+ 功能新增: Settings中新增keys字典,用于定义快捷键。可定义快捷键参见prompt_toolkit中Keys的定义。其值为可在session.exec_command运行支持的所有内容。该字典内容可以被pymud.cfg所覆盖。
|
862
856
|
|
863
|
-
|
857
|
+
## 0.18.4post4 (2024-02-23)
|
864
858
|
+ 功能新增:新增Settings.client["buffer_lines"],表示保留的缓冲行数(默认5000)。当Session内容缓冲行数达到该值2倍时(10000行),将截取一半(5000行),后一半内容进行保留,前一半丢弃。此功能是为了减少长时挂机的内存消耗和响应时间。
|
865
859
|
+ 功能修复:解决在显示美化(Settings.client["beautify"])打开之后,复制部分文字不能正确判断起始终止的问题。
|
866
860
|
+ 功能调整:修改缓冲行数判断逻辑,加快客户端判断响应速度。
|
@@ -868,21 +862,21 @@ Requires-Dist: prompt-toolkit
|
|
868
862
|
+ 功能调整:将帮助窗口中的链接改到帮助网址: https://pymud.readthedocs.org
|
869
863
|
+ 问题修复:修复了随包提供的pkuxkx.py样例脚本中的几处错误
|
870
864
|
|
871
|
-
|
865
|
+
## 0.18.3 (2024-02-07)
|
872
866
|
+ 功能调整:原#unload时通过调用__del__来实现卸载的时间不可控,现将模块卸载改为调用unload函数。若需卸载时人工清除有关定时器、触发器等,请在Configuration类下新增unload函数(参数仅self),并在其中进行实现
|
873
867
|
+ 功能新增:新增会话Variable和全局Global的删除接口。可以通过session.delVariable(name)删除一个变量,可以通过session.delGlobal(name)来删除一个全局Global变量
|
874
868
|
|
875
|
-
|
869
|
+
## 0.18.2 (2024-02-06)
|
876
870
|
+ 问题修复:修改了定时器实现,以避免出现递归调用超限异常
|
877
871
|
+ 问题修复:修改了参数替代时的默认值,从None改为字符串"None",以避免替代时报None异常
|
878
872
|
|
879
|
-
|
873
|
+
## 0.18.1 (2024-02-05)
|
880
874
|
+ 问题修复:统一处置了task.cancel的参数和create_task的name属性,以适应更低版本的python环境(低至3.7)
|
881
875
|
+ 实现调整:为解决同步/异步执行问题,在CodeLine和CodeBlock的实现中,会通过调用命令来判断是否使用同步模式(默认为异步)。#gag、#replace为强制同步,#wa为强制异步。当同时存在时,同步失效,异步执行。
|
882
876
|
+ 实现调整:将%line、%raw的访问传递到触发器内部的执行中,避免同步异步问题。
|
883
877
|
+ 新增文档:将帮助文档添加到本项目,帮助文档自动同步到 pymud.readthedocs.org (文档内容暂未更新)
|
884
878
|
|
885
|
-
|
879
|
+
## 0.18.0 (2024-01-24)
|
886
880
|
+ 问题修复:修复了delTrigger/delAlias等等无法删除对象的问题
|
887
881
|
+ 功能调整:delTrigger等函数,修改为既可以接受Trigger对象本身,也可以接受其id。其他类似
|
888
882
|
+ 功能增加:增加了delTriggers(注意,带s)等函数,可以删除多个指定对象。可接受列表、元组等可迭代对象,并且其内容既可以为对象本身,也可以为id。
|
@@ -901,13 +895,13 @@ Requires-Dist: prompt-toolkit
|
|
901
895
|
+ 功能调整:从菜单里点击创建会话时,会自动以登录名为本会话创建id变量
|
902
896
|
+ 当前已知问题:由于同步/异步执行问题,在SimpleTrigger中,#gag和#replace的执行结果会很奇怪,可能会隐藏和替换掉非触发行。可行的办法为在onSuccess里,调用session.replace进行处理。
|
903
897
|
|
904
|
-
|
898
|
+
## 0.17.4 (2024-01-08)
|
905
899
|
+ 问题修复:修复了DotDict在dump时出现错误的问题
|
906
900
|
+ 问题修复:修改了reconnect的实现方式,修复了断开重连时报错的问题
|
907
901
|
+ 功能增加:为Session增加两个事件属性,分别为event_connected和event_disconnected,接受一个带有session参数的函数,在连接和连接断开时触发。
|
908
902
|
+ 功能调整:调整了时间显示格式,只显示到秒,不显示毫秒数。
|
909
903
|
|
910
|
-
|
904
|
+
## 0.17.3 (2024-01-02)
|
911
905
|
+ 问题修复:修复了原有的#repeat功能。命令行#repeat/#rep可以重复输入上一次命令(这个基本没用,主要是我在远程连接时,手机上没有方向键...)
|
912
906
|
+ 问题修复:修改定时器的实现方式,真正修复了定时器每reload后会新增一个的bug。
|
913
907
|
+ 功能增加:命令行使用#tri, #ali, #cmd, #ti时,除了接受on/off参数外,增加了del参数,可以删除对应的触发器、别名、命令、定时器。例如:#ti tm_test del 可以删除id为“tm_test”的定时器。
|
@@ -915,7 +909,7 @@ Requires-Dist: prompt-toolkit
|
|
915
909
|
+ 功能调整:调整了Timer和SimpleTimer在#timer时的显示格式。
|
916
910
|
+ 实现调整:调整了Session.clean实现中各对象清理的顺序,将任务清除移到了最后。
|
917
911
|
|
918
|
-
|
912
|
+
## 0.17.2post4 (2023-12-29)
|
919
913
|
+ 功能修改:会话菜单 "显示/隐藏命令" 和 "打开/关闭自动重连" 操作后,增加在当前会话中提示状态信息。
|
920
914
|
+ 功能修改:Timer实现进行修改,以确保一个定时器仅创建一个任务。
|
921
915
|
+ 功能调整:Timer对象在复位Session对象时,也同时复位。目的是确保reload时不重新创建定时器任务。
|
@@ -924,7 +918,7 @@ Requires-Dist: prompt-toolkit
|
|
924
918
|
+ 问题修复:修复会话特定脚本模块会被其他会话加载的bug。
|
925
919
|
+ 问题修复:修复定时器Timer中的bug。
|
926
920
|
|
927
|
-
|
921
|
+
## 0.17.1post1 (2023-12-27)
|
928
922
|
本版对模块功能进行了整体调整,支持加载/卸载/重载/预加载多个模块,具体内容如下:
|
929
923
|
+ 当模块中存在名为Configuration类时,以主模块形式加载,即:自动创建该Configuration类的实例(与原脚本相同)
|
930
924
|
+ 当模块中不存在名为Configuration类时,以子模块形式加载,即:仅加载该模块,但不会创建Configuration的实例
|
@@ -965,7 +959,7 @@ Requires-Dist: prompt-toolkit
|
|
965
959
|
+ 功能修改:auto_reconnect设定目前对正常/异常断开均有效。若设置为True,当连接断开后15s后自动重连
|
966
960
|
+ 功能修改:会话菜单下增加“打开/关闭自动重连”子菜单,可以动态切换自动重连是否打开。
|
967
961
|
|
968
|
-
|
962
|
+
## 0.17.0 (2023-12-24)
|
969
963
|
+ 功能修改:调整修改GMCP数据的wildcards处理方式,恢复为eval,其余不变。(回滚0.16.2版更改)
|
970
964
|
+ 功能修改:将本地pymud.cfg文件的读取默认编码调整为utf8,以避免加载出现问题
|
971
965
|
+ 问题修复:sessions.py中,修复系统command与会话command重名的问题(这次才发现)
|
@@ -991,7 +985,7 @@ Requires-Dist: prompt-toolkit
|
|
991
985
|
+ 功能修改:所有匹配类对象的匹配模式patterns支持动态修改,涉及Alias,Trigger,Command。修改方式为直接对其patterns属性赋值。如tri.patterns = aNewPattern
|
992
986
|
+ 功能修改:连接/断开连接时刻都会在提示中增加时刻信息,而不论是否异常。
|
993
987
|
|
994
|
-
|
988
|
+
## 0.16.2 (2023-12-19)
|
995
989
|
+ 功能修改:归一化#命令和非#命令处理,使session.exec_command、exec_command_async、exec_command_after均可以处理#命令,例如session.exec_command("#save")。同时,也可以在命令行使用#all发送#命令,如"#all #save"此类
|
996
990
|
+ 功能修改:调整脚本加载与变量自动加载的顺序。当前为连接自动加载时,首先加载变量,然后再加载脚本。目的是使脚本的变化可以覆盖加载的变量内容,而不是反向覆盖。
|
997
991
|
+ 功能修改:会话变量保存和加载可以配置是否打开,默认为打开。见Settings.client["var_autosave] 和 Settings.client["var_autoload"]。同理,该配置可以被本地pymud.cfg所覆盖
|
@@ -1000,7 +994,7 @@ Requires-Dist: prompt-toolkit
|
|
1000
994
|
+ 功能修改:增加GMCP默认处理。当未使用GMCPTrigger对对应的GMCP消息进行处理时,默认使用[GMCP] name: value的形式输出GMCP收到的消息,以便于个人脚本调试。
|
1001
995
|
+ 功能修改:修改GMCP数据的处理方式从eval修改为json.load,其余不变。
|
1002
996
|
|
1003
|
-
|
997
|
+
## 0.16.1.post2 (2023-12-12)
|
1004
998
|
+ 问题修复:修复__init__.py中的__all__变量为字符串
|
1005
999
|
+ 功能增加:可以加载自定义Settings。在执行python -m pymud时,会自动从当前目录读取pymud.cfg文件。使用json格式将配置信息写在该文件中即可。支持模块中settings.py里的sessions, client, server, styles, text字段内容。
|
1006
1000
|
+ 功能增加:增加全局变量集,可以使用session.setGlobal和session.getGlobal进行访问,以便于跨session通信。也可以使用#global在命令行访问
|
@@ -1021,5 +1015,5 @@ Requires-Dist: prompt-toolkit
|
|
1021
1015
|
+ 功能修改:CodeLine的执行运行处理修改为不删除中间的多余空白
|
1022
1016
|
+ 问题修复:修改github项目地址为原pymud地址
|
1023
1017
|
|
1024
|
-
|
1025
|
-
首次发布到pip
|
1018
|
+
## 0.15.8 (2023-12-05)
|
1019
|
+
首次发布到pip,增加模块使用
|
@@ -31,23 +31,17 @@
|
|
31
31
|
|
32
32
|
## 版本更新信息
|
33
33
|
|
34
|
-
|
35
|
-
+ 功能调整: MTTS协商中,将256 Color明确写入协商回复。原先仅包含ANSI 和 TrueColor
|
34
|
+
## 0.20.2 (2024-11-18)
|
35
|
+
+ 功能调整: MTTS协商中,将256 Color明确写入协商回复。原先仅包含ANSI 和 TrueColor。推测武庙特殊颜色偶尔不正常与此有关。
|
36
36
|
+ 功能调整: 修复了纯文本正则处理,目前理论上支持所有ANSI控制代码的处置,以正确响应纯文本触发器。
|
37
37
|
+ 功能调整: 修改了#var和#global的显示实现,提高了变量打印排列的整齐度和辨识度,以适应长值变量和复杂变量。
|
38
|
-
|
39
|
-
|
40
|
-
+ 功能新增: 新增菜单选项:打开/关闭美化,以便于更好的在触发器时复制出正确的内容(以前计算可能不准确)。
|
41
|
-
+ 功能新增: 状态栏的分隔符可以通过本地设置取消了。在pymud.cfg的client中新增设置,将 status_divider 设置为 false 即可。
|
42
|
-
+ 功能调整: 在pymud.cfg的client中可以支持将buffer_lines设置为0了,表示不清除缓存。
|
43
|
-
+ 功能新增: 为状态栏显示函数增加了异常保护,再有status_maker出错的时候,状态栏会显示出错信息。
|
44
|
-
|
45
|
-
### 0.20.1 (2024-11-16)
|
38
|
+
|
39
|
+
## 0.20.1 (2024-11-16)
|
46
40
|
+ 功能调整: 会话中触发器匹配实现进行部分调整,减少循环次数以提高响应速度
|
47
41
|
+ 功能调整: #test / #show 触发器测试功能调整,现在会对使能的和未使能的触发器均进行匹配测试。其中,#show 命令仅测试,而 #test 命令会导致触发器真正响应。
|
48
42
|
+ 功能新增: pymud对象新增了一个持续运行的1s的周期定时任务。该任务中会刷新页面显示。可以使用 session.application.addTimerTickCallback 和 session.application.removeTimerTickCallback 来注册和解除定时器回调。
|
49
43
|
|
50
|
-
|
44
|
+
## 0.20.0 (2024-08-25)
|
51
45
|
+ 功能调整: 将模块主入口函数从__main__.py中移动到main.py中,以使可以在当前目录下,可直接使用pymud,也可使用python -m pymud启动
|
52
46
|
+ 功能调整: 使用argsparser标准模块来配置命令行,可以使用 pymud -h 查看命令行具体参数及说明
|
53
47
|
+ 功能新增: 命令行参数增加指定启动目录的功能,参数为 -s, --startup_dir。即可以从任意目录通过指定脚本目录方式启动PyMUD了。
|
@@ -109,21 +103,21 @@
|
|
109
103
|
+ 问题修复: 修复 #var 等命令中,若含有中文则等号位置不对齐的问题
|
110
104
|
+ 功能调整: 在 #tri 等命令中,当对象的 group 为空时,将不再显示 group 属性,减少无用信息
|
111
105
|
|
112
|
-
|
106
|
+
## 0.19.4 (2024-04-20)
|
113
107
|
+ 功能调整: info 现在 msg 恢复为可接受任何类型参数,不一定是 str
|
114
108
|
+ 功能调整: #var, #global 指令中,现在可以使用参数扩展了,例如 #var max_qi @qi
|
115
109
|
+ 功能调整: #var, #global 指令中,现在对字符串会先使用 eval 转换类型,转换失败时使用 str 类型。例如, #var myvar 1 时,myvar类型将为int
|
116
110
|
+ 功能调整: 变量替代时,会自动实现类型转化,当被替代变量值为非 str 类型时不会再报错
|
117
111
|
+ 问题修复: 修复之前从后向前选择时,无法复制的问题
|
118
112
|
|
119
|
-
|
113
|
+
## 0.19.3post2 (2024-04-05)
|
120
114
|
+ 问题修复: 一次发送多个命令时,发送顺序可能不正确的情况
|
121
115
|
+ 功能增加: 新增一个exec_async函数,是exec函数的异步形式。可以在其他会话中异步执行一段代码
|
122
116
|
+ 帮助完善: 帮助文档逻辑完善,已完成整个包的内置文档的编写和修改
|
123
117
|
+ 注: 由于我没弄太明白 readthedocs.io 网站对于读取github源代码的逻辑,目前只能通过新发布正式版本的形式来使 readthedocs.io 网站的文档中的类参考自动更新。
|
124
118
|
+ 问题修复: 修复退出程序时的小bug
|
125
119
|
|
126
|
-
|
120
|
+
## 0.19.2post2 (2024-03-24)
|
127
121
|
+ 错误修复:订正部分错别字、错误帮助、错别格式
|
128
122
|
+ 系统完善:完善帮助体系,按reST格式重写所有有关的docstring
|
129
123
|
+ 功能调整:session.exec_command / exec_command_async / exec 系列命令调整,现在可以在exec时带变量参数了。例如 session.exec("dazuo @dzpt"),直接调用 dzpt的变量值
|
@@ -137,14 +131,14 @@
|
|
137
131
|
+ 帮助完善: 帮助文档逻辑完善
|
138
132
|
+ 实现调整: 改用官方示例的task清除方式,每个任务结束后清除
|
139
133
|
|
140
|
-
|
134
|
+
## 0.19.1 (2024-03-06)
|
141
135
|
+ 功能新增: 新增鼠标启用禁用功能,以适用于ssh远程情况下的复制功能。F2快捷键可以切换状态。当鼠标禁用时,底部状态栏右侧会显示“鼠标已禁用状态”
|
142
136
|
+ 功能新增: 新增快捷键F1会直接通过浏览器打开帮助网址 https://pymud.readthedocs.io/
|
143
137
|
+ 功能新增: 新增默认快捷键F3=#ig, F4=#cls, F11=#close, F12=#exit。此几个快捷键通过配置文件进行配置,可以自行定义或修改。F1、F2为写死的系统功能。
|
144
138
|
+ 功能调整: 将除#session之外的所有其他#命令实现统一到Session类中实现,这些命令均支持通过Session.exec_command运行
|
145
139
|
+ 功能调整: python -m pymud init时,创建的pymud.cfg文件增加了keys字典
|
146
140
|
|
147
|
-
|
141
|
+
## 0.19.0 (2024-03-01)
|
148
142
|
+ 实现调整: session.info/warning/error处理多行时,会给每一行加上同样颜色
|
149
143
|
+ 功能新增: 初次运行时,可以使用python -m pymud init来初始化环境,自动创建目录并在该目录中建立配置文件和样例脚本文件
|
150
144
|
+ 实现调整: 将缓冲清除行数的实现调整到SessionBuffer中,减少代码耦合并进一步降低内存占用
|
@@ -154,7 +148,7 @@
|
|
154
148
|
+ 实现调整: 调整COPY-RAW模式复制,即使仅选中行中的部分内容,也自动识别整行(多行模式也是整个多行)
|
155
149
|
+ 功能新增: Settings中新增keys字典,用于定义快捷键。可定义快捷键参见prompt_toolkit中Keys的定义。其值为可在session.exec_command运行支持的所有内容。该字典内容可以被pymud.cfg所覆盖。
|
156
150
|
|
157
|
-
|
151
|
+
## 0.18.4post4 (2024-02-23)
|
158
152
|
+ 功能新增:新增Settings.client["buffer_lines"],表示保留的缓冲行数(默认5000)。当Session内容缓冲行数达到该值2倍时(10000行),将截取一半(5000行),后一半内容进行保留,前一半丢弃。此功能是为了减少长时挂机的内存消耗和响应时间。
|
159
153
|
+ 功能修复:解决在显示美化(Settings.client["beautify"])打开之后,复制部分文字不能正确判断起始终止的问题。
|
160
154
|
+ 功能调整:修改缓冲行数判断逻辑,加快客户端判断响应速度。
|
@@ -162,21 +156,21 @@
|
|
162
156
|
+ 功能调整:将帮助窗口中的链接改到帮助网址: https://pymud.readthedocs.org
|
163
157
|
+ 问题修复:修复了随包提供的pkuxkx.py样例脚本中的几处错误
|
164
158
|
|
165
|
-
|
159
|
+
## 0.18.3 (2024-02-07)
|
166
160
|
+ 功能调整:原#unload时通过调用__del__来实现卸载的时间不可控,现将模块卸载改为调用unload函数。若需卸载时人工清除有关定时器、触发器等,请在Configuration类下新增unload函数(参数仅self),并在其中进行实现
|
167
161
|
+ 功能新增:新增会话Variable和全局Global的删除接口。可以通过session.delVariable(name)删除一个变量,可以通过session.delGlobal(name)来删除一个全局Global变量
|
168
162
|
|
169
|
-
|
163
|
+
## 0.18.2 (2024-02-06)
|
170
164
|
+ 问题修复:修改了定时器实现,以避免出现递归调用超限异常
|
171
165
|
+ 问题修复:修改了参数替代时的默认值,从None改为字符串"None",以避免替代时报None异常
|
172
166
|
|
173
|
-
|
167
|
+
## 0.18.1 (2024-02-05)
|
174
168
|
+ 问题修复:统一处置了task.cancel的参数和create_task的name属性,以适应更低版本的python环境(低至3.7)
|
175
169
|
+ 实现调整:为解决同步/异步执行问题,在CodeLine和CodeBlock的实现中,会通过调用命令来判断是否使用同步模式(默认为异步)。#gag、#replace为强制同步,#wa为强制异步。当同时存在时,同步失效,异步执行。
|
176
170
|
+ 实现调整:将%line、%raw的访问传递到触发器内部的执行中,避免同步异步问题。
|
177
171
|
+ 新增文档:将帮助文档添加到本项目,帮助文档自动同步到 pymud.readthedocs.org (文档内容暂未更新)
|
178
172
|
|
179
|
-
|
173
|
+
## 0.18.0 (2024-01-24)
|
180
174
|
+ 问题修复:修复了delTrigger/delAlias等等无法删除对象的问题
|
181
175
|
+ 功能调整:delTrigger等函数,修改为既可以接受Trigger对象本身,也可以接受其id。其他类似
|
182
176
|
+ 功能增加:增加了delTriggers(注意,带s)等函数,可以删除多个指定对象。可接受列表、元组等可迭代对象,并且其内容既可以为对象本身,也可以为id。
|
@@ -195,13 +189,13 @@
|
|
195
189
|
+ 功能调整:从菜单里点击创建会话时,会自动以登录名为本会话创建id变量
|
196
190
|
+ 当前已知问题:由于同步/异步执行问题,在SimpleTrigger中,#gag和#replace的执行结果会很奇怪,可能会隐藏和替换掉非触发行。可行的办法为在onSuccess里,调用session.replace进行处理。
|
197
191
|
|
198
|
-
|
192
|
+
## 0.17.4 (2024-01-08)
|
199
193
|
+ 问题修复:修复了DotDict在dump时出现错误的问题
|
200
194
|
+ 问题修复:修改了reconnect的实现方式,修复了断开重连时报错的问题
|
201
195
|
+ 功能增加:为Session增加两个事件属性,分别为event_connected和event_disconnected,接受一个带有session参数的函数,在连接和连接断开时触发。
|
202
196
|
+ 功能调整:调整了时间显示格式,只显示到秒,不显示毫秒数。
|
203
197
|
|
204
|
-
|
198
|
+
## 0.17.3 (2024-01-02)
|
205
199
|
+ 问题修复:修复了原有的#repeat功能。命令行#repeat/#rep可以重复输入上一次命令(这个基本没用,主要是我在远程连接时,手机上没有方向键...)
|
206
200
|
+ 问题修复:修改定时器的实现方式,真正修复了定时器每reload后会新增一个的bug。
|
207
201
|
+ 功能增加:命令行使用#tri, #ali, #cmd, #ti时,除了接受on/off参数外,增加了del参数,可以删除对应的触发器、别名、命令、定时器。例如:#ti tm_test del 可以删除id为“tm_test”的定时器。
|
@@ -209,7 +203,7 @@
|
|
209
203
|
+ 功能调整:调整了Timer和SimpleTimer在#timer时的显示格式。
|
210
204
|
+ 实现调整:调整了Session.clean实现中各对象清理的顺序,将任务清除移到了最后。
|
211
205
|
|
212
|
-
|
206
|
+
## 0.17.2post4 (2023-12-29)
|
213
207
|
+ 功能修改:会话菜单 "显示/隐藏命令" 和 "打开/关闭自动重连" 操作后,增加在当前会话中提示状态信息。
|
214
208
|
+ 功能修改:Timer实现进行修改,以确保一个定时器仅创建一个任务。
|
215
209
|
+ 功能调整:Timer对象在复位Session对象时,也同时复位。目的是确保reload时不重新创建定时器任务。
|
@@ -218,7 +212,7 @@
|
|
218
212
|
+ 问题修复:修复会话特定脚本模块会被其他会话加载的bug。
|
219
213
|
+ 问题修复:修复定时器Timer中的bug。
|
220
214
|
|
221
|
-
|
215
|
+
## 0.17.1post1 (2023-12-27)
|
222
216
|
本版对模块功能进行了整体调整,支持加载/卸载/重载/预加载多个模块,具体内容如下:
|
223
217
|
+ 当模块中存在名为Configuration类时,以主模块形式加载,即:自动创建该Configuration类的实例(与原脚本相同)
|
224
218
|
+ 当模块中不存在名为Configuration类时,以子模块形式加载,即:仅加载该模块,但不会创建Configuration的实例
|
@@ -259,7 +253,7 @@
|
|
259
253
|
+ 功能修改:auto_reconnect设定目前对正常/异常断开均有效。若设置为True,当连接断开后15s后自动重连
|
260
254
|
+ 功能修改:会话菜单下增加“打开/关闭自动重连”子菜单,可以动态切换自动重连是否打开。
|
261
255
|
|
262
|
-
|
256
|
+
## 0.17.0 (2023-12-24)
|
263
257
|
+ 功能修改:调整修改GMCP数据的wildcards处理方式,恢复为eval,其余不变。(回滚0.16.2版更改)
|
264
258
|
+ 功能修改:将本地pymud.cfg文件的读取默认编码调整为utf8,以避免加载出现问题
|
265
259
|
+ 问题修复:sessions.py中,修复系统command与会话command重名的问题(这次才发现)
|
@@ -285,7 +279,7 @@
|
|
285
279
|
+ 功能修改:所有匹配类对象的匹配模式patterns支持动态修改,涉及Alias,Trigger,Command。修改方式为直接对其patterns属性赋值。如tri.patterns = aNewPattern
|
286
280
|
+ 功能修改:连接/断开连接时刻都会在提示中增加时刻信息,而不论是否异常。
|
287
281
|
|
288
|
-
|
282
|
+
## 0.16.2 (2023-12-19)
|
289
283
|
+ 功能修改:归一化#命令和非#命令处理,使session.exec_command、exec_command_async、exec_command_after均可以处理#命令,例如session.exec_command("#save")。同时,也可以在命令行使用#all发送#命令,如"#all #save"此类
|
290
284
|
+ 功能修改:调整脚本加载与变量自动加载的顺序。当前为连接自动加载时,首先加载变量,然后再加载脚本。目的是使脚本的变化可以覆盖加载的变量内容,而不是反向覆盖。
|
291
285
|
+ 功能修改:会话变量保存和加载可以配置是否打开,默认为打开。见Settings.client["var_autosave] 和 Settings.client["var_autoload"]。同理,该配置可以被本地pymud.cfg所覆盖
|
@@ -294,7 +288,7 @@
|
|
294
288
|
+ 功能修改:增加GMCP默认处理。当未使用GMCPTrigger对对应的GMCP消息进行处理时,默认使用[GMCP] name: value的形式输出GMCP收到的消息,以便于个人脚本调试。
|
295
289
|
+ 功能修改:修改GMCP数据的处理方式从eval修改为json.load,其余不变。
|
296
290
|
|
297
|
-
|
291
|
+
## 0.16.1.post2 (2023-12-12)
|
298
292
|
+ 问题修复:修复__init__.py中的__all__变量为字符串
|
299
293
|
+ 功能增加:可以加载自定义Settings。在执行python -m pymud时,会自动从当前目录读取pymud.cfg文件。使用json格式将配置信息写在该文件中即可。支持模块中settings.py里的sessions, client, server, styles, text字段内容。
|
300
294
|
+ 功能增加:增加全局变量集,可以使用session.setGlobal和session.getGlobal进行访问,以便于跨session通信。也可以使用#global在命令行访问
|
@@ -315,5 +309,5 @@
|
|
315
309
|
+ 功能修改:CodeLine的执行运行处理修改为不删除中间的多余空白
|
316
310
|
+ 问题修复:修改github项目地址为原pymud地址
|
317
311
|
|
318
|
-
|
319
|
-
首次发布到pip
|
312
|
+
## 0.15.8 (2023-12-05)
|
313
|
+
首次发布到pip,增加模块使用
|
@@ -40,8 +40,6 @@ from prompt_toolkit.layout.controls import (
|
|
40
40
|
)
|
41
41
|
from prompt_toolkit.layout.processors import (
|
42
42
|
Processor,
|
43
|
-
TransformationInput,
|
44
|
-
Transformation
|
45
43
|
)
|
46
44
|
from prompt_toolkit.lexers import Lexer
|
47
45
|
from prompt_toolkit.mouse_events import MouseEvent, MouseEventType
|
@@ -66,11 +64,10 @@ class MudFormatProcessor(Processor):
|
|
66
64
|
self.FULL_BLOCKS = set("▂▃▅▆▇▄█")
|
67
65
|
self.SINGLE_LINES = set("┌└├┬┼┴╭╰─")
|
68
66
|
self.DOUBLE_LINES = set("╔╚╠╦╪╩═")
|
69
|
-
self.
|
70
|
-
self.
|
67
|
+
self.START_COLOR_REGX = re.compile(r"^\[[\d;]+m")
|
68
|
+
self.COLOR_REGX = re.compile(r"\[[\d;]+m")
|
71
69
|
self._color_start = ""
|
72
70
|
self._color_correction = False
|
73
|
-
self._color_line_index = 0
|
74
71
|
|
75
72
|
def width_correction(self, line: str) -> str:
|
76
73
|
new_str = []
|
@@ -94,52 +91,48 @@ class MudFormatProcessor(Processor):
|
|
94
91
|
def tab_correction(self, line: str):
|
95
92
|
return line.replace("\t", " " * Settings.client["tabstop"])
|
96
93
|
|
94
|
+
def color_correction(self, line: str):
|
95
|
+
# 注:发现processer处理并非自上而下逐行处理的,因此不能使用这种颜色校正方式。
|
96
|
+
if self._color_correction:
|
97
|
+
other = self.COLOR_REGX.findall(line)
|
98
|
+
|
99
|
+
line = f"{self._color_start}{line}"
|
100
|
+
logging.debug(f"已校正增加颜色标志 {self._color_start}: {line}")
|
101
|
+
|
102
|
+
if other:
|
103
|
+
self._color_correction = False
|
104
|
+
self._color_start = ""
|
105
|
+
logging.debug(f"颜色校正结束: {line}")
|
106
|
+
else:
|
107
|
+
color = self.START_COLOR_REGX.findall(line)
|
108
|
+
if color:
|
109
|
+
other = self.COLOR_REGX.findall(line)
|
110
|
+
if len(other) == 1:
|
111
|
+
self._color_correction = True
|
112
|
+
self._color_start = color[0]
|
113
|
+
logging.debug(f"获取到一个颜色开头 {color[0]}: {line}")
|
114
|
+
|
115
|
+
return line
|
116
|
+
|
97
117
|
def line_correction(self, line: str):
|
98
118
|
# 处理\r符号(^M)
|
99
119
|
line = self.return_correction(line)
|
100
120
|
# 处理Tab(\r)符号(^I)
|
101
121
|
line = self.tab_correction(line)
|
102
|
-
|
122
|
+
# 处理颜色跨行问题。发现processer处理并非自上而下逐行处理的,因此不能使用这种颜色校正方式。
|
123
|
+
# line = self.color_correction(line)
|
103
124
|
# 美化(解决中文英文在Console中不对齐的问题)
|
104
125
|
if Settings.client["beautify"]:
|
105
126
|
line = self.width_correction(line)
|
106
127
|
|
107
128
|
return line
|
108
129
|
|
109
|
-
def apply_transformation(self, transformation_input
|
130
|
+
def apply_transformation(self, transformation_input):
|
110
131
|
# 准备(先还原为str)
|
111
132
|
line = fragment_list_to_text(transformation_input.fragments)
|
112
|
-
|
113
|
-
# 颜色校正
|
114
|
-
thislinecolors = len(self.AVAI_COLOR_REGX.findall(line))
|
115
|
-
if thislinecolors == 0:
|
116
|
-
lineno = transformation_input.lineno - 1
|
117
|
-
while lineno > 0:
|
118
|
-
lastline = transformation_input.document.lines[lineno]
|
119
|
-
allcolors = self.ALL_COLOR_REGX.findall(lastline)
|
120
|
-
|
121
|
-
if len(allcolors) == 0:
|
122
|
-
lineno = lineno - 1
|
123
|
-
|
124
|
-
elif len(allcolors) == 1:
|
125
|
-
colors = self.AVAI_COLOR_REGX.findall(lastline)
|
126
|
-
|
127
|
-
if len(colors) == 1:
|
128
|
-
line = f"{colors[0]}{line}"
|
129
|
-
break
|
130
|
-
|
131
|
-
else:
|
132
|
-
break
|
133
|
-
|
134
|
-
else:
|
135
|
-
break
|
136
|
-
|
137
|
-
# 其他校正
|
138
133
|
line = self.line_correction(line)
|
139
|
-
|
140
134
|
# 处理ANSI标记(生成FormmatedText)
|
141
135
|
fragments = to_formatted_text(ANSI(line))
|
142
|
-
|
143
136
|
return Transformation(fragments)
|
144
137
|
|
145
138
|
class SessionBuffer(Buffer):
|
@@ -229,8 +229,7 @@ class PyMudApp:
|
|
229
229
|
content = HSplit(
|
230
230
|
[
|
231
231
|
self.console,
|
232
|
-
|
233
|
-
#Window(char = "—", height = 1),
|
232
|
+
Window(char = "—", height = 1),
|
234
233
|
Window(content = self.statusView, height = Settings.client["status_height"]),
|
235
234
|
]
|
236
235
|
),
|
@@ -242,7 +241,7 @@ class PyMudApp:
|
|
242
241
|
content = VSplit(
|
243
242
|
[
|
244
243
|
self.console,
|
245
|
-
|
244
|
+
Window(char = "|", width = 1),
|
246
245
|
Window(content = self.statusView, width = Settings.client["status_width"]),
|
247
246
|
]
|
248
247
|
),
|
@@ -312,14 +311,12 @@ class PyMudApp:
|
|
312
311
|
MenuItem(Settings.text["closesession"], handler = self.act_close_session),
|
313
312
|
MenuItem(Settings.text["autoreconnect"], handler = self.act_autoreconnect),
|
314
313
|
MenuItem("-", disabled=True),
|
315
|
-
MenuItem(Settings.text["nosplit"], handler = self.act_nosplit),
|
316
314
|
MenuItem(Settings.text["echoinput"], handler = self.act_echoinput),
|
317
|
-
MenuItem(Settings.text["
|
315
|
+
MenuItem(Settings.text["nosplit"], handler = self.act_nosplit),
|
318
316
|
MenuItem(Settings.text["copy"], handler = self.act_copy),
|
319
317
|
MenuItem(Settings.text["copyraw"], handler = self.act_copyraw),
|
320
318
|
MenuItem(Settings.text["clearsession"], handler = self.act_clearsession),
|
321
319
|
MenuItem("-", disabled=True),
|
322
|
-
|
323
320
|
MenuItem(Settings.text["reloadconfig"], handler = self.act_reload),
|
324
321
|
]
|
325
322
|
),
|
@@ -739,13 +736,6 @@ class PyMudApp:
|
|
739
736
|
new_sess = list(self.sessions.keys())[0]
|
740
737
|
self.activate_session(new_sess)
|
741
738
|
|
742
|
-
def act_beautify(self):
|
743
|
-
"菜单: 打开/关闭美化显示"
|
744
|
-
val = not Settings.client["beautify"]
|
745
|
-
Settings.client["beautify"] = val
|
746
|
-
if self.current_session:
|
747
|
-
self.current_session.info(f"显示美化已{'打开' if val else '关闭'}!")
|
748
|
-
|
749
739
|
def act_echoinput(self):
|
750
740
|
"菜单: 显示/隐藏输入指令"
|
751
741
|
val = not Settings.client["echo_input"]
|
@@ -892,10 +882,7 @@ class PyMudApp:
|
|
892
882
|
|
893
883
|
def get_statusbar_right_text(self):
|
894
884
|
"状态栏右侧内容"
|
895
|
-
con_str, mouse_support, tri_status
|
896
|
-
if not Settings.client["beautify"]:
|
897
|
-
beautify = "美化已关闭 "
|
898
|
-
|
885
|
+
con_str, mouse_support, tri_status = "", "", ""
|
899
886
|
if not self._mouse_support:
|
900
887
|
mouse_support = "鼠标已禁用 "
|
901
888
|
|
@@ -925,17 +912,13 @@ class PyMudApp:
|
|
925
912
|
else:
|
926
913
|
con_str = "已连接:{:.0f}秒".format(sec)
|
927
914
|
|
928
|
-
return "{}{}{}
|
915
|
+
return "{}{}{} {} {} ".format(mouse_support, tri_status, con_str, Settings.__appname__, Settings.__version__)
|
929
916
|
|
930
917
|
def get_statuswindow_text(self):
|
931
918
|
"状态窗口: status_maker 的内容"
|
932
919
|
text = ""
|
933
|
-
|
934
|
-
|
935
|
-
if self.current_session:
|
936
|
-
text = self.current_session.get_status()
|
937
|
-
except Exception as e:
|
938
|
-
text = f"{e}"
|
920
|
+
if self.current_session:
|
921
|
+
text = self.current_session.get_status()
|
939
922
|
|
940
923
|
return text
|
941
924
|
|
@@ -3010,18 +3010,14 @@ class Session:
|
|
3010
3010
|
triggered_enabled += 1
|
3011
3011
|
if not block:
|
3012
3012
|
triggered += 1
|
3013
|
-
|
3014
|
-
|
3015
|
-
info_enabled.append(f" {tri.__detailed__()} 正常触发。")
|
3016
|
-
info_enabled.append(f" 捕获:{state.wildcards}")
|
3013
|
+
info_enabled.append(f" {Settings.INFO_STYLE}{tri.__detailed__()} 正常触发。{Settings.CLR_STYLE}")
|
3014
|
+
info_enabled.append(f" {Settings.INFO_STYLE}捕获:{state.wildcards}{Settings.CLR_STYLE}")
|
3017
3015
|
|
3018
3016
|
if not tri.keepEval: # 非持续匹配的trigger,匹配成功后停止检测后续Trigger
|
3019
|
-
info_enabled.append(f"
|
3020
|
-
#info_enabled.append(f" 该触发器未开启keepEval, 会阻止后续触发器。")
|
3017
|
+
info_enabled.append(f" {Settings.WARN_STYLE}该触发器未开启keepEval, 会阻止后续触发器。{Settings.CLR_STYLE}")
|
3021
3018
|
block = True
|
3022
3019
|
else:
|
3023
|
-
info_enabled.append(f"
|
3024
|
-
#info_enabled.append(f" {tri.__detailed__()} 可以触发,但由于优先级与keepEval设定,触发器不会触发。")
|
3020
|
+
info_enabled.append(f" {Settings.WARN_STYLE}{tri.__detailed__()} 可以触发,但由于优先级与keepEval设定,触发器不会触发。{Settings.CLR_STYLE}")
|
3025
3021
|
|
3026
3022
|
|
3027
3023
|
for tri in tris_disabled:
|
@@ -3032,38 +3028,35 @@ class Session:
|
|
3032
3028
|
|
3033
3029
|
if state.result == Trigger.SUCCESS:
|
3034
3030
|
triggered_disabled += 1
|
3035
|
-
|
3036
|
-
info_disabled.append(f" {tri.__detailed__()} 可以匹配触发。")
|
3031
|
+
info_disabled.append(f" {Settings.INFO_STYLE}{tri.__detailed__()} 可以匹配触发。{Settings.CLR_STYLE}")
|
3037
3032
|
|
3038
3033
|
if triggered_enabled + triggered_disabled == 0:
|
3039
3034
|
info_all.append("")
|
3040
3035
|
|
3041
3036
|
if triggered_enabled == 0:
|
3042
|
-
info_enabled.insert(0, f"
|
3037
|
+
info_enabled.insert(0, f"使能的触发器中,没有可以触发的。")
|
3043
3038
|
elif triggered < triggered_enabled:
|
3044
|
-
info_enabled.insert(0, f"
|
3039
|
+
info_enabled.insert(0, f"使能的触发器中,共有 {triggered_enabled} 个可以触发,实际触发 {triggered} 个,另有 {triggered_enabled - triggered} 个由于 keepEval 原因实际不会触发。")
|
3045
3040
|
else:
|
3046
|
-
info_enabled.insert(0, f"
|
3041
|
+
info_enabled.insert(0, f"使能的触发器中,共有 {triggered_enabled} 个全部可以被正常触发。")
|
3047
3042
|
|
3048
3043
|
if triggered_disabled > 0:
|
3049
|
-
info_disabled.insert(0, f"
|
3044
|
+
info_disabled.insert(0, f"未使能的触发器中,共有 {triggered_disabled} 个可以匹配。")
|
3050
3045
|
else:
|
3051
|
-
info_disabled.insert(0, f"
|
3052
|
-
|
3053
|
-
info_all.append("")
|
3046
|
+
info_disabled.insert(0, f"未使能触发器,没有可以匹配的。")
|
3047
|
+
|
3054
3048
|
if triggered_enabled + triggered_disabled == 0:
|
3055
|
-
|
3049
|
+
info_all.append(f"PYMUD 触发器测试: {'响应模式' if docallback else '测试模式'}")
|
3056
3050
|
info_all.append(f" 测试内容: {line}")
|
3057
3051
|
info_all.append(f" 测试结果: 没有可以匹配的触发器。")
|
3058
3052
|
else:
|
3059
|
-
|
3053
|
+
info_all.append(f"PYMUD 触发器测试: {'响应模式' if docallback else '测试模式'}")
|
3060
3054
|
info_all.append(f" 测试内容: {line}")
|
3061
3055
|
info_all.append(f" 测试结果: 有{triggered}个触发器可以被正常触发,一共有{triggered_enabled + triggered_disabled}个满足匹配触发要求。")
|
3062
3056
|
info_all.extend(info_enabled)
|
3063
3057
|
info_all.extend(info_disabled)
|
3064
|
-
|
3065
|
-
|
3066
|
-
self.info("\n".join(info_all), title)
|
3058
|
+
|
3059
|
+
self.info("\n".join(info_all), "PYMUD 触发器测试")
|
3067
3060
|
#self.info("PYMUD 触发器测试 完毕")
|
3068
3061
|
|
3069
3062
|
def handle_plugins(self, code: CodeLine = None, *args, **kwargs):
|
@@ -3187,7 +3180,7 @@ class Session:
|
|
3187
3180
|
'''
|
3188
3181
|
|
3189
3182
|
new_text, new_code = code.expand(self, *args, **kwargs)
|
3190
|
-
self.warning(new_text[
|
3183
|
+
self.warning(new_text[6:])
|
3191
3184
|
|
3192
3185
|
def handle_error(self, code: CodeLine = None, *args, **kwargs):
|
3193
3186
|
'''
|
@@ -3203,23 +3196,23 @@ class Session:
|
|
3203
3196
|
'''
|
3204
3197
|
|
3205
3198
|
new_text, new_code = code.expand(self, *args, **kwargs)
|
3206
|
-
self.error(new_text[
|
3199
|
+
self.error(new_text[6:])
|
3207
3200
|
|
3208
|
-
def info2(self, msg, title = "
|
3201
|
+
def info2(self, msg, title = "PYMUD INFO", style = Settings.INFO_STYLE):
|
3209
3202
|
msg = f"{msg}"
|
3210
3203
|
|
3211
|
-
|
3212
|
-
|
3213
|
-
|
3214
|
-
|
3215
|
-
|
3204
|
+
if Settings.client["newline"] in msg:
|
3205
|
+
new_lines = list()
|
3206
|
+
msg_lines = msg.split(Settings.client["newline"])
|
3207
|
+
for line in msg_lines:
|
3208
|
+
new_lines.append("{}{}".format(style, line))
|
3216
3209
|
|
3217
|
-
|
3210
|
+
msg = Settings.client["newline"].join(new_lines)
|
3218
3211
|
|
3219
3212
|
# 将颜色跨行显示移动到了MudFormatProcessor中,此处无需再处理(不行,还得恢复)
|
3220
|
-
self.writetobuffer("{}
|
3213
|
+
self.writetobuffer("{}[{}] {}{}".format(style, title, msg, Settings.CLR_STYLE), newline = True)
|
3221
3214
|
|
3222
|
-
def info(self, msg, title = "
|
3215
|
+
def info(self, msg, title = "PYMUD INFO", style = Settings.INFO_STYLE):
|
3223
3216
|
"""
|
3224
3217
|
使用默认的INFO_STYLE(绿色)输出信息,并自动换行。信息格式类似 [title] msg
|
3225
3218
|
|
@@ -3229,7 +3222,7 @@ class Session:
|
|
3229
3222
|
"""
|
3230
3223
|
self.info2(msg, title, style)
|
3231
3224
|
|
3232
|
-
def warning(self, msg, title = "
|
3225
|
+
def warning(self, msg, title = "PYMUD WARNING", style = Settings.WARN_STYLE):
|
3233
3226
|
"""
|
3234
3227
|
使用默认的WARN_STYLE(黄色)输出信息,并自动换行。信息格式类似 [title] msg
|
3235
3228
|
|
@@ -3239,7 +3232,7 @@ class Session:
|
|
3239
3232
|
"""
|
3240
3233
|
self.info2(msg, title, style)
|
3241
3234
|
|
3242
|
-
def error(self, msg, title = "
|
3235
|
+
def error(self, msg, title = "PYMUD ERROR", style = Settings.ERR_STYLE):
|
3243
3236
|
"""
|
3244
3237
|
使用默认的ERR_STYLE(红色)输出信息,并自动换行。信息格式类似 [title] msg
|
3245
3238
|
|
@@ -13,7 +13,7 @@ class Settings:
|
|
13
13
|
"APP 简要描述"
|
14
14
|
__version__ = "0.20.2"
|
15
15
|
"APP 当前版本"
|
16
|
-
__release__ = "2024-11-
|
16
|
+
__release__ = "2024-11-18"
|
17
17
|
"APP 当前版本发布日期"
|
18
18
|
__author__ = "本牛(newstart)@北侠"
|
19
19
|
"APP 作者"
|
@@ -69,7 +69,6 @@ class Settings:
|
|
69
69
|
"echo_input" : False,
|
70
70
|
"beautify" : True, # 专门为解决控制台下PKUXKX字符画对不齐的问题
|
71
71
|
|
72
|
-
"status_divider" : True, # 是否显示状态栏的分隔线
|
73
72
|
"status_display" : 1, # 状态窗口显示情况设置,0-不显示,1-显示在下方,2-显示在右侧
|
74
73
|
"status_width" : 30, # 右侧状态栏的宽度
|
75
74
|
"status_height" : 6, # 下侧状态栏的高度
|
@@ -85,7 +84,6 @@ class Settings:
|
|
85
84
|
"session" : "会话",
|
86
85
|
"connect" : "连接/重新连接",
|
87
86
|
"disconnect" : "断开连接",
|
88
|
-
"beautify" : "打开/关闭美化显示",
|
89
87
|
"echoinput" : "显示/隐藏输入指令",
|
90
88
|
"nosplit" : "取消分屏",
|
91
89
|
"copy" : "复制(纯文本)",
|
@@ -176,8 +174,8 @@ class Settings:
|
|
176
174
|
"value" : "fg:green",
|
177
175
|
}
|
178
176
|
|
179
|
-
INFO_STYLE = "\x1b[
|
180
|
-
WARN_STYLE = "\x1b[
|
181
|
-
ERR_STYLE = "\x1b[
|
177
|
+
INFO_STYLE = "\x1b[32m" #"\x1b[38;2;0;128;255m"
|
178
|
+
WARN_STYLE = "\x1b[33m"
|
179
|
+
ERR_STYLE = "\x1b[31m"
|
182
180
|
CLR_STYLE = "\x1b[0m"
|
183
181
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: pymud
|
3
|
-
Version: 0.20.
|
3
|
+
Version: 0.20.2a2
|
4
4
|
Summary: a MUD Client written in Python
|
5
5
|
Author-email: "newstart@pkuxkx" <crapex@hotmail.com>
|
6
6
|
Maintainer-email: "newstart@pkuxkx" <crapex@hotmail.com>
|
@@ -737,23 +737,17 @@ Requires-Dist: prompt-toolkit
|
|
737
737
|
|
738
738
|
## 版本更新信息
|
739
739
|
|
740
|
-
|
741
|
-
+ 功能调整: MTTS协商中,将256 Color明确写入协商回复。原先仅包含ANSI 和 TrueColor
|
740
|
+
## 0.20.2 (2024-11-18)
|
741
|
+
+ 功能调整: MTTS协商中,将256 Color明确写入协商回复。原先仅包含ANSI 和 TrueColor。推测武庙特殊颜色偶尔不正常与此有关。
|
742
742
|
+ 功能调整: 修复了纯文本正则处理,目前理论上支持所有ANSI控制代码的处置,以正确响应纯文本触发器。
|
743
743
|
+ 功能调整: 修改了#var和#global的显示实现,提高了变量打印排列的整齐度和辨识度,以适应长值变量和复杂变量。
|
744
|
-
+ 问题修复: 修复了单行颜色代码跨行无法显示问题。现在星宿毒草可以正常辨认颜色了。
|
745
|
-
+ 功能调整: 调整了info/warning/error的显示处理,默认样式进行了修改。
|
746
|
-
+ 功能新增: 新增菜单选项:打开/关闭美化,以便于更好的在触发器时复制出正确的内容(以前计算可能不准确)。
|
747
|
-
+ 功能新增: 状态栏的分隔符可以通过本地设置取消了。在pymud.cfg的client中新增设置,将 status_divider 设置为 false 即可。
|
748
|
-
+ 功能调整: 在pymud.cfg的client中可以支持将buffer_lines设置为0了,表示不清除缓存。
|
749
|
-
+ 功能新增: 为状态栏显示函数增加了异常保护,再有status_maker出错的时候,状态栏会显示出错信息。
|
750
744
|
|
751
|
-
|
745
|
+
## 0.20.1 (2024-11-16)
|
752
746
|
+ 功能调整: 会话中触发器匹配实现进行部分调整,减少循环次数以提高响应速度
|
753
747
|
+ 功能调整: #test / #show 触发器测试功能调整,现在会对使能的和未使能的触发器均进行匹配测试。其中,#show 命令仅测试,而 #test 命令会导致触发器真正响应。
|
754
748
|
+ 功能新增: pymud对象新增了一个持续运行的1s的周期定时任务。该任务中会刷新页面显示。可以使用 session.application.addTimerTickCallback 和 session.application.removeTimerTickCallback 来注册和解除定时器回调。
|
755
749
|
|
756
|
-
|
750
|
+
## 0.20.0 (2024-08-25)
|
757
751
|
+ 功能调整: 将模块主入口函数从__main__.py中移动到main.py中,以使可以在当前目录下,可直接使用pymud,也可使用python -m pymud启动
|
758
752
|
+ 功能调整: 使用argsparser标准模块来配置命令行,可以使用 pymud -h 查看命令行具体参数及说明
|
759
753
|
+ 功能新增: 命令行参数增加指定启动目录的功能,参数为 -s, --startup_dir。即可以从任意目录通过指定脚本目录方式启动PyMUD了。
|
@@ -815,21 +809,21 @@ Requires-Dist: prompt-toolkit
|
|
815
809
|
+ 问题修复: 修复 #var 等命令中,若含有中文则等号位置不对齐的问题
|
816
810
|
+ 功能调整: 在 #tri 等命令中,当对象的 group 为空时,将不再显示 group 属性,减少无用信息
|
817
811
|
|
818
|
-
|
812
|
+
## 0.19.4 (2024-04-20)
|
819
813
|
+ 功能调整: info 现在 msg 恢复为可接受任何类型参数,不一定是 str
|
820
814
|
+ 功能调整: #var, #global 指令中,现在可以使用参数扩展了,例如 #var max_qi @qi
|
821
815
|
+ 功能调整: #var, #global 指令中,现在对字符串会先使用 eval 转换类型,转换失败时使用 str 类型。例如, #var myvar 1 时,myvar类型将为int
|
822
816
|
+ 功能调整: 变量替代时,会自动实现类型转化,当被替代变量值为非 str 类型时不会再报错
|
823
817
|
+ 问题修复: 修复之前从后向前选择时,无法复制的问题
|
824
818
|
|
825
|
-
|
819
|
+
## 0.19.3post2 (2024-04-05)
|
826
820
|
+ 问题修复: 一次发送多个命令时,发送顺序可能不正确的情况
|
827
821
|
+ 功能增加: 新增一个exec_async函数,是exec函数的异步形式。可以在其他会话中异步执行一段代码
|
828
822
|
+ 帮助完善: 帮助文档逻辑完善,已完成整个包的内置文档的编写和修改
|
829
823
|
+ 注: 由于我没弄太明白 readthedocs.io 网站对于读取github源代码的逻辑,目前只能通过新发布正式版本的形式来使 readthedocs.io 网站的文档中的类参考自动更新。
|
830
824
|
+ 问题修复: 修复退出程序时的小bug
|
831
825
|
|
832
|
-
|
826
|
+
## 0.19.2post2 (2024-03-24)
|
833
827
|
+ 错误修复:订正部分错别字、错误帮助、错别格式
|
834
828
|
+ 系统完善:完善帮助体系,按reST格式重写所有有关的docstring
|
835
829
|
+ 功能调整:session.exec_command / exec_command_async / exec 系列命令调整,现在可以在exec时带变量参数了。例如 session.exec("dazuo @dzpt"),直接调用 dzpt的变量值
|
@@ -843,14 +837,14 @@ Requires-Dist: prompt-toolkit
|
|
843
837
|
+ 帮助完善: 帮助文档逻辑完善
|
844
838
|
+ 实现调整: 改用官方示例的task清除方式,每个任务结束后清除
|
845
839
|
|
846
|
-
|
840
|
+
## 0.19.1 (2024-03-06)
|
847
841
|
+ 功能新增: 新增鼠标启用禁用功能,以适用于ssh远程情况下的复制功能。F2快捷键可以切换状态。当鼠标禁用时,底部状态栏右侧会显示“鼠标已禁用状态”
|
848
842
|
+ 功能新增: 新增快捷键F1会直接通过浏览器打开帮助网址 https://pymud.readthedocs.io/
|
849
843
|
+ 功能新增: 新增默认快捷键F3=#ig, F4=#cls, F11=#close, F12=#exit。此几个快捷键通过配置文件进行配置,可以自行定义或修改。F1、F2为写死的系统功能。
|
850
844
|
+ 功能调整: 将除#session之外的所有其他#命令实现统一到Session类中实现,这些命令均支持通过Session.exec_command运行
|
851
845
|
+ 功能调整: python -m pymud init时,创建的pymud.cfg文件增加了keys字典
|
852
846
|
|
853
|
-
|
847
|
+
## 0.19.0 (2024-03-01)
|
854
848
|
+ 实现调整: session.info/warning/error处理多行时,会给每一行加上同样颜色
|
855
849
|
+ 功能新增: 初次运行时,可以使用python -m pymud init来初始化环境,自动创建目录并在该目录中建立配置文件和样例脚本文件
|
856
850
|
+ 实现调整: 将缓冲清除行数的实现调整到SessionBuffer中,减少代码耦合并进一步降低内存占用
|
@@ -860,7 +854,7 @@ Requires-Dist: prompt-toolkit
|
|
860
854
|
+ 实现调整: 调整COPY-RAW模式复制,即使仅选中行中的部分内容,也自动识别整行(多行模式也是整个多行)
|
861
855
|
+ 功能新增: Settings中新增keys字典,用于定义快捷键。可定义快捷键参见prompt_toolkit中Keys的定义。其值为可在session.exec_command运行支持的所有内容。该字典内容可以被pymud.cfg所覆盖。
|
862
856
|
|
863
|
-
|
857
|
+
## 0.18.4post4 (2024-02-23)
|
864
858
|
+ 功能新增:新增Settings.client["buffer_lines"],表示保留的缓冲行数(默认5000)。当Session内容缓冲行数达到该值2倍时(10000行),将截取一半(5000行),后一半内容进行保留,前一半丢弃。此功能是为了减少长时挂机的内存消耗和响应时间。
|
865
859
|
+ 功能修复:解决在显示美化(Settings.client["beautify"])打开之后,复制部分文字不能正确判断起始终止的问题。
|
866
860
|
+ 功能调整:修改缓冲行数判断逻辑,加快客户端判断响应速度。
|
@@ -868,21 +862,21 @@ Requires-Dist: prompt-toolkit
|
|
868
862
|
+ 功能调整:将帮助窗口中的链接改到帮助网址: https://pymud.readthedocs.org
|
869
863
|
+ 问题修复:修复了随包提供的pkuxkx.py样例脚本中的几处错误
|
870
864
|
|
871
|
-
|
865
|
+
## 0.18.3 (2024-02-07)
|
872
866
|
+ 功能调整:原#unload时通过调用__del__来实现卸载的时间不可控,现将模块卸载改为调用unload函数。若需卸载时人工清除有关定时器、触发器等,请在Configuration类下新增unload函数(参数仅self),并在其中进行实现
|
873
867
|
+ 功能新增:新增会话Variable和全局Global的删除接口。可以通过session.delVariable(name)删除一个变量,可以通过session.delGlobal(name)来删除一个全局Global变量
|
874
868
|
|
875
|
-
|
869
|
+
## 0.18.2 (2024-02-06)
|
876
870
|
+ 问题修复:修改了定时器实现,以避免出现递归调用超限异常
|
877
871
|
+ 问题修复:修改了参数替代时的默认值,从None改为字符串"None",以避免替代时报None异常
|
878
872
|
|
879
|
-
|
873
|
+
## 0.18.1 (2024-02-05)
|
880
874
|
+ 问题修复:统一处置了task.cancel的参数和create_task的name属性,以适应更低版本的python环境(低至3.7)
|
881
875
|
+ 实现调整:为解决同步/异步执行问题,在CodeLine和CodeBlock的实现中,会通过调用命令来判断是否使用同步模式(默认为异步)。#gag、#replace为强制同步,#wa为强制异步。当同时存在时,同步失效,异步执行。
|
882
876
|
+ 实现调整:将%line、%raw的访问传递到触发器内部的执行中,避免同步异步问题。
|
883
877
|
+ 新增文档:将帮助文档添加到本项目,帮助文档自动同步到 pymud.readthedocs.org (文档内容暂未更新)
|
884
878
|
|
885
|
-
|
879
|
+
## 0.18.0 (2024-01-24)
|
886
880
|
+ 问题修复:修复了delTrigger/delAlias等等无法删除对象的问题
|
887
881
|
+ 功能调整:delTrigger等函数,修改为既可以接受Trigger对象本身,也可以接受其id。其他类似
|
888
882
|
+ 功能增加:增加了delTriggers(注意,带s)等函数,可以删除多个指定对象。可接受列表、元组等可迭代对象,并且其内容既可以为对象本身,也可以为id。
|
@@ -901,13 +895,13 @@ Requires-Dist: prompt-toolkit
|
|
901
895
|
+ 功能调整:从菜单里点击创建会话时,会自动以登录名为本会话创建id变量
|
902
896
|
+ 当前已知问题:由于同步/异步执行问题,在SimpleTrigger中,#gag和#replace的执行结果会很奇怪,可能会隐藏和替换掉非触发行。可行的办法为在onSuccess里,调用session.replace进行处理。
|
903
897
|
|
904
|
-
|
898
|
+
## 0.17.4 (2024-01-08)
|
905
899
|
+ 问题修复:修复了DotDict在dump时出现错误的问题
|
906
900
|
+ 问题修复:修改了reconnect的实现方式,修复了断开重连时报错的问题
|
907
901
|
+ 功能增加:为Session增加两个事件属性,分别为event_connected和event_disconnected,接受一个带有session参数的函数,在连接和连接断开时触发。
|
908
902
|
+ 功能调整:调整了时间显示格式,只显示到秒,不显示毫秒数。
|
909
903
|
|
910
|
-
|
904
|
+
## 0.17.3 (2024-01-02)
|
911
905
|
+ 问题修复:修复了原有的#repeat功能。命令行#repeat/#rep可以重复输入上一次命令(这个基本没用,主要是我在远程连接时,手机上没有方向键...)
|
912
906
|
+ 问题修复:修改定时器的实现方式,真正修复了定时器每reload后会新增一个的bug。
|
913
907
|
+ 功能增加:命令行使用#tri, #ali, #cmd, #ti时,除了接受on/off参数外,增加了del参数,可以删除对应的触发器、别名、命令、定时器。例如:#ti tm_test del 可以删除id为“tm_test”的定时器。
|
@@ -915,7 +909,7 @@ Requires-Dist: prompt-toolkit
|
|
915
909
|
+ 功能调整:调整了Timer和SimpleTimer在#timer时的显示格式。
|
916
910
|
+ 实现调整:调整了Session.clean实现中各对象清理的顺序,将任务清除移到了最后。
|
917
911
|
|
918
|
-
|
912
|
+
## 0.17.2post4 (2023-12-29)
|
919
913
|
+ 功能修改:会话菜单 "显示/隐藏命令" 和 "打开/关闭自动重连" 操作后,增加在当前会话中提示状态信息。
|
920
914
|
+ 功能修改:Timer实现进行修改,以确保一个定时器仅创建一个任务。
|
921
915
|
+ 功能调整:Timer对象在复位Session对象时,也同时复位。目的是确保reload时不重新创建定时器任务。
|
@@ -924,7 +918,7 @@ Requires-Dist: prompt-toolkit
|
|
924
918
|
+ 问题修复:修复会话特定脚本模块会被其他会话加载的bug。
|
925
919
|
+ 问题修复:修复定时器Timer中的bug。
|
926
920
|
|
927
|
-
|
921
|
+
## 0.17.1post1 (2023-12-27)
|
928
922
|
本版对模块功能进行了整体调整,支持加载/卸载/重载/预加载多个模块,具体内容如下:
|
929
923
|
+ 当模块中存在名为Configuration类时,以主模块形式加载,即:自动创建该Configuration类的实例(与原脚本相同)
|
930
924
|
+ 当模块中不存在名为Configuration类时,以子模块形式加载,即:仅加载该模块,但不会创建Configuration的实例
|
@@ -965,7 +959,7 @@ Requires-Dist: prompt-toolkit
|
|
965
959
|
+ 功能修改:auto_reconnect设定目前对正常/异常断开均有效。若设置为True,当连接断开后15s后自动重连
|
966
960
|
+ 功能修改:会话菜单下增加“打开/关闭自动重连”子菜单,可以动态切换自动重连是否打开。
|
967
961
|
|
968
|
-
|
962
|
+
## 0.17.0 (2023-12-24)
|
969
963
|
+ 功能修改:调整修改GMCP数据的wildcards处理方式,恢复为eval,其余不变。(回滚0.16.2版更改)
|
970
964
|
+ 功能修改:将本地pymud.cfg文件的读取默认编码调整为utf8,以避免加载出现问题
|
971
965
|
+ 问题修复:sessions.py中,修复系统command与会话command重名的问题(这次才发现)
|
@@ -991,7 +985,7 @@ Requires-Dist: prompt-toolkit
|
|
991
985
|
+ 功能修改:所有匹配类对象的匹配模式patterns支持动态修改,涉及Alias,Trigger,Command。修改方式为直接对其patterns属性赋值。如tri.patterns = aNewPattern
|
992
986
|
+ 功能修改:连接/断开连接时刻都会在提示中增加时刻信息,而不论是否异常。
|
993
987
|
|
994
|
-
|
988
|
+
## 0.16.2 (2023-12-19)
|
995
989
|
+ 功能修改:归一化#命令和非#命令处理,使session.exec_command、exec_command_async、exec_command_after均可以处理#命令,例如session.exec_command("#save")。同时,也可以在命令行使用#all发送#命令,如"#all #save"此类
|
996
990
|
+ 功能修改:调整脚本加载与变量自动加载的顺序。当前为连接自动加载时,首先加载变量,然后再加载脚本。目的是使脚本的变化可以覆盖加载的变量内容,而不是反向覆盖。
|
997
991
|
+ 功能修改:会话变量保存和加载可以配置是否打开,默认为打开。见Settings.client["var_autosave] 和 Settings.client["var_autoload"]。同理,该配置可以被本地pymud.cfg所覆盖
|
@@ -1000,7 +994,7 @@ Requires-Dist: prompt-toolkit
|
|
1000
994
|
+ 功能修改:增加GMCP默认处理。当未使用GMCPTrigger对对应的GMCP消息进行处理时,默认使用[GMCP] name: value的形式输出GMCP收到的消息,以便于个人脚本调试。
|
1001
995
|
+ 功能修改:修改GMCP数据的处理方式从eval修改为json.load,其余不变。
|
1002
996
|
|
1003
|
-
|
997
|
+
## 0.16.1.post2 (2023-12-12)
|
1004
998
|
+ 问题修复:修复__init__.py中的__all__变量为字符串
|
1005
999
|
+ 功能增加:可以加载自定义Settings。在执行python -m pymud时,会自动从当前目录读取pymud.cfg文件。使用json格式将配置信息写在该文件中即可。支持模块中settings.py里的sessions, client, server, styles, text字段内容。
|
1006
1000
|
+ 功能增加:增加全局变量集,可以使用session.setGlobal和session.getGlobal进行访问,以便于跨session通信。也可以使用#global在命令行访问
|
@@ -1021,5 +1015,5 @@ Requires-Dist: prompt-toolkit
|
|
1021
1015
|
+ 功能修改:CodeLine的执行运行处理修改为不删除中间的多余空白
|
1022
1016
|
+ 问题修复:修改github项目地址为原pymud地址
|
1023
1017
|
|
1024
|
-
|
1025
|
-
首次发布到pip
|
1018
|
+
## 0.15.8 (2023-12-05)
|
1019
|
+
首次发布到pip,增加模块使用
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|