o
    wMi                     @  s4   d Z ddlmZ ddlmZ ddd	ZdddZdS )u^   群聊 OneBot 11 message 段扁平化为可读文本（供统计、话题划分等复用）。    )annotations)contextgroup_idintreturnboolc                 C  s   t | trt|  S t | tsdS | D ];}t |tsq|ddkr$q|dp*i }|dd}t |tr=| r= dS |durOt |tsOt| rO dS qdS )u   是否存在用户输入的纯文本段（非空 strip）。

    纯图片、仅转发、仅 @、仅表情等无 ``type=='text'`` 且有效正文的，返回 False，
    不参与话题划分 / 向量计算（避免用占位符串做 embedding）。
    Ftypetextdata TN)
isinstancestrr   striplistdictget)messager   segr
   raw r   4/home/dore/onebot/Bot_Ero/core/group_message_text.pygroup_message_has_user_text   s"   


r   r   c              
   C  s  t | tr	|  S t | tsdS g }| D ]}t |tsq|d}|dp'i }|dkr8|t|dd q|dkrB|d q|dkrV|dd}|d	| d
 q|dkr`|d q|dkrd}|d}|durzt|t	|}	|	dur|	j
}W n ttfy   Y nw |s|d}
t |
tr|
 }n
|
durt|
 }|d| d
 q|dkr|d q|dv r|d q|dv r|d| d
 q|r|d| d
 qd| S )uO   将 OneBot 11 message 数组转为可读文本（非文本段用占位符）。r   r   r
   r	   imageu   [图片]atqqz[@]faceu   [表情]replyidNz[reply: forwardu   [转发消息])jsonxmlu   [卡片消息])recordvideovoice[)r   r   r   r   r   r   appendr   lookup_qq_msgr   content	TypeError
ValueErrorjoin)r   r   partsr   seg_typer
   r   
reply_textridreftr   r   r   flatten_group_message_content    s`   







r2   N)r   r   r   r   )r   r   r   r   )__doc__
__future__r   corer   r   r2   r   r   r   r   <module>   s
    
