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')