pymud 0.21.5__py3-none-any.whl → 0.21.5.post1__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 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.SINGLE_LINES_LEFT:
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 ((idx == len(line) - 1) or (right_len == 0)) and (ch in self.TABLE_LINES):
769
- new_str.append(" ")
770
- new_str.append(ch)
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,12 @@ class Session:
810
810
  else:
811
811
  if Settings.client["echo_input"]:
812
812
  self.writetobuffer(f"\x1b[32m{line}\x1b[0m", True)
813
- elif len(line) == 0:
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
+ self.buffer.forceNewline()
819
819
  self.record_command(line)
820
820
  cmd = line + self.newline
821
821
  self.write(cmd.encode(self.encoding, Settings.server["encoding_errors"]))
pymud/settings.py CHANGED
@@ -15,7 +15,7 @@ class Settings:
15
15
  "APP 简要描述"
16
16
  __version__ = importlib.metadata.version("pymud")
17
17
  "APP 当前版本"
18
- __release__ = "2025-06-09"
18
+ __release__ = "2025-06-10"
19
19
  "APP 当前版本发布日期"
20
20
  __author__ = "本牛(newstart)@北侠"
21
21
  "APP 作者"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pymud
3
- Version: 0.21.5
3
+ Version: 0.21.5.post1
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.5 (2025-06-09)
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=iadkEIIiRoFjRX8ezMxK3Dud6wuVf14ZbluXC0hfmuU,38284
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=K1tTKlkE6y3oZDsP2t6iN5XNMQ1R_QE2um1JgI8THRg,53381
14
- pymud/session.py,sha256=_ReMajT7uhTmyOppnUd9VScSFe6Hbl_smEaOD_hXJxc,154851
15
- pymud/settings.py,sha256=YE-RWG-TRD92gIXsVrwY0VOCvjudl-68naFcgOfCJ7I,7697
13
+ pymud/pymud.py,sha256=9BxK51tzvaOGpSqawlGI57TOtWbaccSlK9mNNHdvyGI,53486
14
+ pymud/session.py,sha256=uJI2zm3rT3UxF0Pyt-e_daW4RkqCUR6OnkXneUVZ0tg,154790
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=YawLwvGN7CGEHNvmX5VGL3ADyDDiTHyze67MW-ySDXM,47052
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.post1.dist-info/licenses/LICENSE.txt,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
19
+ pymud-0.21.5.post1.dist-info/METADATA,sha256=yq8JnaorcCg5zk3cdQ6wsj04P-xucYWV-bI-rDbaAI8,47057
20
+ pymud-0.21.5.post1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
21
+ pymud-0.21.5.post1.dist-info/entry_points.txt,sha256=diPUOtTkhgC1hVny7Cdg4aRhaHSynMQoraE7ZhJxUcw,37
22
+ pymud-0.21.5.post1.dist-info/top_level.txt,sha256=8Gp1eXjxixXjqhhti6tLCspV_8s9sNV3z5Em2_KRhD4,6
23
+ pymud-0.21.5.post1.dist-info/RECORD,,