Files
ai-chat-system/services/__pycache__/matrix_service.cpython-310.pyc

67 lines
9.0 KiB
Plaintext
Raw Normal View History

o
{<7B>i<EFBFBD>8<00>@s<>dZddlZddlZddlZddlmZmZddlmZm Z m
Z
ddl m Z m Z mZmZmZddlmZddlmZe<02>e<16>ZdZd ZGd
d <0B>d <0B>Ze<1A>ZdS) uH
Matrix Bot 服务 - 使用 nio 库处理消息收发(支持加密)
<EFBFBD>N)<02>Optional<61>Callable)<03> AsyncClient<6E>RoomMessageText<78> MegolmEvent)<05> SessionLocal<61>User<65> Conversation<6F>Message<67> SystemConfig)<01>ConversationService)<01>
ai_service<EFBFBD> main_userz?/home/xian/.openclaw/workspace-coder/works/ai-chat/matrix_storec@sfeZdZdd<02>Zdd<04>Zddefdd<08>Zd d
<EFBFBD>Zd d <0C>Zd d<0E>Z dd<10>Z
de de fdd<14>Z dd<16>Z dS)<18> MatrixBotcCs6d|_d|_d|_d|_d|_d|_d|_t<07>|_dS)N<>F) <09>client<6E>
homeserver<EFBFBD>user_id<69>password<72>
is_running<EFBFBD>on_message_callback<63> last_room_id<69>set<65>processed_events<74><01>self<6C>r<00>M/home/xian/.openclaw/workspace-coder/works/ai-chat/services/matrix_service.py<70>__init__s zMatrixBot.__init__c<00>s<><00>t<00>}zedd<02>|<01>t<02><01><03>D<00>}|<02>dd<04>|_|<02>dd<06>|_|<02>dd<08>|_t<08> d |j<05>d
|j<06><00><04>|jr\|jrct
j t d d <0C>t |j|jt d <0A>|_d |_t<08> dt <0C><00><02>W|<01><10>d SW|<01><10>dSW|<01><10>dS|<01><10>w)u从数据库配置初始化cSsi|]}|j|j<01>qSr)<02>key<65>value)<02>.0<EFBFBD>crrr<00>
<dictcomp>#sz.MatrixBot.init_from_config.<locals>.<dictcomp><3E>matrix_homeserverzhttp://matrix.tphai.com<6F>matrix_usernamez@tester:matrix.tphai.com<6F>matrix_passwordz tester12345@!uMatrix配置: homeserver=z, user=T)<01>exist_ok)<01>
store_pathu1Matrix nio 客户端已初始化,存储路径: F)r<00>queryr <00>all<6C>getrrr<00>logger<65>info<66>os<6F>makedirs<72>
STORE_PATHrrr<00>close)r<00>db<64>configsrrr<00>init_from_configs4<02> <08> <02><02>
<EFBFBD>zMatrixBot.init_from_configN<67>message_handlerc
<00>s <00>|jr|jst<02>d<01>dS||_zN|j<01>|j<06>IdH}t<02>d|<02><00><02>t<02>d<04>|jjdd<06>IdH}t<02>d|j <09><00><02>|j<01>
|j t <0C>|j<01>
|j t<0E>t<02>d<08>t<0F>|<00><11><00>t<02>d <09>WdSty<>}zt<02>d
|<04><00><02>d dl}t<02>|<05><15><00>WYd}~dSd}~ww) u开始同步消息uMatrix未连接NuMatrix登录成功: u加载加密存储...T)<01>
full_stateu初始同步完成: next_batch=uMatrix消息回调已注册u'Matrix nio sync_forever 任务已启动uMatrix启动失败: r)rrr,<00>warningr<00>loginrr-<00>sync<6E>
next_batch<EFBFBD>add_event_callback<63>_handle_nio_messager<00>_handle_encrypted_messager<00>asyncio<69> create_task<73>_run_sync_forever<65> Exception<6F>error<6F> traceback<63>
format_exc)rr5<00>
login_resp<EFBFBD> sync_resp<73>erCrrr<00>
start_sync;s,<02> 


