refactor: 重构代码架构并使用 Modern Go 特性

- 重命名模块 jwts -> schedule_converter
- 新增 service 包,统一业务逻辑层
- 新增 pkg/logger 包,使用 slog 结构化日志
- 新增 pkg/errors 包,统一错误处理
- 拆分 captcha 包,图片识别移至 service/recognizer
- 清理 models 包,只保留数据结构定义
- 消除 grpc/handler.go 中的重复代码
- 简化 main.go,使用 slog 和 context
- 配置支持单例模式和结构化配置
- 使用 any 替代 interface{}
- 使用 sync.Map 替代 map + RWMutex
This commit is contained in:
lafay
2026-03-16 13:40:53 +08:00
parent 294151cd40
commit 74438c1f7f
20 changed files with 1183 additions and 602 deletions

View File

@@ -11,9 +11,9 @@ import (
"strconv"
"strings"
"jwts/client"
"jwts/config"
"jwts/models"
"schedule_converter/client"
"schedule_converter/config"
"schedule_converter/models"
"github.com/PuerkitoBio/goquery"
)
@@ -54,12 +54,6 @@ func FetchScheduleWithClient(httpClient *http.Client, semester string) ([]models
return nil, err
}
if err := os.WriteFile("grkb.html", body, 0644); err != nil {
fmt.Printf(" 警告: 无法保存课表页面: %v\n", err)
} else {
fmt.Println(" 课表页面已保存到: grkb.html")
}
// 解析课表
courses, err := ParseScheduleHTML(string(body))
if err != nil {