from pathlib import Path
from zipfile import ZipFile
import xml.etree.ElementTree as E,json,hashlib,re
def text(name):
 with ZipFile(name)as z:return ''.join(E.fromstring(z.read('word/document.xml')).itertext())
main=text('main-request.docx');due=re.search(r'10月\d+日',main)[0]
task={'id':'intake-017','main':'main-request.docx','status':'waiting_attachment','upstream':{'due':due,'keep_original':'原件保留'in main}}
Path('paused-state-reference.json').write_text(json.dumps(task,ensure_ascii=False,indent=2))
attachment=Path('supporting-note.docx');detail=text(attachment);assert'只读预览'in detail
task.update(status='resumed',attachment=attachment.name,attachment_sha256=hashlib.sha256(attachment.read_bytes()).hexdigest(),scope='只读预览')
assert task['upstream']['due']=='10月24日'and task['upstream']['keep_original']
Path('resumed-state-reference.json').write_text(json.dumps(task,ensure_ascii=False,indent=2))
print('Read both actual DOCX files; same local task resumes with original10月24日 and attachment只读预览. Not a Coze API event.')
