docs: README 跟上授权延长与通道组,截图和动图改为一条命令重新生成
README - 申请延长写清规则:授权有效期间也可申请,有效的从原到期时间顺延、已结束的从批准时起算, 被撤销的不能延长;批准延长时通道会开到授权结束(与最长开启时长的关系) - 修正通道组「一起开关」与「可以单独开关」的矛盾:闲置按整组计算,每个地址仍可单独开关 - 时长选项用界面上的「通道开启期间」;快速开始按实际流程写(保存后自动弹出邀请设置) - 新增同事端申请延长的三张截图;流程图补上 30 分钟、自定义与 2 小时内可申请延长 截图与动图 - 授权管理、编辑通道、邀请文案、授权成功页、网页面板(含通道组)更新为当前界面 - 离屏渲染时控件按激活状态绘制,开关不再显示成灰色 - 新增 make readme-images:App 离屏渲染、动图合成、授权页与网页面板的无头 Chrome 截图一次完成, 写入 docs/images;授权页 HTML 由服务端测试用模拟状态生成,网页面板用本机模拟 API 界面 - 计时文字第二个单位补零(27分05秒),卡片上的徽标不再随秒数左右跳动;App 与网页面板一致 - 待审批与延长申请的时间格式统一为不带秒;App 预览的分享文案补上延长提示
This commit is contained in:
1 parent
6f2a1472b6
commit
3272e66247
26 files changed
+392
-37
No files matched your search
Executable
+41
@@ -0,0 +1,41 @@
|
||||
#!/bin/bash
|
||||
# 用无头 Chrome 截取 README 里的授权页和网页面板(模拟数据)。
|
||||
# 用法: tools/ui-snapshots/web.sh 输出: tools/ui-snapshots/out/web/*.png
|
||||
# 需要 Google Chrome,路径可用 CHROME 环境变量指定。
|
||||
set -e
|
||||
DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
ROOT="$(cd "$DIR/../.." && pwd)"
|
||||
BUILD="$DIR/.build/web"
|
||||
OUT="$DIR/out/web"
|
||||
CHROME="${CHROME:-/Applications/Google Chrome.app/Contents/MacOS/Google Chrome}"
|
||||
[ -x "$CHROME" ] || { echo "找不到 Chrome:$CHROME(可用 CHROME=... 指定)" >&2; exit 1; }
|
||||
rm -rf "$BUILD" "$OUT"
|
||||
mkdir -p "$BUILD" "$OUT"
|
||||
|
||||
# shot URL 宽 高 输出:按 2 倍像素截图,使用临时的浏览器配置
|
||||
shot() {
|
||||
"$CHROME" --headless=new --disable-gpu --hide-scrollbars --no-first-run --no-default-browser-check \
|
||||
--blink-settings=preferredColorScheme=1 --force-device-scale-factor=2 --window-size="$2,$3" --timeout=3000 \
|
||||
--user-data-dir="$BUILD/chrome" --screenshot="$4" "$1" >/dev/null 2>&1
|
||||
}
|
||||
|
||||
# 授权页:服务端用模拟状态生成 HTML。无头 Chrome 的窗口最窄约 500pt,
|
||||
# 所以把页面放进居中的 390pt 宽 iframe(手机宽度),截图后从中间裁出 iframe 部分
|
||||
(cd "$ROOT" && PORTRELAY_README_PAGES="$BUILD" go test ./server -run '^TestReadmePages$' -count=1 >/dev/null)
|
||||
for page in "$BUILD"/auth-*.html; do
|
||||
name="$(basename "$page" .html)"
|
||||
printf '<!DOCTYPE html><body style="margin:0;background:#F5F5F7"><iframe src="%s" width="390" height="610" style="border:0;display:block;margin:0 auto"></iframe>' \
|
||||
"$(basename "$page")" >"$BUILD/frame-$name.html"
|
||||
shot "file://$BUILD/frame-$name.html" 520 610 "$OUT/$name.png"
|
||||
sips -c 1220 780 "$OUT/$name.png" >/dev/null
|
||||
echo "captured $name"
|
||||
done
|
||||
|
||||
# 网页面板:本机模拟 Agent API,只监听回环地址
|
||||
(cd "$ROOT" && go build -o "$BUILD/webpanel" ./tools/ui-snapshots/webpanel)
|
||||
"$BUILD/webpanel" "$ROOT/cmd/portrelay-agent/web/index.html" >"$BUILD/webpanel.url" &
|
||||
pid=$!
|
||||
trap 'kill $pid 2>/dev/null' EXIT
|
||||
for _ in $(seq 50); do [ -s "$BUILD/webpanel.url" ] && break; sleep 0.1; done
|
||||
shot "$(head -1 "$BUILD/webpanel.url")" 1280 1124 "$OUT/web-panel.png"
|
||||
echo "captured web-panel"
|
||||
Reference in new issue
Block a user