lookatstudy-mobile 0.14.0 → 0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/install-termux.sh +41 -17
- package/package.json +1 -1
- package/server.cjs +45429 -10115
- package/web/assets/{abnfDiagram-N423BO3Z-DgtY7GDo.js → abnfDiagram-N423BO3Z-uVyZuC2D.js} +1 -1
- package/web/assets/api-web-BydHmVA4.js +1 -0
- package/web/assets/{arc-BFja7Mgl.js → arc-Bj7Boh6s.js} +1 -1
- package/web/assets/{architectureDiagram-T3A2C74G-DldSQeNu.js → architectureDiagram-T3A2C74G-CrbkXNQp.js} +1 -1
- package/web/assets/{blockDiagram-VBNYF7ZC-COFgyocp.js → blockDiagram-VBNYF7ZC-DAzIMkNI.js} +1 -1
- package/web/assets/{c4Diagram-5PPSVZJV-GmE0XgdV.js → c4Diagram-5PPSVZJV-NlYvtXbZ.js} +1 -1
- package/web/assets/channel-JNlIjRLZ.js +1 -0
- package/web/assets/{chunk-2GRJ4B5K-C-faEZaU.js → chunk-2GRJ4B5K-Cy2RZsUk.js} +1 -1
- package/web/assets/{chunk-2Q5K7J3B-BWgLp_F9.js → chunk-2Q5K7J3B-DtK3xo3Z.js} +1 -1
- package/web/assets/{chunk-5RXB4S5H-vHcAw0te.js → chunk-5RXB4S5H-CmVGejcd.js} +1 -1
- package/web/assets/{chunk-5VM5RSS4-BCDOzlTk.js → chunk-5VM5RSS4-EO_k0Crh.js} +1 -1
- package/web/assets/{chunk-6Q2QTUOP-Dursv_dJ.js → chunk-6Q2QTUOP-TBVy-R-c.js} +1 -1
- package/web/assets/{chunk-GF5L2VYU-D4V-7P-V.js → chunk-GF5L2VYU-_N0jD1tE.js} +1 -1
- package/web/assets/{chunk-JWPE2WC7-TwBqtNYu.js → chunk-JWPE2WC7-BIAuolFx.js} +1 -1
- package/web/assets/{chunk-KBJHAD2P-CBdoagw5.js → chunk-KBJHAD2P-DqcnXfI8.js} +1 -1
- package/web/assets/{chunk-RYQCIY6F-CvxRMinP.js → chunk-RYQCIY6F-D5RQKqlg.js} +1 -1
- package/web/assets/{chunk-XXDRQBXY-BpesQiqp.js → chunk-XXDRQBXY-1Ksx_dPa.js} +1 -1
- package/web/assets/classDiagram-JCYQIIEL-C-12RKGI.js +1 -0
- package/web/assets/classDiagram-v2-OCEON4UE-C-12RKGI.js +1 -0
- package/web/assets/{cose-bilkent-JH36ORCC-gCstzBiF.js → cose-bilkent-JH36ORCC-DAUofPwo.js} +1 -1
- package/web/assets/{cynefin-VYW2F7L2-eq0Le49d.js → cynefin-VYW2F7L2-CAYbjl57.js} +1 -1
- package/web/assets/{cynefinDiagram-MW4NZA55-xxlmYE_G.js → cynefinDiagram-MW4NZA55-UaEI49aN.js} +1 -1
- package/web/assets/{dagre-VZM6K2ZE-CWyDRsXC.js → dagre-VZM6K2ZE-CKP3kBHM.js} +1 -1
- package/web/assets/{diagram-7IWD3JNH-BD4KOl1t.js → diagram-7IWD3JNH-CLfr8NaW.js} +1 -1
- package/web/assets/{diagram-B4RE2ZJO-CXijC7V1.js → diagram-B4RE2ZJO-h051w7zn.js} +1 -1
- package/web/assets/{diagram-LBJQPF4R-DjfmPFKV.js → diagram-LBJQPF4R-CUOsO4df.js} +1 -1
- package/web/assets/{diagram-Q27KOJAE-DbvF3QXB.js → diagram-Q27KOJAE-BXbJxAlu.js} +1 -1
- package/web/assets/{diagram-UB23O5K3-Ctcq65GD.js → diagram-UB23O5K3-BHV6tpU9.js} +1 -1
- package/web/assets/{ebnfDiagram-BXEA7PRR-DCYFsDbf.js → ebnfDiagram-BXEA7PRR-CAahAB9-.js} +1 -1
- package/web/assets/{erDiagram-JOGREHBK-CQewgYqy.js → erDiagram-JOGREHBK-Bz30kI2B.js} +1 -1
- package/web/assets/{flowDiagram-UKHOOZJN-lB12og4l.js → flowDiagram-UKHOOZJN-CsFP_-KD.js} +1 -1
- package/web/assets/{ganttDiagram-PKOTCBZU-D7qHLjvT.js → ganttDiagram-PKOTCBZU-Cm5qe_5U.js} +1 -1
- package/web/assets/{gitGraphDiagram-DS77QQ5N-DawhnSu7.js → gitGraphDiagram-DS77QQ5N-DNktj2Kq.js} +1 -1
- package/web/assets/index-BC_sP79K.js +563 -0
- package/web/assets/index-BSTI-ywB.css +1 -0
- package/web/assets/{infoDiagram-6WML65LV-C4YDlp9J.js → infoDiagram-6WML65LV-vZK5e7Xx.js} +1 -1
- package/web/assets/{ishikawaDiagram-WSZJBQD7-qHmIFIFS.js → ishikawaDiagram-WSZJBQD7-Bt6EfUkc.js} +1 -1
- package/web/assets/{journeyDiagram-NVQOT4AX-BgXFOkh4.js → journeyDiagram-NVQOT4AX-DmVq_JOG.js} +1 -1
- package/web/assets/{kanban-definition-27J2QSJJ-Cb_2GmBW.js → kanban-definition-27J2QSJJ-tE00W58E.js} +1 -1
- package/web/assets/{linear-C6JxbU0K.js → linear-CAqnKu9J.js} +1 -1
- package/web/assets/{mermaid.core-BD6oeZlV.js → mermaid.core-uJSxER2x.js} +4 -4
- package/web/assets/{mindmap-definition-FAOFIHXS-BxBTsWEo.js → mindmap-definition-FAOFIHXS-D5S_P9_s.js} +1 -1
- package/web/assets/{pegDiagram-VL7TDLO6-BBAVQiSc.js → pegDiagram-VL7TDLO6-BZkaiQ_9.js} +1 -1
- package/web/assets/{pieDiagram-7S7Q4E2Y-CAPgb23U.js → pieDiagram-7S7Q4E2Y-DYpiHnao.js} +1 -1
- package/web/assets/{quadrantDiagram-CIZ2JOQS-j1RV2NlH.js → quadrantDiagram-CIZ2JOQS-BqycGz7D.js} +1 -1
- package/web/assets/{railroadDiagram-AXF67PYL-BDs1LoGd.js → railroadDiagram-AXF67PYL-DEoY1V9D.js} +1 -1
- package/web/assets/{requirementDiagram-LRYGKXZP-DDwz3C7i.js → requirementDiagram-LRYGKXZP-CH-xotLo.js} +1 -1
- package/web/assets/{sankeyDiagram-W5VNT64P-CT4bV-jV.js → sankeyDiagram-W5VNT64P-BCLFObl1.js} +1 -1
- package/web/assets/{sequenceDiagram-SI44F4Z6-yQc563EG.js → sequenceDiagram-SI44F4Z6-CE1T-Oar.js} +1 -1
- package/web/assets/{sizeCapture-X5ZJPWSS-BY_Fo4Vk.js → sizeCapture-X5ZJPWSS-uf4-mQAU.js} +1 -1
- package/web/assets/{stateDiagram-OKZ733FA-BprQJdqp.js → stateDiagram-OKZ733FA-Dt2wQF9A.js} +1 -1
- package/web/assets/stateDiagram-v2-UEYNNEHI-BbJD6fMT.js +1 -0
- package/web/assets/{swimlanes-SLNWSIFB-Cw1Bh8uO.js → swimlanes-SLNWSIFB-jLXDXtjZ.js} +2 -2
- package/web/assets/swimlanesDiagram-ULZ7WXOC-BTdV0I38.js +8 -0
- package/web/assets/{timeline-definition-Z64GVDOM-D-3MRDsn.js → timeline-definition-Z64GVDOM-CPajwTED.js} +1 -1
- package/web/assets/{vennDiagram-T6HMQDX7-D6GEH7ZD.js → vennDiagram-T6HMQDX7-DKkB137-.js} +1 -1
- package/web/assets/{wardleyDiagram-T6FBY63Y-C-6u22Ga.js → wardleyDiagram-T6FBY63Y-CHD6tq1V.js} +1 -1
- package/web/assets/{xychartDiagram-ELKLHX3M-DhJCg-k0.js → xychartDiagram-ELKLHX3M-DIO9Q6BD.js} +1 -1
- package/web/index.html +2 -2
- package/web/assets/api-web-CfrRrKkd.js +0 -1
- package/web/assets/channel-iM9iC2OH.js +0 -1
- package/web/assets/classDiagram-JCYQIIEL-Cm2EHo2w.js +0 -1
- package/web/assets/classDiagram-v2-OCEON4UE-Cm2EHo2w.js +0 -1
- package/web/assets/index-CPlDOqRv.js +0 -563
- package/web/assets/index-CUlT9__2.css +0 -1
- package/web/assets/stateDiagram-v2-UEYNNEHI-AF2jxans.js +0 -1
- package/web/assets/swimlanesDiagram-ULZ7WXOC-DtBbpGaG.js +0 -8
package/install-termux.sh
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
# bash ~/lookatstudy/stop.sh # 停止
|
|
6
6
|
# bash ~/lookatstudy/status.sh # 状态 + 访问链接
|
|
7
7
|
# bash ~/lookatstudy/update.sh # 更新便携包并重启
|
|
8
|
-
#
|
|
8
|
+
# 不在本机跑 npm:便携包与语音引擎包的 tarball 主源 npmmirror(自动同步 npmjs),未同步/失败回退 GitHub Release 直连+代理链。
|
|
9
9
|
set -euo pipefail
|
|
10
10
|
|
|
11
11
|
PORT="${LOOKATSTUDY_PORT:-17890}"
|
|
@@ -16,9 +16,41 @@ GH_VOICE="https://github.com/Kaiji-Z/LookatStudy/releases/latest/download/lookat
|
|
|
16
16
|
# 直连优先,失败再走代理前缀(镜像只做回退:KaijiBot 教训是镜像同步延迟会坏事,大头收益在 apt 的 TUNA)
|
|
17
17
|
DL_PREFIXES=("" "https://gh-proxy.com/" "https://ghproxy.net/" "https://ghfast.top/")
|
|
18
18
|
|
|
19
|
-
# npmmirror(阿里,自动同步 npm)解析包的 latest tarball
|
|
19
|
+
# npmmirror(阿里,自动同步 npm)解析包的 latest tarball 地址;空输出=未同步/网络失败。
|
|
20
|
+
# 同步滞后守卫:刚发版的头几分钟镜像 latest 可能还指向上一个版本,静默拿到旧包
|
|
21
|
+
# —— 版本落后于 GitHub 最新 release 时按"未命中"处理,走 GitHub 回退链(GitHub 的
|
|
22
|
+
# releases/latest/download 永远指向最新版)。GitHub 版本探测失败(网络)则信任镜像,
|
|
23
|
+
# 不因 GitHub 不可达惩罚国内直连的镜像主源。
|
|
20
24
|
npm_tarball() {
|
|
21
|
-
|
|
25
|
+
local json ver gh
|
|
26
|
+
json=$(curl -sfL --connect-timeout 8 --max-time 20 "https://registry.npmmirror.com/$1/latest" || true)
|
|
27
|
+
[ -n "$json" ] || return 1
|
|
28
|
+
ver=$(printf '%s' "$json" | sed -n 's/.*"version":"\([^"]*\)".*/\1/p')
|
|
29
|
+
if [ -n "$ver" ]; then
|
|
30
|
+
gh=$(gh_latest_version)
|
|
31
|
+
if [ -n "$gh" ] && ! ver_ge "$ver" "$gh"; then
|
|
32
|
+
info "npm 镜像同步滞后(镜像 v${ver} < GitHub v${gh}),走 GitHub 链…"
|
|
33
|
+
return 1
|
|
34
|
+
fi
|
|
35
|
+
fi
|
|
36
|
+
printf '%s' "$json" | sed -n 's/.*"tarball":"\([^"]*\)".*/\1/p'
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
# GitHub 最新 release 版本号(仅数字串;空=探测失败)。releases/latest/download 会 302 到
|
|
40
|
+
# 带 tag 的最终资产 URL,HEAD 一次读 url_effective 即得,不用碰 api.github.com。
|
|
41
|
+
gh_latest_version() {
|
|
42
|
+
local final
|
|
43
|
+
final=$(curl -sIL --connect-timeout 8 --max-time 20 -o /dev/null -w '%{url_effective}' \
|
|
44
|
+
"https://github.com/Kaiji-Z/LookatStudy/releases/latest/download/probe" 2>/dev/null || true)
|
|
45
|
+
printf '%s' "$final" | sed -n 's#.*/download/v\([0-9][0-9.]*\)/.*#\1#p'
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
# 语义版本比较:ver_ge A B = A >= B(空段按 0 补齐;非数字/空返回失败)
|
|
49
|
+
ver_ge() {
|
|
50
|
+
local a b
|
|
51
|
+
a=$(printf '%s' "$1" | tr -d 'v' | awk -F. '{printf "%02d%02d%02d", $1, $2, $3}')
|
|
52
|
+
b=$(printf '%s' "$2" | tr -d 'v' | awk -F. '{printf "%02d%02d%02d", $1, $2, $3}')
|
|
53
|
+
[ -n "$a" ] && [ -n "$b" ] && [ "$a" -ge "$b" 2>/dev/null ]
|
|
22
54
|
}
|
|
23
55
|
|
|
24
56
|
info() { printf '\033[1m[*]\033[0m %s\n' "$*"; }
|
|
@@ -111,7 +143,7 @@ install_voice() {
|
|
|
111
143
|
tar -xzf voice.tgz --strip-components=1 -C "$APP_DIR/node_modules"
|
|
112
144
|
rm -f voice.tgz
|
|
113
145
|
ok "语音引擎就位(npm 镜像): $APP_DIR/node_modules/sherpa-onnx-node"
|
|
114
|
-
info "
|
|
146
|
+
info "语音模型在应用内按需下载(设置 → 语音能力):朗读本地档约 430MB;听写建议云档(Groq/Azure),本地 Whisper 约 360MB~1GB"
|
|
115
147
|
info "装完模型重启服务生效: bash ~/lookatstudy/start.sh"
|
|
116
148
|
return 0
|
|
117
149
|
fi
|
|
@@ -304,19 +336,11 @@ case "$(getprop ro.product.manufacturer 2>/dev/null | tr '[:upper:]' '[:lower:]'
|
|
|
304
336
|
;;
|
|
305
337
|
esac
|
|
306
338
|
|
|
307
|
-
# ── 6.5 语音引擎(Termux
|
|
308
|
-
# 引擎包 ~12MB
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
echo ''
|
|
313
|
-
info "可选:Termux 语音朗读/听写(引擎包约 12MB,语音模型在应用内另下)。"
|
|
314
|
-
read -r -p "[*] 现在安装吗?[y/N] " ans </dev/tty 2>/dev/null || ans="n"
|
|
315
|
-
case "$ans" in
|
|
316
|
-
y|Y) install_voice || true ;;
|
|
317
|
-
*) info "跳过(以后可: bash install-termux.sh --voice)" ;;
|
|
318
|
-
esac
|
|
319
|
-
fi
|
|
339
|
+
# ── 6.5 语音引擎(Termux 专属交叉编译包,默认安装) ────────────
|
|
340
|
+
# 引擎包 ~12MB 一次到位(相对 Node+系统升级的体量可忽略;语音朗读/听写默认能力)。
|
|
341
|
+
# 全程零交互:失败不阻断安装(朗读在线档/听写云档不依赖本地引擎),重跑安装命令即补装。
|
|
342
|
+
# 兼容旧写法:--voice 参数仍被接受(现为默认,传不传一样)。
|
|
343
|
+
install_voice || true
|
|
320
344
|
|
|
321
345
|
# ── 7. 启动 + 打印访问链接 ───────────────────────────────────
|
|
322
346
|
info "启动 LookatStudy..."
|