Files
kefu/deploy/review-assistant-20260917/visual_cancel_hooks.py
T
2026-09-21 10:34:06 +08:00

47 lines
2.5 KiB
Python

from pathlib import Path
import ast
for root in (Path('C:/kefu/wechat_rpa'), Path('C:/wechat_rpa')):
p = root/'gui_runtime.py'
text=p.read_text(encoding='utf-8')
needle='def delete_pending_reply_file(keys, path="", *, handoff=False, confirm_uncertain=False):'
helper='''def cancel_assistant_review_for_state(state, root):
"""Close only the explicitly cancelled episode; never start native I/O."""
if not isinstance(state, dict) or not state.get("assistant_review_id"):
return True
event = state.get("database_event") or {}
account = str(state.get("account") or event.get("account") or "")
if not account:
return False
coordinator = None
try:
from review_assistant import ReviewAssistantCoordinator
coordinator = ReviewAssistantCoordinator(root=root, account=account)
coordinator.cancel_review(state)
return True
except Exception as exc:
print(f"[助理审核] 任务已移除,但提醒取消失败({type(exc).__name__}),请检查审核提醒状态")
return False
finally:
if coordinator is not None:
coordinator.close()
'''
assert text.count(needle)==1
text=text.replace(needle,helper+needle)
needle=' result["deleted"] = [key for key, _state in removed]'
assert text.count(needle)==1
text=text.replace(needle,' for _key, state in removed:\n cancel_assistant_review_for_state(state, directory)\n'+needle)
ast.parse(text)
p.write_text(text,encoding='utf-8',newline='\n')
p=root/'wechat_bot.py'
text=p.read_text(encoding='utf-8')
needle=' for key, state in removed:\n result["handed_off"].append(key)'
assert text.count(needle)==1
text=text.replace(needle,' from gui_runtime import cancel_assistant_review_for_state\n for key, state in removed:\n cancel_assistant_review_for_state(state, os.path.dirname(self._pending_reply_path))\n result["handed_off"].append(key)')
needle=' for key, _state, name in removed:\n try:\n self.queue_log.append('
assert text.count(needle)==1
text=text.replace(needle,' from gui_runtime import cancel_assistant_review_for_state\n for key, _state, name in removed:\n cancel_assistant_review_for_state(_state, os.path.dirname(self._pending_reply_path))\n try:\n self.queue_log.append(')
ast.parse(text)
p.write_text(text,encoding='utf-8',newline='\n')