- site_shunxin: replace the hardcoded 1天 radio with config-driven
shunxin.query_days, set the date range via the ant-picker, and add a
two-pass query/retry to clear stale "暂无数据" DOM state; return True
on completion
- config.example.yaml: add the shunxin section (query_days) so the
example matches what the code reads
Co-Authored-By: Claude <noreply@anthropic.com>
- config.example.yaml: add the yunda section (username/password for
auto-login, query_days) and list 韵达 as a valid debug target_site
- Delete main_task.py: early single-site (顺心-only) prototype whose
every function is superseded by main_router.py + site_shunxin.py;
nothing imports it, and it predates paths.py / multi-site / the
automation test
Co-Authored-By: Claude <noreply@anthropic.com>
- Add site_zto.py: ZTO expected-arrival data download with menu
navigation, export polling, and Excel merge
- Wire ZTO into main_router: site URL, login detection, menu items
[5]/[6], and a global offline Left Anti-Join compare entry [9]
- Read config.yaml debug flags to launch only the target site for
focused debugging; guard each site init and route handler behind
site-loaded checks via is_site_ready()
- Expand config.example.yaml with documented debug, baishi, and zto
config keys
Co-Authored-By: Claude <noreply@anthropic.com>
- Replace Baishi placeholders with full download flow (scan-rate query, export modal, password auth via config.yaml)
- Reorganize router menu into 顺心 / 百世 modules; move undelivered-data compare into 顺心 flow
- Add config.example.yaml and ignore config.yaml to keep credentials out of VCS
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>