<08><02>zMatrixBot.start_syncc
<00>sz<00>zt<00>d<01>|jjdd<03>IdHWdSty<}zt<00>d|<01><00><02>ddl}t<00>|<02><07><00>d|_WYd}~dSd}~ww)u.运行 sync_forever自动处理所有事件u开始 Matrix sync_forever...i0u)<01>timeoutNusync_forever 错误: rF) r,r-r<00> sync_foreverrArBrCrDr)rrGrCrrrr@^s<02>
<08><02>zMatrixBot._run_sync_foreverc
<00>s8<00>t<00>d|j<02>d|j<03><00><04>t<00>d|j<04><00><02>z<>d}|j}|jrst<00>d|j<04><00><02>z/|<02>|j<04>}|rWt<00>dt|<05><01><00><02>t|d<07>rW|j }t|d<08>rL|jn|j}t<00>d |<03><00><02>Wnt
yr}zt<00> d
|<06><00><02>WYd}~nd}~ww|s<>t|d <0B>r<>|j r<>|j <0C> d i<00>}d|vr<>|<07> dd <0A>}|j <0C> d|j<05>}t<00>d|r<>|dd<0F>nd<10><00><02>|s<>t|d<07>r<>|j r<>|j }t<00>d|dd<0F><00><00><02>|r<>t<00>d|<04>d|dd<0F><00><00><04>|<00>||||j<03>IdHWdSt<00> d|j<03><00><02>t<00> d|j<04>d<16><03>WdSt
<EFBFBD>y}zt<00>d|<06><00><02>ddl}t<00>|<08><11><00>WYd}~dSd}~ww)u#处理加密消息MegolmEventu收到加密消息: [z ] event_id=zevent.decrypted: Nu消息已解密: u解密事件类型: <20>body<64>senderu从 decrypted 获取: uparse_decrypted_event 失败: <20>source<63>contentru从source.content获取: <20>2<00>emptyu从event.body获取: u解密成功: sender=z, body=u#加密消息无法解密: event_id=zevent.decrypted=u, 需要密钥u处理加密消息失败: r)r,r-<00>room_id<69>event_id<69> decryptedrL<00>parse_decrypted_event<6E>type<70>hasattrrKrAr7rMr+<00>_process_messagerBrCrD) r<00>room<6F>eventrKrL<00>decrypted_eventrGrNrCrrrr=jsR<02> 
<04><08><02>  <08><02>z#MatrixBot._handle_encrypted_messagec<00>sj<00>|j}||jkrt<02>d|<03><00><02>dS|j<04><05>}t<02>d|j<07>d|<03>d|<04><00><06>|<00>||||j <09>IdHdS)u,处理 nio 收到的消息普通文本<E69CAC>忽略自己发送的消息: NuMatrix收到文本消息: [z] z: )
rLrr,<00>debugrK<00>stripr-rQrWrR)rrXrYrL<00> message_textrrrr<<00>s<02>

zMatrixBot._handle_nio_messagec
<00>s\<00>||jvrt<01>d|<04><00><02>dS|j<00>|<04>t<01>d|<04><00><02>t|j<00>dkr1tt|j<00>dd<02><00>|_||jkr@t<01>d|<02><00><02>dS|j |_
t <0B>}z<>z<EFBFBD>t |<05>}|j tddd <09>}|d
kr<>|<06>|j<10>}|<00>|j d <0B>IdHt<01>d |j<12><00><02>|jr<>|jd |j|j d<0E>IdHWW|<05><14>dS|<06>|j<10>} | s<>|<06>|j<10>}n| d}|j|jd|d||j |d<12>d<13>}
|jr<>|jd|j||j |
j|d<15>IdH|jr<>|jd|j|j d<0E>IdHWnHt<17>y} z;t<01>d| <0B><00><02>ddl} t<01>| <0C><1A><00>|<00>|j dt| <0B><01><00><02>IdHz|jj|j dd<1A>IdHWnYWYd} ~ n d} ~ wwW|<05><14>dSW|<05><14>dS|<05><14>w)u处理消息的核心逻辑u忽略已处理的事件: Nu处理消息: event_id=<3D>di<><69><EFBFBD><EFBFBD>r[u 主用户<E794A8>web)<02> display_name<6D> user_typez/newu✅ 已创建新会话uMatrix创建新会话: <20>new_conversation)<03>action<6F>conversation_idrQr<00>user<65>matrix)rRrQrL)re<00>rolerNrM<00>
extra_data<EFBFBD> user_message)rdrerjrQ<00>
message_idrL<00>generate_ai_responseu处理Matrix消息失败: u处理消息时出错: F)<01> typing_state)rr,r\<00>addr-<00>lenr<00>listrrQrrr <00>get_or_create_user<65> MAIN_USER_ID<49>create_conversation<6F>id<69> send_messagererr1<00>get_user_conversations<6E> add_messagerArBrCrD<00>strr<00> room_typing) rrXrLr^rRr2<00> conv_servicer<00> conversation<6F> conversations<6E>user_msgrGrCrrrrW<00>s<><02>
 
