feat: serve skin assets as WebP
@@ -78,10 +78,10 @@ dsh --profile web --dump-config | grep -B1 -A2 liang-intensity
|
||||
|
||||
### 方式二:从 GitHub Release tarball 安装
|
||||
|
||||
从本仓库 [Releases](https://github.com/kingOfSoySauce/dsh-liang-skin/releases) 页面下载 `dsh-client-liang-intensity-skin-0.1.6.tgz`(包内已包含构建好的 `lib/client.js`,安装时不需要执行任何 prepare 脚本),然后:
|
||||
从本仓库 [Releases](https://github.com/kingOfSoySauce/dsh-liang-skin/releases) 页面下载 `dsh-client-liang-intensity-skin-0.1.7.tgz`(包内已包含构建好的 `lib/client.js`,安装时不需要执行任何 prepare 脚本),然后:
|
||||
|
||||
```sh
|
||||
dsh plugin --profile web add ./dsh-client-liang-intensity-skin-0.1.6.tgz
|
||||
dsh plugin --profile web add ./dsh-client-liang-intensity-skin-0.1.7.tgz
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 2.6 MiB |
BIN
assets/liang-poster.webp
Normal file
|
After Width: | Height: | Size: 294 KiB |
|
Before Width: | Height: | Size: 1.0 MiB |
BIN
assets/portrait-source-v2/bridge-15.webp
Normal file
|
After Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 1.4 MiB |
BIN
assets/portrait-source-v2/bridge-27.webp
Normal file
|
After Width: | Height: | Size: 139 KiB |
|
Before Width: | Height: | Size: 1.0 MiB |
BIN
assets/portrait-source-v2/level-01.webp
Normal file
|
After Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 1.0 MiB |
BIN
assets/portrait-source-v2/level-03.webp
Normal file
|
After Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 1.0 MiB |
BIN
assets/portrait-source-v2/level-04.webp
Normal file
|
After Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 1.0 MiB |
BIN
assets/portrait-source-v2/level-07.webp
Normal file
|
After Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 1.0 MiB |
BIN
assets/portrait-source-v2/level-09.webp
Normal file
|
After Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 1.0 MiB |
BIN
assets/portrait-source-v2/level-10.webp
Normal file
|
After Width: | Height: | Size: 29 KiB |
|
Before Width: | Height: | Size: 1.0 MiB |
BIN
assets/portrait-source-v2/level-13.webp
Normal file
|
After Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 1.0 MiB |
BIN
assets/portrait-source-v2/level-14.webp
Normal file
|
After Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 972 KiB |
BIN
assets/portrait-source-v2/level-16.webp
Normal file
|
After Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 1000 KiB |
BIN
assets/portrait-source-v2/level-17.webp
Normal file
|
After Width: | Height: | Size: 23 KiB |
|
Before Width: | Height: | Size: 1.0 MiB |
BIN
assets/portrait-source-v2/level-19.webp
Normal file
|
After Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 1.0 MiB |
BIN
assets/portrait-source-v2/level-21.webp
Normal file
|
After Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 1.2 MiB |
BIN
assets/portrait-source-v2/level-22.webp
Normal file
|
After Width: | Height: | Size: 45 KiB |
|
Before Width: | Height: | Size: 1.3 MiB |
BIN
assets/portrait-source-v2/level-25.webp
Normal file
|
After Width: | Height: | Size: 96 KiB |
|
Before Width: | Height: | Size: 1.5 MiB |
BIN
assets/portrait-source-v2/level-28.webp
Normal file
|
After Width: | Height: | Size: 157 KiB |
|
Before Width: | Height: | Size: 1.4 MiB |
BIN
assets/portrait-source-v2/level-29.webp
Normal file
|
After Width: | Height: | Size: 149 KiB |
|
Before Width: | Height: | Size: 1.0 MiB |
BIN
assets/portrait-source-v2/stage-00.webp
Normal file
|
After Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 1.0 MiB |
BIN
assets/portrait-source-v2/stage-06.webp
Normal file
|
After Width: | Height: | Size: 29 KiB |
|
Before Width: | Height: | Size: 1.0 MiB |
BIN
assets/portrait-source-v2/stage-12.webp
Normal file
|
After Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 1.0 MiB |
BIN
assets/portrait-source-v2/stage-18.webp
Normal file
|
After Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 1.2 MiB |
BIN
assets/portrait-source-v2/stage-24.webp
Normal file
|
After Width: | Height: | Size: 53 KiB |
|
Before Width: | Height: | Size: 1.5 MiB |
BIN
assets/portrait-source-v2/stage-30.webp
Normal file
|
After Width: | Height: | Size: 147 KiB |
@@ -788,30 +788,30 @@ var LOCALE_NAMESPACE = "liang.skin";
|
||||
var ASSET_PREFIX = `/plugins/${PACKAGE_ID}/assets`;
|
||||
var BIND_EFFORT_KEY = "dsh-liang-intensity-skin.bind-effort";
|
||||
var PORTRAIT_ANCHORS = [
|
||||
{ level: 0, file: "stage-00.png" },
|
||||
{ level: 1, file: "level-01.png" },
|
||||
{ level: 3, file: "level-03.png" },
|
||||
{ level: 4, file: "level-04.png" },
|
||||
{ level: 6, file: "stage-06.png" },
|
||||
{ level: 7, file: "level-07.png" },
|
||||
{ level: 9, file: "level-09.png" },
|
||||
{ level: 10, file: "level-10.png" },
|
||||
{ level: 12, file: "stage-12.png" },
|
||||
{ level: 13, file: "level-13.png" },
|
||||
{ level: 14, file: "level-14.png" },
|
||||
{ level: 15, file: "bridge-15.png" },
|
||||
{ level: 16, file: "level-16.png" },
|
||||
{ level: 17, file: "level-17.png" },
|
||||
{ level: 18, file: "stage-18.png" },
|
||||
{ level: 19, file: "level-19.png" },
|
||||
{ level: 21, file: "level-21.png" },
|
||||
{ level: 22, file: "level-22.png" },
|
||||
{ level: 24, file: "stage-24.png" },
|
||||
{ level: 25, file: "level-25.png" },
|
||||
{ level: 27, file: "bridge-27.png" },
|
||||
{ level: 28, file: "level-28.png" },
|
||||
{ level: 29, file: "level-29.png" },
|
||||
{ level: 30, file: "stage-30.png" }
|
||||
{ level: 0, file: "stage-00.webp" },
|
||||
{ level: 1, file: "level-01.webp" },
|
||||
{ level: 3, file: "level-03.webp" },
|
||||
{ level: 4, file: "level-04.webp" },
|
||||
{ level: 6, file: "stage-06.webp" },
|
||||
{ level: 7, file: "level-07.webp" },
|
||||
{ level: 9, file: "level-09.webp" },
|
||||
{ level: 10, file: "level-10.webp" },
|
||||
{ level: 12, file: "stage-12.webp" },
|
||||
{ level: 13, file: "level-13.webp" },
|
||||
{ level: 14, file: "level-14.webp" },
|
||||
{ level: 15, file: "bridge-15.webp" },
|
||||
{ level: 16, file: "level-16.webp" },
|
||||
{ level: 17, file: "level-17.webp" },
|
||||
{ level: 18, file: "stage-18.webp" },
|
||||
{ level: 19, file: "level-19.webp" },
|
||||
{ level: 21, file: "level-21.webp" },
|
||||
{ level: 22, file: "level-22.webp" },
|
||||
{ level: 24, file: "stage-24.webp" },
|
||||
{ level: 25, file: "level-25.webp" },
|
||||
{ level: 27, file: "bridge-27.webp" },
|
||||
{ level: 28, file: "level-28.webp" },
|
||||
{ level: 29, file: "level-29.webp" },
|
||||
{ level: 30, file: "stage-30.webp" }
|
||||
];
|
||||
var ANCHOR_LEVELS = PORTRAIT_ANCHORS.map((anchor) => anchor.level);
|
||||
var cssVariables = [
|
||||
@@ -857,7 +857,7 @@ var SkinPresenter = class {
|
||||
this.root.setAttribute("aria-hidden", "true");
|
||||
this.poster = document.createElement("img");
|
||||
this.poster.className = "liang-skin-poster";
|
||||
this.poster.src = `${ASSET_PREFIX}/liang-poster.png`;
|
||||
this.poster.src = `${ASSET_PREFIX}/liang-poster.webp`;
|
||||
this.poster.alt = "";
|
||||
this.portrait = document.createElement("img");
|
||||
this.portrait.className = "liang-skin-sequence-frame";
|
||||
|
||||
4
package-lock.json
generated
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "dsh-client-liang-intensity-skin",
|
||||
"version": "0.1.5",
|
||||
"version": "0.1.7",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "dsh-client-liang-intensity-skin",
|
||||
"version": "0.1.5",
|
||||
"version": "0.1.7",
|
||||
"devDependencies": {
|
||||
"@types/react": "~18.3.1",
|
||||
"esbuild": "^0.25.0",
|
||||
|
||||
52
package.json
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "dsh-client-liang-intensity-skin",
|
||||
"version": "0.1.6",
|
||||
"version": "0.1.7",
|
||||
"private": true,
|
||||
"description": "滑动变祖:an opt-in adaptive reasoning slider skin for DeepSeek Harness",
|
||||
"repository": {
|
||||
@@ -17,31 +17,31 @@
|
||||
"./package.json": "./package.json"
|
||||
},
|
||||
"files": [
|
||||
"assets/liang-poster.png",
|
||||
"assets/portrait-source-v2/stage-00.png",
|
||||
"assets/portrait-source-v2/level-01.png",
|
||||
"assets/portrait-source-v2/level-03.png",
|
||||
"assets/portrait-source-v2/level-04.png",
|
||||
"assets/portrait-source-v2/stage-06.png",
|
||||
"assets/portrait-source-v2/level-07.png",
|
||||
"assets/portrait-source-v2/level-09.png",
|
||||
"assets/portrait-source-v2/level-10.png",
|
||||
"assets/portrait-source-v2/stage-12.png",
|
||||
"assets/portrait-source-v2/level-13.png",
|
||||
"assets/portrait-source-v2/level-14.png",
|
||||
"assets/portrait-source-v2/bridge-15.png",
|
||||
"assets/portrait-source-v2/level-16.png",
|
||||
"assets/portrait-source-v2/level-17.png",
|
||||
"assets/portrait-source-v2/stage-18.png",
|
||||
"assets/portrait-source-v2/level-19.png",
|
||||
"assets/portrait-source-v2/level-21.png",
|
||||
"assets/portrait-source-v2/level-22.png",
|
||||
"assets/portrait-source-v2/stage-24.png",
|
||||
"assets/portrait-source-v2/level-25.png",
|
||||
"assets/portrait-source-v2/bridge-27.png",
|
||||
"assets/portrait-source-v2/level-28.png",
|
||||
"assets/portrait-source-v2/level-29.png",
|
||||
"assets/portrait-source-v2/stage-30.png",
|
||||
"assets/liang-poster.webp",
|
||||
"assets/portrait-source-v2/stage-00.webp",
|
||||
"assets/portrait-source-v2/level-01.webp",
|
||||
"assets/portrait-source-v2/level-03.webp",
|
||||
"assets/portrait-source-v2/level-04.webp",
|
||||
"assets/portrait-source-v2/stage-06.webp",
|
||||
"assets/portrait-source-v2/level-07.webp",
|
||||
"assets/portrait-source-v2/level-09.webp",
|
||||
"assets/portrait-source-v2/level-10.webp",
|
||||
"assets/portrait-source-v2/stage-12.webp",
|
||||
"assets/portrait-source-v2/level-13.webp",
|
||||
"assets/portrait-source-v2/level-14.webp",
|
||||
"assets/portrait-source-v2/bridge-15.webp",
|
||||
"assets/portrait-source-v2/level-16.webp",
|
||||
"assets/portrait-source-v2/level-17.webp",
|
||||
"assets/portrait-source-v2/stage-18.webp",
|
||||
"assets/portrait-source-v2/level-19.webp",
|
||||
"assets/portrait-source-v2/level-21.webp",
|
||||
"assets/portrait-source-v2/level-22.webp",
|
||||
"assets/portrait-source-v2/stage-24.webp",
|
||||
"assets/portrait-source-v2/level-25.webp",
|
||||
"assets/portrait-source-v2/bridge-27.webp",
|
||||
"assets/portrait-source-v2/level-28.webp",
|
||||
"assets/portrait-source-v2/level-29.webp",
|
||||
"assets/portrait-source-v2/stage-30.webp",
|
||||
"cordis.patch.yml",
|
||||
"lib/client.js",
|
||||
"lib/client.js.map",
|
||||
|
||||
@@ -27,30 +27,30 @@ const ASSET_PREFIX = `/plugins/${PACKAGE_ID}/assets`;
|
||||
const BIND_EFFORT_KEY = "dsh-liang-intensity-skin.bind-effort";
|
||||
|
||||
const PORTRAIT_ANCHORS = [
|
||||
{ level: 0, file: "stage-00.png" },
|
||||
{ level: 1, file: "level-01.png" },
|
||||
{ level: 3, file: "level-03.png" },
|
||||
{ level: 4, file: "level-04.png" },
|
||||
{ level: 6, file: "stage-06.png" },
|
||||
{ level: 7, file: "level-07.png" },
|
||||
{ level: 9, file: "level-09.png" },
|
||||
{ level: 10, file: "level-10.png" },
|
||||
{ level: 12, file: "stage-12.png" },
|
||||
{ level: 13, file: "level-13.png" },
|
||||
{ level: 14, file: "level-14.png" },
|
||||
{ level: 15, file: "bridge-15.png" },
|
||||
{ level: 16, file: "level-16.png" },
|
||||
{ level: 17, file: "level-17.png" },
|
||||
{ level: 18, file: "stage-18.png" },
|
||||
{ level: 19, file: "level-19.png" },
|
||||
{ level: 21, file: "level-21.png" },
|
||||
{ level: 22, file: "level-22.png" },
|
||||
{ level: 24, file: "stage-24.png" },
|
||||
{ level: 25, file: "level-25.png" },
|
||||
{ level: 27, file: "bridge-27.png" },
|
||||
{ level: 28, file: "level-28.png" },
|
||||
{ level: 29, file: "level-29.png" },
|
||||
{ level: 30, file: "stage-30.png" },
|
||||
{ level: 0, file: "stage-00.webp" },
|
||||
{ level: 1, file: "level-01.webp" },
|
||||
{ level: 3, file: "level-03.webp" },
|
||||
{ level: 4, file: "level-04.webp" },
|
||||
{ level: 6, file: "stage-06.webp" },
|
||||
{ level: 7, file: "level-07.webp" },
|
||||
{ level: 9, file: "level-09.webp" },
|
||||
{ level: 10, file: "level-10.webp" },
|
||||
{ level: 12, file: "stage-12.webp" },
|
||||
{ level: 13, file: "level-13.webp" },
|
||||
{ level: 14, file: "level-14.webp" },
|
||||
{ level: 15, file: "bridge-15.webp" },
|
||||
{ level: 16, file: "level-16.webp" },
|
||||
{ level: 17, file: "level-17.webp" },
|
||||
{ level: 18, file: "stage-18.webp" },
|
||||
{ level: 19, file: "level-19.webp" },
|
||||
{ level: 21, file: "level-21.webp" },
|
||||
{ level: 22, file: "level-22.webp" },
|
||||
{ level: 24, file: "stage-24.webp" },
|
||||
{ level: 25, file: "level-25.webp" },
|
||||
{ level: 27, file: "bridge-27.webp" },
|
||||
{ level: 28, file: "level-28.webp" },
|
||||
{ level: 29, file: "level-29.webp" },
|
||||
{ level: 30, file: "stage-30.webp" },
|
||||
] as const;
|
||||
|
||||
const ANCHOR_LEVELS = PORTRAIT_ANCHORS.map((anchor) => anchor.level);
|
||||
@@ -167,7 +167,7 @@ class SkinPresenter {
|
||||
|
||||
this.poster = document.createElement("img");
|
||||
this.poster.className = "liang-skin-poster";
|
||||
this.poster.src = `${ASSET_PREFIX}/liang-poster.png`;
|
||||
this.poster.src = `${ASSET_PREFIX}/liang-poster.webp`;
|
||||
this.poster.alt = "";
|
||||
|
||||
this.portrait = document.createElement("img");
|
||||
|
||||
50
src/index.js
@@ -9,31 +9,31 @@ export const SETTINGS_NAMESPACE = "liang-intensity-skin";
|
||||
export const ASSET_PREFIX = `/plugins/${PACKAGE_ID}/assets/`;
|
||||
|
||||
const ASSET_SPECS = [
|
||||
["liang-poster.png", "image/png"],
|
||||
["portrait-source-v2/stage-00.png", "image/png"],
|
||||
["portrait-source-v2/level-01.png", "image/png"],
|
||||
["portrait-source-v2/level-03.png", "image/png"],
|
||||
["portrait-source-v2/level-04.png", "image/png"],
|
||||
["portrait-source-v2/stage-06.png", "image/png"],
|
||||
["portrait-source-v2/level-07.png", "image/png"],
|
||||
["portrait-source-v2/level-09.png", "image/png"],
|
||||
["portrait-source-v2/level-10.png", "image/png"],
|
||||
["portrait-source-v2/stage-12.png", "image/png"],
|
||||
["portrait-source-v2/level-13.png", "image/png"],
|
||||
["portrait-source-v2/level-14.png", "image/png"],
|
||||
["portrait-source-v2/bridge-15.png", "image/png"],
|
||||
["portrait-source-v2/level-16.png", "image/png"],
|
||||
["portrait-source-v2/level-17.png", "image/png"],
|
||||
["portrait-source-v2/stage-18.png", "image/png"],
|
||||
["portrait-source-v2/level-19.png", "image/png"],
|
||||
["portrait-source-v2/level-21.png", "image/png"],
|
||||
["portrait-source-v2/level-22.png", "image/png"],
|
||||
["portrait-source-v2/stage-24.png", "image/png"],
|
||||
["portrait-source-v2/level-25.png", "image/png"],
|
||||
["portrait-source-v2/bridge-27.png", "image/png"],
|
||||
["portrait-source-v2/level-28.png", "image/png"],
|
||||
["portrait-source-v2/level-29.png", "image/png"],
|
||||
["portrait-source-v2/stage-30.png", "image/png"],
|
||||
["liang-poster.webp", "image/webp"],
|
||||
["portrait-source-v2/stage-00.webp", "image/webp"],
|
||||
["portrait-source-v2/level-01.webp", "image/webp"],
|
||||
["portrait-source-v2/level-03.webp", "image/webp"],
|
||||
["portrait-source-v2/level-04.webp", "image/webp"],
|
||||
["portrait-source-v2/stage-06.webp", "image/webp"],
|
||||
["portrait-source-v2/level-07.webp", "image/webp"],
|
||||
["portrait-source-v2/level-09.webp", "image/webp"],
|
||||
["portrait-source-v2/level-10.webp", "image/webp"],
|
||||
["portrait-source-v2/stage-12.webp", "image/webp"],
|
||||
["portrait-source-v2/level-13.webp", "image/webp"],
|
||||
["portrait-source-v2/level-14.webp", "image/webp"],
|
||||
["portrait-source-v2/bridge-15.webp", "image/webp"],
|
||||
["portrait-source-v2/level-16.webp", "image/webp"],
|
||||
["portrait-source-v2/level-17.webp", "image/webp"],
|
||||
["portrait-source-v2/stage-18.webp", "image/webp"],
|
||||
["portrait-source-v2/level-19.webp", "image/webp"],
|
||||
["portrait-source-v2/level-21.webp", "image/webp"],
|
||||
["portrait-source-v2/level-22.webp", "image/webp"],
|
||||
["portrait-source-v2/stage-24.webp", "image/webp"],
|
||||
["portrait-source-v2/level-25.webp", "image/webp"],
|
||||
["portrait-source-v2/bridge-27.webp", "image/webp"],
|
||||
["portrait-source-v2/level-28.webp", "image/webp"],
|
||||
["portrait-source-v2/level-29.webp", "image/webp"],
|
||||
["portrait-source-v2/stage-30.webp", "image/webp"],
|
||||
];
|
||||
|
||||
function send(res, status, headers = {}) {
|
||||
|
||||