Skip to content
This repository was archived by the owner on Sep 12, 2025. It is now read-only.

Conversation

oNya685
Copy link

@oNya685 oNya685 commented Sep 7, 2025

  • 新增对例如 [1-3周(单),7-13周(单)][1-3周,5周] 的老师多周次排课的解析。
  • 优化代码结构,提高可维护性。

重写了 BUAAParser 的核心解析逻辑,以解决教务系统中出现的复杂教师与周次字符串。

主要变更:
1. 数据源切换:解析目标从 cellDetail 字段转移至 titleDetail 中的 "上课教师" 字符串
2. 功能增强:
    - 支持解析同一课程下由多位教师分别授课的情况
    - 能够正确处理单个教师负责的多个、不连续的周次安排,例如 "[1-3周(单),7-13周(单)]"
    - 兼容混合周次格式,例如 "[1-3周,5周]"。

此次重构旨在提升解析器面对复杂课表时的准确性和健壮性。
本次提交对 BUAAParser 进行了优化,使其代码更符合现代 Kotlin 风格,并显著提升了代码的可读性、健壮性和可维护性。

主要变更:
- **函数式改造**: 使用 `flatMap` 和 `mapNotNull` 等函数式 API 改造解析流程,代码逻辑更清晰。
- **常量化**: 将所有硬编码的字符串(如 "上课教师:"、分隔符等)提取为伴生对象中的常量。
- **职责分离**: 将复杂的解析逻辑拆分为更小、职责更单一的私有函数。
- **健壮性增强**: 优化了空安全处理和对异常数据格式的容错能力。
本次提交对 BUAAParser 进行了优化,使其代码更符合现代 Kotlin 风格,并显著提升了代码的可读性、健壮性和可维护性。

主要变更:
- **函数式改造**: 使用 `flatMap` 和 `mapNotNull` 等函数式 API 改造解析流程,代码逻辑更清晰。
- **常量化**: 将所有硬编码的字符串(如 "上课教师:"、分隔符等)提取为伴生对象中的常量。
- **职责分离**: 将复杂的解析逻辑拆分为更小、职责更单一的私有函数。
- **健壮性增强**: 优化了空安全处理和对异常数据格式的容错能力。
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant