pymud 0.21.5__py3-none-any.whl → 0.21.5.post2__py3-none-any.whl
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/extras.py +22 -10
- pymud/pymud.py +6 -2
- pymud/session.py +5 -3
- pymud/settings.py +1 -1
- {pymud-0.21.5.dist-info → pymud-0.21.5.post2.dist-info}/METADATA +4 -4
- {pymud-0.21.5.dist-info → pymud-0.21.5.post2.dist-info}/RECORD +10 -10
- {pymud-0.21.5.dist-info → pymud-0.21.5.post2.dist-info}/WHEEL +0 -0
- {pymud-0.21.5.dist-info → pymud-0.21.5.post2.dist-info}/entry_points.txt +0 -0
- {pymud-0.21.5.dist-info → pymud-0.21.5.post2.dist-info}/licenses/LICENSE.txt +0 -0
- {pymud-0.21.5.dist-info → pymud-0.21.5.post2.dist-info}/top_level.txt +0 -0
pymud/extras.py
CHANGED
@@ -715,12 +715,14 @@ class PyMudBufferControl(UIControl):
|
|
715
715
|
self.buffer = buffer
|
716
716
|
|
717
717
|
# 为MUD显示进行校正的处理,包括对齐校正,换行颜色校正等
|
718
|
-
self.FULL_BLOCKS = set("
|
719
|
-
self.TABLE_LINES = set("
|
718
|
+
self.FULL_BLOCKS = set("▂▃▅▆▇▄█")
|
719
|
+
self.TABLE_LINES = set("┃││║┃")
|
720
720
|
self.SINGLE_LINES = set("┠┌└├┬┼┴╭╰─")
|
721
721
|
self.SINGLE_LINES_LEFT = set("┨┘┐┤╮╯")
|
722
722
|
self.DOUBLE_LINES = set("╔╚╠╦╪╩═")
|
723
723
|
self.DOUBLE_LINES_LEFT = set("╗╝╣")
|
724
|
+
self.THICK_LINES = set("┏┗━")
|
725
|
+
self.THICK_LINES_LEFT = set("┓┛ ")
|
724
726
|
self.ALL_COLOR_REGX = re.compile(r"(?:\[[\d;]+m)+")
|
725
727
|
self.AVAI_COLOR_REGX = re.compile(r"(?:\[[\d;]+m)+(?!$)")
|
726
728
|
self._color_start = ""
|
@@ -756,18 +758,28 @@ class PyMudBufferControl(UIControl):
|
|
756
758
|
elif ch in self.DOUBLE_LINES:
|
757
759
|
new_str.append(ch)
|
758
760
|
new_str.append("═")
|
759
|
-
elif ch in self.
|
760
|
-
new_str.append("─")
|
761
|
-
new_str.append(ch)
|
762
|
-
elif ch in self.DOUBLE_LINES_LEFT:
|
763
|
-
new_str.append("═")
|
761
|
+
elif ch in self.THICK_LINES:
|
764
762
|
new_str.append(ch)
|
763
|
+
new_str.append("━")
|
765
764
|
else:
|
766
765
|
right = str.rstrip(line[idx+1:])
|
767
766
|
right_len = fragment_list_width(to_formatted_text(ANSI(right)))
|
768
|
-
if (
|
769
|
-
|
770
|
-
|
767
|
+
if (idx == len(line) - 1) or (right_len == 0):
|
768
|
+
if ch in self.SINGLE_LINES_LEFT:
|
769
|
+
new_str.append("─")
|
770
|
+
new_str.append(ch)
|
771
|
+
elif ch in self.DOUBLE_LINES_LEFT:
|
772
|
+
new_str.append("═")
|
773
|
+
new_str.append(ch)
|
774
|
+
elif ch in self.THICK_LINES_LEFT:
|
775
|
+
new_str.append("━")
|
776
|
+
new_str.append(ch)
|
777
|
+
elif ch in self.TABLE_LINES:
|
778
|
+
new_str.append(" ")
|
779
|
+
new_str.append(ch)
|
780
|
+
else:
|
781
|
+
new_str.append(ch)
|
782
|
+
new_str.append(' ')
|
771
783
|
else:
|
772
784
|
new_str.append(ch)
|
773
785
|
new_str.append(' ')
|
pymud/pymud.py
CHANGED
@@ -672,7 +672,7 @@ class PyMudApp:
|
|
672
672
|
dlgQuery = QueryDialog(HTML(f'<b fg="red">{Settings.gettext("warning")}</b>'), HTML(f'<style fg="red">{Settings.gettext("session_close_prompt", self.current_session.name)}</style>'))
|
673
673
|
result = await self.show_dialog_as_float(dlgQuery)
|
674
674
|
if result:
|
675
|
-
self.current_session.disconnect()
|
675
|
+
self.current_session.disconnect()
|
676
676
|
|
677
677
|
# 增加延时等待确保会话关闭
|
678
678
|
wait_time = 0
|
@@ -696,13 +696,17 @@ class PyMudApp:
|
|
696
696
|
self.current_session = None
|
697
697
|
#self.consoleView.buffer = SessionBuffer()
|
698
698
|
self.consoleView.buffer = None
|
699
|
-
self.sessions.pop(name)
|
699
|
+
closesession = self.sessions.pop(name)
|
700
|
+
del closesession
|
700
701
|
#self.set_status(f"会话 {name} 已关闭")
|
701
702
|
if len(self.sessions.keys()) > 0:
|
702
703
|
new_sess = list(self.sessions.keys())[0]
|
703
704
|
self.activate_session(new_sess)
|
704
705
|
#self.set_status(f"当前会话已切换为 {self.current_session.name}")
|
705
706
|
|
707
|
+
import gc
|
708
|
+
gc.collect()
|
709
|
+
|
706
710
|
asyncio.ensure_future(coroutine()) # type: ignore
|
707
711
|
|
708
712
|
# 菜单选项操作 - 开始
|
pymud/session.py
CHANGED
@@ -810,12 +810,14 @@ class Session:
|
|
810
810
|
else:
|
811
811
|
if Settings.client["echo_input"]:
|
812
812
|
self.writetobuffer(f"\x1b[32m{line}\x1b[0m", True)
|
813
|
-
|
814
|
-
# 当向服务器仅送出空行时,本地强制后续显示换行
|
815
|
-
self.buffer.forceNewline()
|
813
|
+
|
816
814
|
else:
|
817
815
|
self.log.log(f"\x1b[32m{line}\x1b[0m\n")
|
818
816
|
|
817
|
+
# 当输入空行命令后,本地强制新行
|
818
|
+
if len(line) == 0:
|
819
|
+
self.buffer.forceNewline()
|
820
|
+
|
819
821
|
self.record_command(line)
|
820
822
|
cmd = line + self.newline
|
821
823
|
self.write(cmd.encode(self.encoding, Settings.server["encoding_errors"]))
|
pymud/settings.py
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: pymud
|
3
|
-
Version: 0.21.5
|
3
|
+
Version: 0.21.5.post2
|
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>
|
@@ -66,10 +66,10 @@ Dynamic: license-file
|
|
66
66
|
|
67
67
|
## 版本更新信息
|
68
68
|
|
69
|
-
### 0.21.
|
69
|
+
### 0.21.5post1 (2025-06-10)
|
70
70
|
|
71
|
-
+ 功能完善:
|
72
|
-
+ 功能完善:
|
71
|
+
+ 功能完善: 完善了美化功能,已知情况下,基本不会出现断行和不对齐问题了。
|
72
|
+
+ 功能完善: 在向服务器送出命令后,本地显示也强制换行。在出现『未完待续』情况时,回车后不会再跟在后面显示了,而是会强制从下一行开始。
|
73
73
|
+ 功能完善: 当对行进行双击选择时,背景增加的选择标记(灰色)会按照实际显示的宽度进行匹配,而不是按照原始数据的宽度进行匹配。
|
74
74
|
|
75
75
|
### 0.21.4 (2025-06-08)
|
@@ -2,7 +2,7 @@ pymud/__init__.py,sha256=oeHz0NM7_DwChCY8f_vQ_fBq0e_HoTd0cahCFwaavWE,806
|
|
2
2
|
pymud/__main__.py,sha256=lIOBiJmi8X-EWXVIx_OoxSgUZ0FYKlZI8hXVnLUYTJQ,61
|
3
3
|
pymud/decorators.py,sha256=rNuDaKk65Cwc9K6t0-BpqNUORs8-8X5Xsv6YaLQ7hc4,9839
|
4
4
|
pymud/dialogs.py,sha256=1xo5NJjch-u7RSRcclhvUE4gi8POgiZWK84lNx_HJbs,6891
|
5
|
-
pymud/extras.py,sha256=
|
5
|
+
pymud/extras.py,sha256=ehwEe48ObvypUTt6SVbGsI2C-3-Mn0J8mGZOMM-ighk,38779
|
6
6
|
pymud/i18n.py,sha256=qLgvrmYhVfkTHKpbBR-LfYMOrGgi0skHrelbsj7ItbE,3034
|
7
7
|
pymud/logger.py,sha256=F2LBUogdzv2WXHo10CNorDh2VleAX1Wbwmxc3zznHlM,5823
|
8
8
|
pymud/main.py,sha256=zaSjNhpbX3FMulKg-UNFrdiIJO8sOmmrUQrkPOalB-4,10224
|
@@ -10,14 +10,14 @@ pymud/modules.py,sha256=CsOqY1c59CrejltCS4wf7QqdCr5k_ghel8AUqlKVGIw,11873
|
|
10
10
|
pymud/objects.py,sha256=NlKAQnV6v9lSkz94zmgb513HPxskY8-tXnOdrYhuktc,38629
|
11
11
|
pymud/pkuxkx.py,sha256=qDVry-Vd6MNui0NKWZFT52IpmP1sKS5Dz74EDY4tVGQ,14740
|
12
12
|
pymud/protocol.py,sha256=noptJs6K0L9qM8VZIeP65H4k9FPLGJqxvm3qY2iAwvI,48315
|
13
|
-
pymud/pymud.py,sha256=
|
14
|
-
pymud/session.py,sha256=
|
15
|
-
pymud/settings.py,sha256=
|
13
|
+
pymud/pymud.py,sha256=9BxK51tzvaOGpSqawlGI57TOtWbaccSlK9mNNHdvyGI,53486
|
14
|
+
pymud/session.py,sha256=fpnomPbkG5v2yhpUgGElo8mbtLN5rEcpeqmqf1H-pcU,154826
|
15
|
+
pymud/settings.py,sha256=tWNRQAA-QnDUcXk-Vr3B9Bfi-JpSlroHC1UJ_PY2p8A,7697
|
16
16
|
pymud/lang/i18n_chs.py,sha256=2cyaHHLwpYEBBwuQXyRTxa1opX53fTv1f8_QDQeGlC0,16836
|
17
17
|
pymud/lang/i18n_eng.py,sha256=jcPz6Y5UuxJBQLY_e8UnEF3GYTlnAD44C14Oj7sK-QI,45935
|
18
|
-
pymud-0.21.5.dist-info/licenses/LICENSE.txt,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
19
|
-
pymud-0.21.5.dist-info/METADATA,sha256=
|
20
|
-
pymud-0.21.5.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
21
|
-
pymud-0.21.5.dist-info/entry_points.txt,sha256=diPUOtTkhgC1hVny7Cdg4aRhaHSynMQoraE7ZhJxUcw,37
|
22
|
-
pymud-0.21.5.dist-info/top_level.txt,sha256=8Gp1eXjxixXjqhhti6tLCspV_8s9sNV3z5Em2_KRhD4,6
|
23
|
-
pymud-0.21.5.dist-info/RECORD,,
|
18
|
+
pymud-0.21.5.post2.dist-info/licenses/LICENSE.txt,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
19
|
+
pymud-0.21.5.post2.dist-info/METADATA,sha256=VgkMx-OO3Jw_WqWmoSc3lItk8ZVjVlP-ijskPSdsqwQ,47057
|
20
|
+
pymud-0.21.5.post2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
21
|
+
pymud-0.21.5.post2.dist-info/entry_points.txt,sha256=diPUOtTkhgC1hVny7Cdg4aRhaHSynMQoraE7ZhJxUcw,37
|
22
|
+
pymud-0.21.5.post2.dist-info/top_level.txt,sha256=8Gp1eXjxixXjqhhti6tLCspV_8s9sNV3z5Em2_KRhD4,6
|
23
|
+
pymud-0.21.5.post2.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|