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

67 lines
9.0 KiB
Plaintext
Raw Normal View History

o
2026-04-12 00:47:48 +08:00
{Úi—8ã@dZddlZddlZddlZddlmZmZddlmZm Z m
Z
ddl m Z m
Z
2026-04-11 21:39:04 +08:00
mZmZmZddlmZddlmZe e¡ZdZd ZGd
d d ƒZeƒZdS) uH
Matrix Bot æœåŠ¡ - 使用 nio åº“å¤„ç†æ¶ˆæ¯æ”¶å‘(支æŒåŠ å¯†ï¼‰
éN)ÚOptionalÚCallable)Ú AsyncClientÚRoomMessageTextÚ MegolmEvent)Ú SessionLocalÚUserÚ ConversationÚMessageÚ SystemConfig)ÚConversationService)Ú
ai_serviceÚ main_userz?/home/xian/.openclaw/workspace-coder/works/ai-chat/matrix_storec@sfeZdZddZddZddefddZd d
2026-04-11 21:39:04 +08:00
Zd d Zd
dZ ddZ
de de fddZ ddZ
dS)Ú MatrixBotcCs6d|_d|_d|_d|_d|_d|_d|_tƒ|_dS)F) ÚclientÚ
homeserverÚuser_idÚpasswordÚ
is_runningÚon_message_callbackÚ last_room_idÚsetÚprocessed_events©Úself©rúM/home/xian/.openclaw/workspace-coder/works/ai-chat/services/matrix_service.pyÚ__init__s zMatrixBot.__init__cÃtƒ}zedd| t¡ ¡Dƒ}| dd¡|_| dd¡|_| dd¡|_t  d |jd
|j¡|jr\|jrct
j t d d t
|j|jt d
|_d |_t  dt ¡W| ¡d SW| ¡dSW| ¡dS| ¡w)u从数æ®åº“é…ç½®åˆå§‹åŒ–cSsi|]}|j|jqSr)ÚkeyÚvalue)Ú.0ÚcrrrÚ
<dictcomp>#sz.MatrixBot.init_from_config.<locals>.<dictcomp>Úmatrix_homeserverzhttp://matrix.tphai.comÚmatrix_usernamez@tester:matrix.tphai.comÚmatrix_passwordz
tester12345@!uMatrixé…ç½®: homeserver=z, user=T)Úexist_ok)Ú
store_pathu1Matrix nio 客户端已åˆå§‹åŒ–,存储路径: F)rÚqueryr ÚallÚgetrrrÚloggerÚinfoÚosÚmakedirsÚ
STORE_PATHrrrÚclose)rÚdbÚconfigsrrrÚinit_from_configs4 ý òñ
ÿzMatrixBot.init_from_configNÚmessage_handlerc
Ãs |jr|jst d¡dS||_zN|j |j¡IdH}t d|¡t d¡|jjddIdH}t d|j ¡|j 
|j t ¡|j 
|j
t¡t d¡t | ¡¡t d ¡WdSty…}zt d
2026-04-11 23:00:19 +08:00
|¡d dl}t | ¡¡WYd}~dSd}~ww) uå¼€å§‹åŒæ­¥æ¶ˆæ¯uMatrix未连接NuMatrix登录æˆåŠŸ: u加载加密存储...T)Ú
full_stateuåˆå§‹åŒæ­¥å®Œæˆ: next_batch=uMatrix消æ¯å›žè°ƒå·²æ³¨å†Œu'Matrix nio sync_forever 任务已å¯åЍuMatrixå¯åŠ¨å¤±è´¥: r)rrr,ÚwarningrÚloginrr-ÚsyncÚ
next_batchÚadd_event_callbackÚ_handle_nio_messagerÚ_handle_encrypted_messagerÚasyncioÚ create_taskÚ_run_sync_foreverÚ ExceptionÚerrorÚ tracebackÚ
format_exc)rr5Ú
login_respÚ sync_respÚerCrrrÚ
start_sync;s, 


