dsh-feiyu-mood 0.8.1 → 0.8.2
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/CHANGELOG.md +15 -0
- package/README.md +7 -6
- package/assets/widget.js +52 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,18 @@
|
|
|
1
|
+
## 0.8.2 — 2026-10-30
|
|
2
|
+
|
|
3
|
+
**挂饰拖过之后,刷新会回到默认角落**
|
|
4
|
+
|
|
5
|
+
- 🐞 挂饰能拖,但位置只在本次页面里有效:按 F5 刷新又回到 CSS 里那个默认角落。
|
|
6
|
+
「收起/展开」和「大小」都记在浏览器本地了,唯独位置没存 —— 拖过的人每次刷新都得再拖一遍。
|
|
7
|
+
- ✅ 拖动结束把左上角坐标存进 `localStorage`,启动时读回来。
|
|
8
|
+
- 只存 `left/top` 一套坐标:挂饰能拖到屏幕中间,这时 `right/bottom` 已经没有意义。
|
|
9
|
+
- 读回来先**夹进当前窗口**:窗口可能变小、屏幕可能换;而且收起态是 64px 小鲸鱼、
|
|
10
|
+
大图还能放到 1.6 倍(288px),同一个坐标在不同形态下合法范围不一样。
|
|
11
|
+
- 改形态、拉大小滑杆、窗口 resize 时都重新夹一次并落盘。
|
|
12
|
+
- **没拖过的人完全不受影响**:不写 inline 的 `left/top`,CSS 的默认角落继续生效。
|
|
13
|
+
- 存档坏了(不是 JSON、字段不是数字、NaN)一律当没存过,回默认角落,不让挂饰消失。
|
|
14
|
+
- 自测:`node --check` 通过(这个改动只在浏览器端,没有 Node 侧测试)。
|
|
15
|
+
|
|
1
16
|
## 0.8.1 — 2026-10-30
|
|
2
17
|
|
|
3
18
|
**「未分组」的会话选不到;子代理会话混进了下拉**
|
package/README.md
CHANGED
|
@@ -93,22 +93,23 @@
|
|
|
93
93
|
在 DSH 里:**设置 → 插件 → 安装**,填下面这一行;或者命令行:
|
|
94
94
|
|
|
95
95
|
```
|
|
96
|
-
|
|
96
|
+
dsh-feiyu-mood
|
|
97
97
|
```
|
|
98
98
|
|
|
99
99
|
```bash
|
|
100
|
-
dsh plugin --profile desktop add
|
|
100
|
+
dsh plugin --profile desktop add dsh-feiyu-mood
|
|
101
101
|
```
|
|
102
102
|
|
|
103
|
-
>
|
|
104
|
-
|
|
103
|
+
> 也可以在 npm 上直接看到这个包(含历史版本):<https://www.npmjs.com/package/dsh-feiyu-mood>
|
|
104
|
+
|
|
105
|
+
> 上面那条要是碰到网络问题(npm 抽风、或者想固定某一次的代码快照),可以改用 tarball 直链,不用 git:
|
|
105
106
|
|
|
106
107
|
```bash
|
|
107
108
|
dsh plugin --profile desktop add https://codeload.github.com/Yuuyuko-uu/dsh-feiyu-mood/tar.gz/refs/heads/main
|
|
108
109
|
```
|
|
109
110
|
|
|
110
111
|
|
|
111
|
-
>
|
|
112
|
+
> 也发布到 npm 了:`dsh plugin add dsh-feiyu-mood`。
|
|
112
113
|
> ⭐ 最省事的一条:把仓库链接贴给你自己的 DSH,说「**帮我装这个插件**」。
|
|
113
114
|
|
|
114
115
|
装完 **必须重启一次 DSH**,然后进 **设置 → 鱼的心情**。
|
|
@@ -159,7 +160,7 @@ $p = "把上面 BOM=True 那一行的路径粘到这里"
|
|
|
159
160
|
|
|
160
161
|
```bash
|
|
161
162
|
dsh plugin --profile desktop remove dsh-feiyu-mood
|
|
162
|
-
dsh plugin --profile desktop add
|
|
163
|
+
dsh plugin --profile desktop add dsh-feiyu-mood
|
|
163
164
|
```
|
|
164
165
|
|
|
165
166
|
> ⚠️ **必须先卸再装**:直接装可能拿到缓存里的旧副本,装完还是老的。
|
package/assets/widget.js
CHANGED
|
@@ -322,7 +322,10 @@
|
|
|
322
322
|
document.removeEventListener('pointerup', onUp)
|
|
323
323
|
// ⚠ 点外面那个东西**只开关面板**,不管它是大肥鱼还是小圆 —— 形态由面板里的钮管
|
|
324
324
|
if (!moved) toggle()
|
|
325
|
-
else
|
|
325
|
+
else {
|
|
326
|
+
存位置()
|
|
327
|
+
if (open) positionPanel()
|
|
328
|
+
}
|
|
326
329
|
}
|
|
327
330
|
document.addEventListener('pointermove', onMove)
|
|
328
331
|
document.addEventListener('pointerup', onUp)
|
|
@@ -383,11 +386,58 @@
|
|
|
383
386
|
widget.style.top = Math.min(maxY, Math.max(0, rect.top)) + 'px'
|
|
384
387
|
widget.style.right = 'auto'
|
|
385
388
|
widget.style.bottom = 'auto'
|
|
389
|
+
存位置()
|
|
386
390
|
}
|
|
387
391
|
}
|
|
388
392
|
|
|
393
|
+
// ⭐ 0.8.2:拖过的位置要记住。
|
|
394
|
+
// · 只存**左上角坐标**(left/top):挂饰能拖到屏幕中间,这时候 right/bottom 已经没意义了,
|
|
395
|
+
// 统一成一套坐标,逻辑只剩一条。
|
|
396
|
+
// · 读回来先**夹进当前窗口**:窗口可能变小、屏幕可能换;而且收起态是 64px、
|
|
397
|
+
// 大图还能放到 1.6 倍(288px),同一个坐标在不同形态下合法范围不一样。
|
|
398
|
+
// 所以形态/尺寸一变就重新夹一次(下面 保持屏内() 已经在做)。
|
|
399
|
+
// · 没拖过的人**完全不写 inline 的 left/top**,CSS 的默认角落继续生效。
|
|
400
|
+
var 存位置计时 = 0
|
|
401
|
+
function 存位置() {
|
|
402
|
+
if (!dragged) return
|
|
403
|
+
// 拖动时每帧都写 localStorage 太浪费,攒到停手再写
|
|
404
|
+
if (存位置计时) return
|
|
405
|
+
存位置计时 = setTimeout(function () {
|
|
406
|
+
存位置计时 = 0
|
|
407
|
+
try {
|
|
408
|
+
var r = widget.getBoundingClientRect()
|
|
409
|
+
localStorage.setItem('fm-widget-pos', JSON.stringify({
|
|
410
|
+
x: Math.round(r.left), y: Math.round(r.top),
|
|
411
|
+
}))
|
|
412
|
+
} catch (e) {}
|
|
413
|
+
}, 200)
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
function 读位置() {
|
|
417
|
+
var v = null
|
|
418
|
+
try { v = JSON.parse(localStorage.getItem('fm-widget-pos') || 'null') } catch (e) { v = null }
|
|
419
|
+
if (!v || typeof v !== 'object') return null
|
|
420
|
+
var x = Number(v.x), y = Number(v.y)
|
|
421
|
+
if (!isFinite(x) || !isFinite(y)) return null // 脏数据当没存过,别让挂饰消失
|
|
422
|
+
return { x: x, y: y }
|
|
423
|
+
}
|
|
424
|
+
|
|
425
|
+
function 恢复位置() {
|
|
426
|
+
var p = 读位置()
|
|
427
|
+
if (!p) return
|
|
428
|
+
dragged = true
|
|
429
|
+
var maxX = Math.max(0, window.innerWidth - widget.offsetWidth)
|
|
430
|
+
var maxY = Math.max(0, window.innerHeight - widget.offsetHeight)
|
|
431
|
+
widget.style.left = Math.min(maxX, Math.max(0, p.x)) + 'px'
|
|
432
|
+
widget.style.top = Math.min(maxY, Math.max(0, p.y)) + 'px'
|
|
433
|
+
widget.style.right = 'auto'
|
|
434
|
+
widget.style.bottom = 'auto'
|
|
435
|
+
}
|
|
436
|
+
|
|
389
437
|
document.body.appendChild(widget)
|
|
438
|
+
恢复位置() // ⭐ 0.8.2:上次拖到哪儿就放哪儿(没拖过的照旧走 CSS 的默认角落)
|
|
390
439
|
applyCollapsed()
|
|
440
|
+
保持屏内() // 形态定下来之后再夹一次(收起态 64px、大图能到 288px,合法范围不一样)
|
|
391
441
|
load()
|
|
392
442
|
|
|
393
443
|
// ⭐ 0.7.6(她报的「收起态那个数字不刷新,得点一下才变」):
|
|
@@ -410,6 +460,7 @@
|
|
|
410
460
|
widget.style.top = y + 'px'
|
|
411
461
|
widget.style.right = 'auto'
|
|
412
462
|
widget.style.bottom = 'auto'
|
|
463
|
+
存位置()
|
|
413
464
|
if (open) positionPanel()
|
|
414
465
|
})
|
|
415
466
|
})()
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-feiyu-mood",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.2",
|
|
4
4
|
"description": "给 AI 伙伴一个会自己判断、你看得见的心情:每轮聊完自动判断涨跌,右下角挂饰点开看数值 + 情绪 + 时间线;心情怎么告诉她(不告诉 / 只说心情 / 说她刚才那件事)和可信度门槛都能在设置里改。",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Yuuyuko-uu (https://github.com/Yuuyuko-uu)",
|