vibego 0.2.35__py3-none-any.whl → 0.2.36__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.
- bot.py +20 -42
- {vibego-0.2.35.dist-info → vibego-0.2.36.dist-info}/METADATA +1 -1
- {vibego-0.2.35.dist-info → vibego-0.2.36.dist-info}/RECORD +7 -7
- vibego_cli/__init__.py +1 -1
- {vibego-0.2.35.dist-info → vibego-0.2.36.dist-info}/WHEEL +0 -0
- {vibego-0.2.35.dist-info → vibego-0.2.36.dist-info}/entry_points.txt +0 -0
- {vibego-0.2.35.dist-info → vibego-0.2.36.dist-info}/top_level.txt +0 -0
bot.py
CHANGED
|
@@ -534,68 +534,46 @@ def _unescape_markdown_v2(text: str) -> str:
|
|
|
534
534
|
return re.sub(r"\\([_*\[\]()~`>#+=|{}.!:-])", r"\1", text)
|
|
535
535
|
|
|
536
536
|
|
|
537
|
-
def
|
|
538
|
-
"""
|
|
539
|
-
|
|
540
|
-
改进的分段处理策略:
|
|
541
|
-
1. 先识别已转义的代码块(\`\`\`...\`\`\` 和 \`...\`)
|
|
542
|
-
2. 对这些代码块先反转义边界反引号,变成正常代码块
|
|
543
|
-
3. 然后用正常的 CODE_SEGMENT_RE 识别代码块
|
|
544
|
-
4. 只对非代码块的普通文本进行反转义
|
|
545
|
-
5. 代码块内容保持转义状态(因为是代码本身)
|
|
546
|
-
6. 重新组合所有段落
|
|
547
|
-
|
|
548
|
-
Args:
|
|
549
|
-
text: 待处理的文本
|
|
550
|
-
|
|
551
|
-
Returns:
|
|
552
|
-
处理后的文本(如未检测到预转义,返回原文本)
|
|
553
|
-
"""
|
|
537
|
+
def _force_unescape_markdown(text: str) -> str:
|
|
538
|
+
"""强制移除 MarkdownV2 转义,同时保护代码块语法不被破坏。"""
|
|
554
539
|
if not text:
|
|
555
540
|
return text
|
|
556
541
|
|
|
557
|
-
# 快速检测:如果没有任何转义字符,直接返回
|
|
558
|
-
if not _is_already_escaped(text):
|
|
559
|
-
return text
|
|
560
|
-
|
|
561
|
-
# 第一步:处理已转义的代码块,将边界反引号反转义
|
|
562
|
-
# 这样后续可以用正常的 CODE_SEGMENT_RE 识别它们
|
|
563
542
|
processed = text
|
|
564
|
-
|
|
565
|
-
# 先标记所有已转义的代码块,用占位符替换
|
|
566
543
|
code_blocks: list[str] = []
|
|
567
544
|
|
|
568
545
|
def _preserve_code_block(match: re.Match[str]) -> str:
|
|
569
|
-
"""
|
|
546
|
+
"""临时替换代码块,防止内部字符被错误反转义。"""
|
|
570
547
|
block = match.group(0)
|
|
571
|
-
# 代码块边界的反引号需要反转义,但内容保持不变
|
|
572
|
-
# 例如:\`\`\`bash\npython -m vibego\_cli\`\`\`
|
|
573
|
-
# -> ```bash\npython -m vibego\_cli```
|
|
574
548
|
if block.startswith(r"\`\`\`"):
|
|
575
|
-
#
|
|
576
|
-
unescaped_block = block.replace(r"\`", "`", 6)
|
|
549
|
+
# 多行代码块保留内容,只修复边界反引号
|
|
550
|
+
unescaped_block = block.replace(r"\`", "`", 6)
|
|
577
551
|
else:
|
|
578
|
-
#
|
|
579
|
-
unescaped_block = block.replace(r"\`", "`", 2)
|
|
552
|
+
# 单行代码块同理处理首尾反引号
|
|
553
|
+
unescaped_block = block.replace(r"\`", "`", 2)
|
|
580
554
|
|
|
581
555
|
placeholder = f"__CODE_BLOCK_{len(code_blocks)}__"
|
|
582
556
|
code_blocks.append(unescaped_block)
|
|
583
557
|
return placeholder
|
|
584
558
|
|
|
585
559
|
processed = _ESCAPED_CODE_BLOCK_PATTERN.sub(_preserve_code_block, processed)
|
|
560
|
+
processed = _unescape_markdown_v2(processed)
|
|
586
561
|
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
processed = _unescape_markdown_v2(processed)
|
|
590
|
-
|
|
591
|
-
# 第三步:恢复代码块
|
|
592
|
-
for i, block in enumerate(code_blocks):
|
|
593
|
-
placeholder = f"__CODE_BLOCK_{i}__"
|
|
594
|
-
processed = processed.replace(placeholder, block)
|
|
562
|
+
for index, block in enumerate(code_blocks):
|
|
563
|
+
processed = processed.replace(f"__CODE_BLOCK_{index}__", block)
|
|
595
564
|
|
|
596
565
|
return processed
|
|
597
566
|
|
|
598
567
|
|
|
568
|
+
def _unescape_if_already_escaped(text: str) -> str:
|
|
569
|
+
"""智能检测并清理预转义文本,必要时触发强制反转义。"""
|
|
570
|
+
if not text:
|
|
571
|
+
return text
|
|
572
|
+
if not _is_already_escaped(text):
|
|
573
|
+
return text
|
|
574
|
+
return _force_unescape_markdown(text)
|
|
575
|
+
|
|
576
|
+
|
|
599
577
|
def _prepare_model_payload(text: str) -> str:
|
|
600
578
|
if _IS_MARKDOWN_V2:
|
|
601
579
|
cleaned = _unescape_if_already_escaped(text)
|
|
@@ -695,7 +673,7 @@ async def _send_with_markdown_guard(
|
|
|
695
673
|
raise
|
|
696
674
|
|
|
697
675
|
# Markdown 彻底失败时退回纯文本发送,需要先清理 MarkdownV2 转义符号
|
|
698
|
-
fallback_payload =
|
|
676
|
+
fallback_payload = _force_unescape_markdown(text)
|
|
699
677
|
if fallback_payload != text:
|
|
700
678
|
worker_log.debug(
|
|
701
679
|
"Markdown 降级为纯文本发送,已移除转义符号",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
bot.py,sha256=
|
|
1
|
+
bot.py,sha256=jVPxYu3rUCFmypgJzgc8iy97zOXidhvCnlZNwFtkxv4,270454
|
|
2
2
|
logging_setup.py,sha256=gvxHi8mUwK3IhXJrsGNTDo-DR6ngkyav1X-tvlBF_IE,4613
|
|
3
3
|
master.py,sha256=ZW4A3Gh0MUKFnfZX-VJ7OCNnBzlEcOWkPKYH92OfyKA,112967
|
|
4
4
|
project_repository.py,sha256=UcthtSGOJK0cTE5bQCneo3xkomRG-kyc1N1QVqxeHIs,17577
|
|
@@ -427,14 +427,14 @@ tasks/fsm.py,sha256=rKXXLEieQQU4r2z_CZUvn1_70FXiZXBBugF40gpe_tQ,1476
|
|
|
427
427
|
tasks/models.py,sha256=N_qqRBo9xMSV0vbn4k6bLBXT8C_dp_oTFUxvdx16ZQM,2459
|
|
428
428
|
tasks/service.py,sha256=w_S_aWiVqRXzXEpimLDsuCCCX2lB5uDkff9aKThBw9c,41916
|
|
429
429
|
telegram_markdown/__init__.py,sha256=bG3H9fWn5GfTqC6xvd49xbVdYWfSFeaX2nefweOYcWY,9757
|
|
430
|
-
vibego_cli/__init__.py,sha256=
|
|
430
|
+
vibego_cli/__init__.py,sha256=p-CPmV5XSaL8LOoFcrAi-ds8pvLeygAon4JKakgK7MY,311
|
|
431
431
|
vibego_cli/__main__.py,sha256=qqTrYmRRLe4361fMzbI3-CqpZ7AhTofIHmfp4ykrrBY,158
|
|
432
432
|
vibego_cli/config.py,sha256=VxkPJMq01tA3h3cOkH-z_tiP7pMgfSGGicRvUnCWkhI,3054
|
|
433
433
|
vibego_cli/deps.py,sha256=1nRXI7Dd-S1hYE8DligzK5fIluQWETRUj4_OKL0DikQ,1419
|
|
434
434
|
vibego_cli/main.py,sha256=X__NXwZnIDIFbdKSTbNyZgZHKcPlN0DQz9sqTI1aQ9E,12158
|
|
435
435
|
vibego_cli/data/worker_requirements.txt,sha256=QSt30DSSSHtfucTFPpc7twk9kLS5rVLNTcvDiagxrZg,62
|
|
436
|
-
vibego-0.2.
|
|
437
|
-
vibego-0.2.
|
|
438
|
-
vibego-0.2.
|
|
439
|
-
vibego-0.2.
|
|
440
|
-
vibego-0.2.
|
|
436
|
+
vibego-0.2.36.dist-info/METADATA,sha256=MP9mOr2c7s7mckhdVFBeVeHx0MQH0VKuZqRPSFUoshE,10519
|
|
437
|
+
vibego-0.2.36.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
438
|
+
vibego-0.2.36.dist-info/entry_points.txt,sha256=Lsy_zm-dlyxt8-9DL9blBReIwU2k22c8-kifr46ND1M,48
|
|
439
|
+
vibego-0.2.36.dist-info/top_level.txt,sha256=rWDj9KERtbJL6Lar9Xa0O6dthaFSY_jc1WNpQgUrXCM,87
|
|
440
|
+
vibego-0.2.36.dist-info/RECORD,,
|
vibego_cli/__init__.py
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|