ýzMatrixBot.start_syncc
Ãszzt d¡|jjddIdHWdSty<}zt d|¡ddl}t | ¡¡d|_WYd}~dSd}~ww)u.è¿è¡Œ sync_foreverï¼Œè‡ªåŠ¨å¤„ç†æ‰€æœ‰äº‹ä»¶u开始 Matrix sync_forever...i0u)ÚtimeoutNusync_forever 错误: rF) r,r-rÚ sync_foreverrArBrCrDr)rrGrCrrrr@^s
üzMatrixBot._run_sync_foreverc
2026-04-12 00:47:48 +08:00
Ãs8t d|jd|j¡t d|j¡zÝd}|j}|jrst d|j¡z/| |j¡}|rWt dt|ƒ¡t|dƒrW|j }t|dƒrL|jn|j}t d |¡Wnt
yr}zt  d
|¡WYd}~nd}~ww|s¦t|d ƒr¦|j r¦|j  
d i¡}d|vr¦| 
2026-04-12 00:47:48 +08:00
dd
¡}|j  
2026-04-12 00:47:48 +08:00
d|j¡}t d|r¡|ddnd¡|s¿t|dƒr¿|j r¿|j }t d|dd¡|rßt d|d|dd¡| ||||j¡IdHWdSt  d|j¡t  d|jd¡WdSt
y}zt d|¡ddl}t | ¡¡WYd}~dSd}~ww)u#处ç†åŠ å¯†æ¶ˆæ¯ï¼ˆMegolmEvent)u收到加密消æ¯: [z ] event_id=zevent.decrypted: Nu消æ¯å·²è§£å¯†: u解密事件类型: ÚbodyÚsenderu从 decrypted 获å: uparse_decrypted_event 失败: ÚsourceÚcontentru从source.content获å: é2Úemptyu从event.body获å–: u解密æˆåŠŸ: sender=z, body=u#åŠ å¯†æ¶ˆæ¯æ— æ³•解密: event_id=zevent.decrypted=u, 需è¦å¯†é’¥u处ç†åŠ å¯†æ¶ˆæ¯å¤±è´¥: r)r,r-Úroom_idÚevent_idÚ decryptedrLÚparse_decrypted_eventÚtypeÚhasattrrKrAr7rMr+Ú_process_messagerBrCrD) rÚroomÚeventrKrLÚdecrypted_eventrGrNrCrrrr=jsR 
2026-04-12 00:47:48 +08:00
ÿ  ýz#MatrixBot._handle_encrypted_messagecÃsj|j}||jkrt d|¡dS|j ¡}t d|jd|d|¡| ||||j ¡IdHdS)u,å¤„ç† nio 收到的消æ¯ï¼ˆæ™®é€šæ–‡æœ¬ï¼‰õ忽略自己å‘é€çš„æ¶ˆæ¯: NuMatrix收到文本消æ¯: [z] z: )
rLrr,ÚdebugrKÚstripr-rQrWrR)rrXrYrLÚ message_textrrrr<žs

zMatrixBot._handle_nio_messagec
Ãs\||jvrt d|¡dS|j |¡t d|¡t|jƒdkr1tt|jƒddƒ|_||jkr@t d|¡dS|j |_
2026-04-12 00:47:48 +08:00
t ƒ}zázŠt |ƒ}|j
tddd }|d
krŠ| |j¡}| |j d ¡IdHt d |j¡|jr|jd
|j|j dIdHWW| ¡dS| |j¡} | s™| |j¡}n| d}|j|jd|d||j |dœd}
|jrÁ|jd|j||j |
2026-04-12 00:47:48 +08:00
j|dIdH|jrÑ|jd|j|j dIdHWnHty} z;t d| ¡ddl} t |  ¡¡| |j dt| ƒ¡IdHz|jj|j ddIdHWnYWYd} ~ n d} ~ wwW| ¡dSW| ¡dS| ¡w)uå¤„ç†æ¶ˆæ¯çš„æ ¸å¿ƒé€»è¾‘u忽略已处ç†çš„事件: Nuå¤„ç†æ¶ˆæ¯: event_id=édiÎÿÿÿr[u 主用户Úweb)Ú display_nameÚ user_typez/newu✅ 已创建新会è¯uMatrix创建新会è¯: Únew_conversation)ÚactionÚconversation_idrQrÚuserÚmatrix)rRrQrL)reÚrolerNrMÚ
extra_dataÚ user_message)rdrerjrQÚ
2026-04-12 00:47:48 +08:00
message_idrLÚgenerate_ai_responseu处ç†Matrix消æ¯å¤±è´¥: uå¤„ç†æ¶ˆæ¯æ—¶å‡ºé”™: F)Ú typing_state)rr,r\Úaddr-ÚlenrÚlistrrQrrr Úget_or_create_userÚ MAIN_USER_IDÚcreate_conversationÚidÚ send_messagererr1Úget_user_conversationsÚ add_messagerArBrCrDÚstrrÚ room_typing)
rrXrLr^rRr2Ú conv_servicerÚ conversationÚ
conversationsÚuser_msgrGrCrrrrW­
 
ý  ý 3 Ðýû
2026-04-12 00:47:48 +08:00
 ú