Quellcode durchsuchen

fix(LZU): 课程列表星期兼容'周一'写法(跟进#609)

yalerove vor 2 Wochen
Ursprung
Commit
63e312d8e0
1 geänderte Dateien mit 5 neuen und 4 gelöschten Zeilen
  1. 5 4
      resources/LZU/lzu.js

+ 5 - 4
resources/LZU/lzu.js

@@ -156,12 +156,13 @@ function parseGridSchedule() {
 //  - 表格行结构: 课程信息行(课程号/课序号/课程名/教师...) 之后可跟 1 行或多行"排课行"
 //  - 或 div 布局: innerText 中课程信息行与排课行相邻
 // 排课字符串形如: "1-18周全周 星期一 下午56节 天山堂A504"
-const WEEK_DAY_PATTERN = /([第]?[0-9,\-,]+周(?:全周|单周|双周)?)\s*(星期[一二三四五六日天])\s*((?:上午|下午|晚上|晚)?\s*\d+(?:-\d+)?节)\s*(\S+)/;
-const WEEK_DAY_PATTERN_NO_POS = /([第]?[0-9,\-,]+周(?:全周|单周|双周)?)\s*(星期[一二三四五六日天])\s*((?:上午|下午|晚上|晚)?\s*\d+(?:-\d+)?节)/;
+const WEEK_DAY_PATTERN = /([第]?[0-9,\-,]+周(?:全周|单周|双周)?)\s*(星期[一二三四五六日天]|周[一二三四五六日天])\s*((?:上午|下午|晚上|晚)?\s*\d+(?:-\d+)?节)\s*(\S+)/;
+const WEEK_DAY_PATTERN_NO_POS = /([第]?[0-9,\-,]+周(?:全周|单周|双周)?)\s*(星期[一二三四五六日天]|周[一二三四五六日天])\s*((?:上午|下午|晚上|晚)?\s*\d+(?:-\d+)?节)/;
 const DAY_MAP = { "一": 1, "二": 2, "三": 3, "四": 4, "五": 5, "六": 6, "日": 7, "天": 7 };
 
 function dayNum(dayText) {
-    return DAY_MAP[String(dayText).replace("星期", "")] || 0;
+    // 兼容 "星期一" / "周一" / "礼拜一" / "星期天"
+    return dayFromText(dayText);
 }
 
 // 从文本片段数组中提取课程信息 (课程号 + 课程名 + 教师)
@@ -465,7 +466,7 @@ function collectProbe() {
             doc.querySelectorAll("td").forEach(cd => {
                 const t = (cd.textContent || "").trim();
                 if (/^\d{3,}[a-zA-Z]*(\(\d+\))?$/.test(t) && t.length <= 12) codeCells++;
-                if (/[0-9]+周/.test(t) && /星期[一二三四五六日天]/.test(t)) schedCells++;
+                if (/[0-9]+周/.test(t) && /(?:星期|周)[一二三四五六日天]/.test(t)) schedCells++;
             });
         } catch (e) {}
     });