Files
TPSchedule/server/feedback/html-diagnostic-update.md
T

2.8 KiB

0.7.5:可选本科导入HTML邮件附件更新

本次更新为你已部署的同一个反馈服务增加 diagnostic_html 文件字段。客户端默认关闭,需要学生在“反馈与共建→反馈问题和建议”勾选日志、勾选HTML并同意提示;邮件除日志外另附 TPSchedule-school-page.html,不占3个图片/视频名额。

你需要在1Panel执行的更新

  1. 下载并解压 TPSchedule-feedback-server.zip,找到其中 feedback/feedback_service.py,覆盖服务器原部署目录中的同名文件,例如 /opt/app-feedback/feedback_service.py。不要覆盖服务器 .env,保留原 SMTP 密码、IDEMPOTENCY_SECRET 和数据库数据卷。

  2. 在1Panel的 app.glowtps.cn 站点配置中,把原 client_max_body_size 21m; 改成 client_max_body_size 24m;,验证并重载OpenResty配置。雷池该站点如果有请求体大小限制,也提高到至少24MiB(若单位为字节则25165824)。原域名、证书、80/443→10080→18080转发不变。

  3. 在原目录执行:

    cd /opt/app-feedback
    docker compose up -d --build feedback
    docker compose ps
    curl --fail --max-time 10 http://127.0.0.1:18080/healthz
    

    健康检查返回 {"status":"ok"} 后再测试APP。不要删除数据卷,不要另建新的Compose项目。

  4. 同学安装0.7.5,在学校网页中打开课表并点击一次“导入当前课表”,失败后返回“我的→反馈与共建”。在10分钟内写明错误并勾选日志、HTML,确认后提交。考试读取失败同样保留最后一次捕获的考试表格。到 tps-david@glowtps.cn 核对两个附件;此步骤会真实发送邮件,由你操作。

数据与兼容性

  • HTML只含本科课表/课程名单或考试表格、学期/考试类型数字,以及解析需要的课程字面量脚本;移除学校页面账户头部、表单、链接地址、事件处理和无关脚本,不采集Cookie。附件中的课程脚本不执行,页面附带禁止网络请求的CSP。
  • 课程、教师、教室、考场及可能存在的个人信息用于排查,仍应按个人资料妥善处理。HTML不是原始整页的逐字备份。
  • 未提交的采集缓存仅在APP内存保留最多10分钟;退出学校登录、重新认证或开始新的导入会清除。勾选后实际提交时冻结附件,失败重试沿用同一编号和字节;重试表单关闭或APP结束后该冻结副本释放。
  • HTML最多2MiB,日志256KiB,媒体仍最多3个、每个8MiB、合计20MiB。总HTTP请求上限为20MiB+256KiB+2MiB+64KiB;代理放行24MiB。
  • 旧客户端不带新字段仍可使用。未更新服务端时,新附件可能被拒绝;APP保留内容并提示更新,取消HTML后仍可只发日志。
  • 本工程只准备并测试代码,没有登录你的服务器、改配置或发送真实邮件。