mirror of
				https://github.com/nonebot/nonebot2.git
				synced 2025-10-31 06:56:39 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			46 lines
		
	
	
		
			959 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			959 B
		
	
	
	
		
			Python
		
	
	
	
	
	
| from typing import Optional
 | |
| 
 | |
| from nonebot.utils import logger_wrapper
 | |
| 
 | |
| log = logger_wrapper("CQHTTP")
 | |
| 
 | |
| 
 | |
| def escape(s: str, *, escape_comma: bool = True) -> str:
 | |
|     """
 | |
|     :说明:
 | |
| 
 | |
|       对字符串进行 CQ 码转义。
 | |
| 
 | |
|     :参数:
 | |
| 
 | |
|       * ``s: str``: 需要转义的字符串
 | |
|       * ``escape_comma: bool``: 是否转义逗号(``,``)。
 | |
|     """
 | |
|     s = s.replace("&", "&") \
 | |
|         .replace("[", "[") \
 | |
|         .replace("]", "]")
 | |
|     if escape_comma:
 | |
|         s = s.replace(",", ",")
 | |
|     return s
 | |
| 
 | |
| 
 | |
| def unescape(s: str) -> str:
 | |
|     """
 | |
|     :说明:
 | |
| 
 | |
|       对字符串进行 CQ 码去转义。
 | |
| 
 | |
|     :参数:
 | |
| 
 | |
|       * ``s: str``: 需要转义的字符串
 | |
|     """
 | |
|     return s.replace(",", ",") \
 | |
|         .replace("[", "[") \
 | |
|         .replace("]", "]") \
 | |
|         .replace("&", "&")
 | |
| 
 | |
| 
 | |
| def _b2s(b: Optional[bool]) -> Optional[str]:
 | |
|     """转换布尔值为字符串。"""
 | |
|     return b if b is None else str(b).lower()
 |