# -*- coding: utf-8 -*- u"""只读 DOM 文本盯进度,不碰任何 eda.pcb_* API(怕打断布线器)。""" import io, json, os, sys, time HERE = os.path.dirname(os.path.abspath(__file__)) sys.path.insert(0, HERE) from eda import run JS = (u"const t=(document.body.innerText||'').split(String.fromCharCode(10))" u".map(s=>s.trim()).filter(s=>s.indexOf('自动布线中')===0);return {p:t[0]||''};") log = io.open(os.path.join(HERE, '_route3.log'), 'w', encoding='utf-8') seen = False gone = 0 for i in range(600): r = run(JS, timeout=60) p = r.get('result', {}).get('p', '') if r.get('success') else 'ERR' log.write(u'%s %s\n' % (time.strftime('%H:%M:%S'), p or '(无进度条)')); log.flush() if p and p != 'ERR': seen = True; gone = 0 elif seen: gone += 1 if gone >= 3: log.write(u'DONE 进度条连续 3 次消失\n'); log.flush(); break time.sleep(30) log.close() print(u'watch3 finished')