github linruowuyin/Fhoe-Rail 4.5.0_260828

6 hours ago

一、图片格式迁移(WebP)

utils/img.py — 新增 resolve_path() 静态方法,按 webp → png → jpg 优先级查找实际存在的图片文件;新增 get_img() 统一入口,带 mtime 缓存。白名单保留 .webp/.png/.jpg。
utils/map_utils/map.py — 6 处 cv2.imread() 改为 Img.get_img(),修复 JSON 中写死 .png 但实际文件是 .webp 的兼容问题。
utils/shutdown.py — 1 处 Image.open() 改为内联 _resolve_image() 轻量函数,避免拉入 cv2 依赖。
utils/mini_asu.py — 1 处同样修复。
tools/convert_to_webp.py — 新增批量转换工具,365 PNG + 2 JPG → 无损 WebP(2.28MB → 1.38MB)。

二、星球名称中文化

utils/setting.py — 终端选项星球名称改为简称(黑塔/雅利洛/罗浮/匹诺康尼/翁法罗斯/二相乐园)。
utils/map_selector.py — 同步改简称。
webui/server.py — PLANET_NAMES 作为唯一数据源(1黑塔/2雅利洛/3罗浮/4匹诺康尼/5翁法罗斯/6二相乐园),/api/maps 返回 {tree, planet_names}。
webui/index.html — 前端动态获取 planet_names,不再硬编码。

三、WebUI 地图图鉴增强

webui/server.py — 新增:
POST /api/map(保存地图 JSON,含路径安全校验+数据校验+原子写入+.bak 轮转备份)
GET /api/picture(按 webp→png→jpg 优先级查找 picture/ 目录返回图片流)
POST /api/open-map(用系统默认程序打开地图 JSON)
POST /api/run 支持 map_version 参数(单图播放修复链)

webui/index.html — 大量改动:
弹窗标题栏新增 📂打开 / ▶运行 / ✏️编辑 / ✕关闭 四按钮
renderMapEditor/saveMapEdit 支持编辑 name/author/start/map 四字段
Object.assign 保留原始 JSON 额外字段,防止保存丢失
mapDirty 标志,只在有修改时关闭弹窗才确认
编辑模式 mapEditing 全局标志,点击遮罩不关闭弹窗
候选列表拆分为 START_CMDS(16 个+picture)和 MAP_CMDS(10 个),attachCmdSuggest 按 data-sec 自动选择
startsWith 首字母匹配自动补全
data-pic 属性从整行移到 .k 键名元素,悬浮仅显示在文字上
弹窗尺寸调大(max-width 780→900px),全局字号+2px

Don't miss a new Fhoe-Rail release

NewReleases is sending notifications on new releases.