Mr.Mou @ ShiShi AP Center

一键填成绩

2025-09-06 更新说明 ** — 工具地址:shishiapcs.github.io/thinkwave

本次更新聚焦“更稳、更顺手”的批量录分体验:加入 Ad-hoc 临时名单IELTS→GPA 转换,重新标定 TOEFL→GPA,并修复若干边界 Bug。


1) 新增 / 变化

  1. Ad-hoc 临时名单模式

    • 现在可直接粘贴任意学生姓名(每行一个),临时作为本次会话的“班级名单”。
    • 与右侧“粘贴分数”协同工作:可按临时名单顺序导出 CSV、生成自动填写代码(不破坏原班级名单)。
    • 清除 Ad-hoc 时会自动恢复到上一次选中的学科;若无学科,界面回到干净空状态,避免“看见名单但无法运行”的尴尬。
  2. IELTS → GPA(1–9)转换

  3. TOEFL(口语 0–30)→ GPA(55–100)重新标定

  4. 自动填充代码(Console 粘贴)更健壮

    • 剪贴板失败回退:若浏览器拒绝写剪贴板,会提示并将代码输出到 Console,便于手动复制。
    • 空键防护:构建键映射时跳过空字符串,避免出现 "" 命中所有行的极端情况。
    • 仍然使用“姓名关键字集合”匹配(大小写/空格/标点/引号/变音符不敏感;支持英文名、昵称、名+姓姓+名、以及 Tom Z / TomZ 等缩写组合),页面顺序变化也能稳定匹配。

2) 修复的问题(Bug Fixes)


TOEFL(口语 0–30)→ GPA(55–100)对照表

TOEFL GPA TOEFL GPA TOEFL GPA
0–7 55 16 80 25 95
8 58 17 82 26 96
9 61 18 84 27 98
10 63 19 86 28 99
11 66 20 88 29 100
12 69 21 90 30 100
13 72 22 91    
14 74 23 92    
15 77 24 94    

分段锚点:≤7→55,16→80,21→90,25→95,≥29→100(区间内线性插值,四舍五入)。


IELTS(1.0–9.0,含 0.5)→ GPA(55–100)对照表

Band GPA Band GPA Band GPA Band GPA
1.0 55 3.5 67 6.0 88 8.5 99
1.5 56 4.0 70 6.5 90 9.0 100
2.0 58 4.5 74 7.0 92    
2.5 61 5.0 78 7.5 95    
3.0 63 5.5 83 8.0 97    

分段锚点:1.0→55、4.0→70、5.0→78、6.0→88、6.5→90、7.0→92、7.5→95、8.0→978.5→999.0→100(区间内线性插值,四舍五入)。 说明:高分段梯度更陡,突出 8.0 以上成绩的稀缺度;中段(5–7)保持更细腻区分度;低分段设置底线 55。


更新说明(2025-08-27) — 工具地址:shishiapcs.github.io/thinkwave

  1. 自动明暗主题:新增自动适配浅/深色主题,并提供手动切换,整体界面更干净易读。
  2. 抓取脚本托管到 GitHub:把用于获取 ThinkWave 数据的 JS 抓取脚本(bookmarklet 书签脚本)放到 GitHub,便于长期维护与更新。
  3. 一键获取全校班级与学生:用书签脚本在 ThinkWave 页面一键抓取所有班级与学生名单,形成标准 JSON 数据。
  4. 一键导入到工具:抓取到的 JSON 可一次性导入到网站;只要学期内学生名单和顺序不变,通常整个学期只需导入一次。
  5. 更稳的自动填写逻辑:不再靠“序号/行号”去对齐,而是根据姓名关键字集合匹配(对大小写、空格、标点、变音符不敏感),示例:

    • Tom Z 能匹配:Tom ZTomZTom Zhang 等。 这样即使页面排序变化或夹杂其他行,仍能稳定找到对应学生并填入分数。
  6. 更宽松的姓名匹配

    • 大小写不敏感joe = JOE);
    • 去除空格/标点/引号(支持 “昵称”、逗号分隔的“姓, 名”格式);
    • 支持缩写/首字母(如 Tom ZTomZ);
    • 支持多种组合(英文名、昵称、名+姓、姓+名、名+姓首字母等多种键)。
  7. 导出 CSV:组织好的“姓名,分数”可以直接预览与下载 CSV,便于归档或导入到其他系统。

Update Notes (2025-08-27) — Tool: RosterFlow — ThinkWave Organizer

  1. Auto light/dark theme: The UI now adapts to your system theme with a manual toggle for a cleaner, more readable layout.
  2. Script on GitHub: The ThinkWave scraping JS (bookmarklet) is hosted on GitHub for easy access and maintenance.
  3. One-click data grab: Use the bookmarklet on ThinkWave to download all classes and students into a standard JSON file.
  4. One-click import: Import that JSON into the tool once; unless the roster order changes, you typically only need to import once per semester.
  5. More robust autofill: Instead of relying on row positions, the tool matches by a set of name keys (case/space/punctuation/diacritics insensitive). Examples:

    • Tom Z matches Tom Z, TomZ, Tom Zhang, etc. This stays reliable even if the page order changes or extra rows appear.
  6. Flexible name matching:

    • Case-insensitive (joe = JOE),
    • Ignores spaces/punctuation/quotes (supports nicknames in quotes and “Last, First” formats),
    • Initials and concatenations (Tom Z, TomZ),
    • Multiple combinations (English name, nickname, given+family, family+given, given+family-initial, etc.).
  7. CSV export: Preview and download CSV (“Name,Score”) for records or downstream tools.

书签脚本(Bookmarklet)简明使用说明

  1. 复制下面整段代码:
javascript:(function(){var s=document.createElement('script');s.src='https://shishiapcs.github.io/thinkwave/tw-scraper.js?ts='+Date.now();document.body.appendChild(s);})();
  1. 在浏览器里新建书签:
  1. 打开 ThinkWave 的班级/成绩页面。
  2. 点击刚才的书签 TW抓取 → 按提示保存生成的 JSON 文件。
  3. 打开工具网站 https://shishiapcs.github.io/thinkwave/ → 点击 Import JSON 导入即可。

小提示:若浏览器拦截下载/弹窗,请允许本页面的下载或弹窗。


Bookmarklet — Super Short How-To

  1. Copy the code below:
javascript:(function(){var s=document.createElement('script');s.src='https://shishiapcs.github.io/thinkwave/tw-scraper.js?ts='+Date.now();document.body.appendChild(s);})();
  1. Create a new bookmark:
  1. Go to your ThinkWave class/gradebook page.
  2. Click the TW Scraper bookmark → save the generated JSON file.
  3. Open https://shishiapcs.github.io/thinkwave/ → click Import JSON to load it.

Tip: If the browser blocks downloads/pop-ups, allow them for this page.

Tutorial