Skip to content

feat: 对齐 surveycore-py v0.2.0 / 官方 v4.1.0 协议 - #4

Merged
shiaho777 merged 1 commit into
mainfrom
codex/align-core-0.2.0
Nov 13, 2026
Merged

shiaho777 merged 1 commit into
mainfrom
codex/align-core-0.2.0

Conversation

@shiaho777

Copy link
Copy Markdown
Collaborator

概要

对齐 surveycore-py v0.1.1 → v0.2.0 的协议变更,对应官方桌面端 v4.1.0。

Fixes #3

变更

  • 新增问卷星多级下拉题支持(移植 wjx/provider/multilevel.py)
    • 解析 hfLevelData 层级数据,支持 cid 编码与 DecodeId 活动 ID
    • 解析阶段按需请求 /joinnew/setmenuselnew.aspx 拉取叶子选项
    • 作答时把选项索引转换为 WJX 文本路径提交(‐ 分隔)
  • 识别 type=1 + verify="多级下拉" → 按 type=7 处理,并保存 provider_page_raw
  • 过滤隐藏且无输入框的 type=9 gapfill 占位节点(对标 f7a5094)
  • 提交准备阶段响应停止信号,停止后不再 POST(对标 131355b)
  • 兼容桌面端 multilevel_dropdown 配置导入,运行时按下拉题处理
  • 版本升至 0.2.0,alignedOfficialVersion 更新为 4.1.0

说明

  • 反填(xlsx 回放)在 Mac 端原本就未接入,本次未新增;v0.2.0 的多选反填属于该子系统。
  • 多级下拉暂沿用下拉题权重编辑器,选项以完整路径展示。

测试

xcodebuild -project SurveyController.xcodeproj -scheme SurveyController \
  -destination 'platform=macOS' CODE_SIGNING_ALLOWED=NO test

结果:102 个用例通过(1 个既有跳过),新增 6 个多级下拉/占位过滤/配置 round-trip 用例。

- 移植 wjx/provider/multilevel.py:解析 hfLevelData、拉取 setmenuselnew 选项、按文本路径提交
- 解析阶段识别 type=1 + verify=多级下拉,转为 type=7 并保存 provider_page_raw
- 过滤隐藏且无输入框的 type=9 gapfill 占位节点(对标 f7a5094)
- 提交准备阶段响应停止信号,避免停止后仍 POST(对标 131355b)
- 兼容桌面端 multilevel_dropdown 配置导入,运行时按下拉处理
- 版本升至 0.2.0,对齐官方 4.1.0
@shiaho777
shiaho777 merged commit 3f1f37f into main Nov 13, 2026
1 check passed
@shiaho777
shiaho777 deleted the codex/align-core-0.2.0 branch November 13, 2026 01:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Align with protocol changes in surveycore-py v0.2.0

1 participant