<06>  <0C> 3 <0C><04><06>  <0C>
 <0C><04><14><02><02>
<02>zMatrixBot._process_messagerQ<00>messagec<00>s<><00>|js t<01>d<01>dSz|j<00>|dd|d<05><02>IdHt<01>d|<01><00><02>WdSt<05>yp}<00>z>t|<03>}d |vs;d
|v<00>rVt<01>d |<03><00><02>zF|jj<08> <09>D]!\}}|<06> <09>D]\}}|j
sjt<01>d |<05>d |<07><00><04>|j<00> |<08>qRqJ|j<00>|dd|d<05><02>IdHt<01>d|<01><00><02>WWYd}~dSt<05>yU} z<>t<01>d| <09><00><02>z<>ddl }
|
<EFBFBD> <0A>4IdH<00>p} dtt<0F><10><00><11>d<00><01><00>} | j|j<13>d|<01>d| <0C><00>dd|jj<14><00>id|d<05>d<17>IdH} | jdkr<>t<01>d|<01><00><02> Wd<00>IdHWWYd} ~ WYd}~dSt<01>d| j<15><00><02> Wd<00>IdHWWYd} ~ WYd}~dS1IdH<00>swYWn&t<05>yJ}zt<01>d|<0E><00><02>WYd}~WYd} ~ WYd}~dSd}~wwWYd} ~ nd} ~ wwt<01>d|<03><00><02>WYd}~dSWYd}~dSd}~ww)u发送消息到Matrix房间uMatrix客户端未初始化Fzm.room.messagezm.text)<02>msgtyperKNuMatrix消息发送成功: Tz not verified<65>OlmUnverifiedDeviceErroru/设备未验证,尝试验证设备后发送: u验证设备: <20> u/Matrix消息发送成功验证设备后: u 验证设备后发送仍失败: r<00>mi<6D>z/_matrix/client/v3/rooms/z/send/m.room.message/<2F> AuthorizationzBearer )<02>headers<72>json<6F><6E>u$Matrix消息通过HTTP发送成功: uHTTP发送失败: u发送Matrix消息错误: )rr,rB<00> room_sendr-rArxr7<00> device_store<72>items<6D>verified<65> verify_device<63>httpxr<00>intr><00>get_event_loop<6F>time<6D>putr<00> access_token<65> status_code)rrQr~rG<00> error_strr<00>devices<65> device_id<69>device<63>e2r<32><00> http_client<6E>txn_id<69>resp<73>e3rrrrus<><02>
<04>
<EFBFBD> <02><02><04>
<EFBFBD> <0C>
,<2C> H<> "<08><02> <0C><08><02><0E><08><02>zMatrixBot.send_messagec<00>s&<00>d|_|jr|j<01><02>IdHdSdS)u 断开连接FN)rrr1rrrr<00>
disconnectSs
<02><04>zMatrixBot.disconnect)N)<0E>__name__<5F>
__module__<EFBFBD> __qualname__rr4rrHr@r=r<rWrxrur<>rrrrrs
# 4d Br)<1C>__doc__r><00>loggingr.<00>typingrr<00>niorrr<00>modelsrrr r
r <00>services.conversation_servicer <00>servicesr <00> getLoggerr<72>r,rrr0r<00>
matrix_botrrrr<00><module>s   

I