47 lines
2.5 KiB
Python
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')
|