"""文本处理模块 - 处理文本换行和格式化"""
from typing import List


class TextParser:
    """文本解析器"""
    
    def __init__(self, max_length: int = 2000):
        """
        初始化文本解析器
        
        Args:
            max_length: 最大文本长度，超过将被截断
        """
        self.max_length = max_length
    
    def parse(self, text: str) -> str:
        """
        解析文本，将 # 转换为换行符
        
        Args:
            text: 原始文本，使用 # 表示换行
            
        Returns:
            处理后的文本
        """
        if not text:
            return ""
        
        # 截断超长文本
        if len(text) > self.max_length:
            text = text[:self.max_length]
            text += "...（文本过长已截断）"
        
        # 将 # 替换为换行符
        parsed_text = text.replace("#", "\n")
        
        return parsed_text
    
    def parse_to_lines(self, text: str) -> List[str]:
        """
        解析文本并返回行列表
        
        Args:
            text: 原始文本
            
        Returns:
            文本行列表
        """
        parsed_text = self.parse(text)
        return parsed_text.split("\n")
    
    def validate_text(self, text: str) -> bool:
        """
        验证文本是否有效
        
        Args:
            text: 待验证的文本
            
        Returns:
            是否有效
        """
        if not text or not isinstance(text, str):
            return False
        
        if len(text.strip()) == 0:
            return False
        
        return True
