dsh-qq-moony 0.5.0 → 0.5.1
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/client.js +53 -49
- package/package.json +1 -1
package/client.js
CHANGED
|
@@ -100,58 +100,62 @@ window.__ModuleLoader__.load({
|
|
|
100
100
|
const [草稿, 设草稿] = React.useState(null);
|
|
101
101
|
const [脏, 设脏] = React.useState(false);
|
|
102
102
|
|
|
103
|
+
// 草稿没建起来之前,先用状态里的值兜底——省得"保存"之后闪回空白
|
|
104
|
+
const 从状态取 = () => ({
|
|
105
|
+
everyMinMin: 状态?.everyMinMin ?? 45,
|
|
106
|
+
everyMinMax: 状态?.everyMinMax ?? 90,
|
|
107
|
+
perHour: 状态?.perHour ?? 20,
|
|
108
|
+
perDay: 状态?.perDay ?? 60,
|
|
109
|
+
qzoneMinMin: 状态?.qzoneMinMin ?? 120,
|
|
110
|
+
qzoneMinMax: 状态?.qzoneMinMax ?? 240,
|
|
111
|
+
qzonePrompt: 状态?.qzonePrompt ?? '',
|
|
112
|
+
groupWhitelist: (状态?.groupWhitelist ?? []).join(' '),
|
|
113
|
+
groupContextSize: 状态?.groupContextSize ?? 30,
|
|
114
|
+
groupEveryMinMin: 状态?.groupEveryMinMin ?? 8,
|
|
115
|
+
groupEveryMinMax: 状态?.groupEveryMinMax ?? 20,
|
|
116
|
+
groupActiveWindowMin: 状态?.groupActiveWindowMin ?? 5,
|
|
117
|
+
groupCooldownMin: 状态?.groupCooldownMin ?? 10,
|
|
118
|
+
groupPerDay: 状态?.groupPerDay ?? 20,
|
|
119
|
+
});
|
|
120
|
+
|
|
103
121
|
React.useEffect(() => {
|
|
104
122
|
if (状态 && 草稿 === null) {
|
|
105
|
-
设草稿(
|
|
106
|
-
everyMinMin: 状态.everyMinMin ?? 45,
|
|
107
|
-
everyMinMax: 状态.everyMinMax ?? 90,
|
|
108
|
-
perHour: 状态.perHour ?? 20,
|
|
109
|
-
perDay: 状态.perDay ?? 60,
|
|
110
|
-
qzoneMinMin: 状态.qzoneMinMin ?? 120,
|
|
111
|
-
qzoneMinMax: 状态.qzoneMinMax ?? 240,
|
|
112
|
-
qzonePrompt: 状态.qzonePrompt ?? '',
|
|
113
|
-
groupWhitelist: (状态.groupWhitelist ?? []).join(' '),
|
|
114
|
-
groupContextSize: 状态.groupContextSize ?? 30,
|
|
115
|
-
groupEveryMinMin: 状态.groupEveryMinMin ?? 8,
|
|
116
|
-
groupEveryMinMax: 状态.groupEveryMinMax ?? 20,
|
|
117
|
-
groupActiveWindowMin: 状态.groupActiveWindowMin ?? 5,
|
|
118
|
-
groupCooldownMin: 状态.groupCooldownMin ?? 10,
|
|
119
|
-
groupPerDay: 状态.groupPerDay ?? 20,
|
|
120
|
-
});
|
|
123
|
+
设草稿(从状态取());
|
|
121
124
|
}
|
|
122
125
|
}, [状态, 草稿]);
|
|
123
126
|
|
|
124
|
-
const 数字 = (键,
|
|
125
|
-
设草稿((旧) => ({ ...(旧 ??
|
|
127
|
+
const 数字 = (键, 新值) => {
|
|
128
|
+
设草稿((旧) => ({ ...(旧 ?? 从状态取()), [键]: 新值 }));
|
|
126
129
|
设脏(true);
|
|
127
130
|
};
|
|
128
131
|
|
|
129
132
|
const 保存 = async () => {
|
|
130
|
-
|
|
133
|
+
const 值 = 草稿 ?? 从状态取();
|
|
131
134
|
await 改({
|
|
132
|
-
everyMinMin: Number(
|
|
133
|
-
everyMinMax: Number(
|
|
134
|
-
perHour: Number(
|
|
135
|
-
perDay: Number(
|
|
136
|
-
qzoneMinMin: Number(
|
|
137
|
-
qzoneMinMax: Number(
|
|
138
|
-
qzonePrompt: String(
|
|
139
|
-
groupWhitelist: String(
|
|
140
|
-
groupContextSize: Number(
|
|
141
|
-
groupEveryMinMin: Number(
|
|
142
|
-
groupEveryMinMax: Number(
|
|
143
|
-
groupActiveWindowMin: Number(
|
|
144
|
-
groupCooldownMin: Number(
|
|
145
|
-
groupPerDay: Number(
|
|
135
|
+
everyMinMin: Number(值.everyMinMin),
|
|
136
|
+
everyMinMax: Number(值.everyMinMax),
|
|
137
|
+
perHour: Number(值.perHour),
|
|
138
|
+
perDay: Number(值.perDay),
|
|
139
|
+
qzoneMinMin: Number(值.qzoneMinMin),
|
|
140
|
+
qzoneMinMax: Number(值.qzoneMinMax),
|
|
141
|
+
qzonePrompt: String(值.qzonePrompt ?? ''),
|
|
142
|
+
groupWhitelist: String(值.groupWhitelist ?? ''),
|
|
143
|
+
groupContextSize: Number(值.groupContextSize),
|
|
144
|
+
groupEveryMinMin: Number(值.groupEveryMinMin),
|
|
145
|
+
groupEveryMinMax: Number(值.groupEveryMinMax),
|
|
146
|
+
groupActiveWindowMin: Number(值.groupActiveWindowMin),
|
|
147
|
+
groupCooldownMin: Number(值.groupCooldownMin),
|
|
148
|
+
groupPerDay: Number(值.groupPerDay),
|
|
146
149
|
});
|
|
147
150
|
设脏(false);
|
|
148
151
|
设草稿(null);
|
|
149
152
|
};
|
|
150
153
|
|
|
151
|
-
if (状态 === null
|
|
154
|
+
if (状态 === null) {
|
|
152
155
|
return h('div', { style: { padding: '8px 0', opacity: 0.6 } }, 错 || '读状态中…');
|
|
153
156
|
}
|
|
154
157
|
|
|
158
|
+
const 值 = 草稿 ?? 从状态取();
|
|
155
159
|
const 缺口 = [];
|
|
156
160
|
if (!状态.qqnt) 缺口.push('没找到 QQ NT —— 去 im.qq.com 装新版(9.9.x)。老版 9.7 注不进去,这是死条件。');
|
|
157
161
|
if (!状态.napcat) 缺口.push('没找到 NapCat —— 去 github.com/NapNeko/NapCatQQ 下 Shell 版,解压后把 napCatDir 指过去。');
|
|
@@ -204,7 +208,7 @@ window.__ModuleLoader__.load({
|
|
|
204
208
|
'div',
|
|
205
209
|
null,
|
|
206
210
|
h('div', { style: 标题 }, '主动说话'),
|
|
207
|
-
h('div', { style: 说明 }, `开着它才会自己找你,大约每 ${
|
|
211
|
+
h('div', { style: 说明 }, `开着它才会自己找你,大约每 ${值.everyMinMin}–${值.everyMinMax} 分钟有机会开口一次;关掉就只回不发`),
|
|
208
212
|
),
|
|
209
213
|
h(开关, { 开: 状态.proactive, 点: () => 改({ proactive: !状态.proactive }) }),
|
|
210
214
|
),
|
|
@@ -234,7 +238,7 @@ window.__ModuleLoader__.load({
|
|
|
234
238
|
h('input', {
|
|
235
239
|
type: 'number',
|
|
236
240
|
min: 5,
|
|
237
|
-
value:
|
|
241
|
+
value: 值.everyMinMin,
|
|
238
242
|
onChange: (e) => 数字('everyMinMin', Number(e.target.value)),
|
|
239
243
|
style: { ...输入框, width: '78px' },
|
|
240
244
|
}),
|
|
@@ -242,7 +246,7 @@ window.__ModuleLoader__.load({
|
|
|
242
246
|
h('input', {
|
|
243
247
|
type: 'number',
|
|
244
248
|
min: 5,
|
|
245
|
-
value:
|
|
249
|
+
value: 值.everyMinMax,
|
|
246
250
|
onChange: (e) => 数字('everyMinMax', Number(e.target.value)),
|
|
247
251
|
style: { ...输入框, width: '78px' },
|
|
248
252
|
}),
|
|
@@ -261,7 +265,7 @@ window.__ModuleLoader__.load({
|
|
|
261
265
|
type: 'number',
|
|
262
266
|
min: 1,
|
|
263
267
|
max: 200,
|
|
264
|
-
value:
|
|
268
|
+
value: 值.perHour,
|
|
265
269
|
onChange: (e) => 数字('perHour', Number(e.target.value)),
|
|
266
270
|
style: 输入框,
|
|
267
271
|
}),
|
|
@@ -279,7 +283,7 @@ window.__ModuleLoader__.load({
|
|
|
279
283
|
type: 'number',
|
|
280
284
|
min: 1,
|
|
281
285
|
max: 1000,
|
|
282
|
-
value:
|
|
286
|
+
value: 值.perDay,
|
|
283
287
|
onChange: (e) => 数字('perDay', Number(e.target.value)),
|
|
284
288
|
style: 输入框,
|
|
285
289
|
}),
|
|
@@ -305,7 +309,7 @@ window.__ModuleLoader__.load({
|
|
|
305
309
|
),
|
|
306
310
|
h('input', {
|
|
307
311
|
type: 'text',
|
|
308
|
-
value:
|
|
312
|
+
value: 值.groupWhitelist,
|
|
309
313
|
placeholder: '群号白名单,空格或逗号分隔;空着 = 群聊不生效',
|
|
310
314
|
onChange: (e) => 数字('groupWhitelist', e.target.value),
|
|
311
315
|
style: { ...输入框, width: '100%', boxSizing: 'border-box' },
|
|
@@ -318,7 +322,7 @@ window.__ModuleLoader__.load({
|
|
|
318
322
|
type: 'number',
|
|
319
323
|
min: 5,
|
|
320
324
|
max: 100,
|
|
321
|
-
value:
|
|
325
|
+
value: 值.groupContextSize,
|
|
322
326
|
onChange: (e) => 数字('groupContextSize', Number(e.target.value)),
|
|
323
327
|
style: { ...输入框, width: '70px' },
|
|
324
328
|
}),
|
|
@@ -326,7 +330,7 @@ window.__ModuleLoader__.load({
|
|
|
326
330
|
h('input', {
|
|
327
331
|
type: 'number',
|
|
328
332
|
min: 2,
|
|
329
|
-
value:
|
|
333
|
+
value: 值.groupEveryMinMin,
|
|
330
334
|
onChange: (e) => 数字('groupEveryMinMin', Number(e.target.value)),
|
|
331
335
|
style: { ...输入框, width: '70px' },
|
|
332
336
|
}),
|
|
@@ -334,7 +338,7 @@ window.__ModuleLoader__.load({
|
|
|
334
338
|
h('input', {
|
|
335
339
|
type: 'number',
|
|
336
340
|
min: 2,
|
|
337
|
-
value:
|
|
341
|
+
value: 值.groupEveryMinMax,
|
|
338
342
|
onChange: (e) => 数字('groupEveryMinMax', Number(e.target.value)),
|
|
339
343
|
style: { ...输入框, width: '70px' },
|
|
340
344
|
}),
|
|
@@ -342,7 +346,7 @@ window.__ModuleLoader__.load({
|
|
|
342
346
|
h('input', {
|
|
343
347
|
type: 'number',
|
|
344
348
|
min: 1,
|
|
345
|
-
value:
|
|
349
|
+
value: 值.groupActiveWindowMin,
|
|
346
350
|
onChange: (e) => 数字('groupActiveWindowMin', Number(e.target.value)),
|
|
347
351
|
style: { ...输入框, width: '70px' },
|
|
348
352
|
}),
|
|
@@ -355,7 +359,7 @@ window.__ModuleLoader__.load({
|
|
|
355
359
|
h('input', {
|
|
356
360
|
type: 'number',
|
|
357
361
|
min: 1,
|
|
358
|
-
value:
|
|
362
|
+
value: 值.groupCooldownMin,
|
|
359
363
|
onChange: (e) => 数字('groupCooldownMin', Number(e.target.value)),
|
|
360
364
|
style: { ...输入框, width: '70px' },
|
|
361
365
|
}),
|
|
@@ -363,7 +367,7 @@ window.__ModuleLoader__.load({
|
|
|
363
367
|
h('input', {
|
|
364
368
|
type: 'number',
|
|
365
369
|
min: 1,
|
|
366
|
-
value:
|
|
370
|
+
value: 值.groupPerDay,
|
|
367
371
|
onChange: (e) => 数字('groupPerDay', Number(e.target.value)),
|
|
368
372
|
style: { ...输入框, width: '70px' },
|
|
369
373
|
}),
|
|
@@ -389,7 +393,7 @@ window.__ModuleLoader__.load({
|
|
|
389
393
|
),
|
|
390
394
|
h('textarea', {
|
|
391
395
|
rows: 3,
|
|
392
|
-
value:
|
|
396
|
+
value: 值.qzonePrompt,
|
|
393
397
|
placeholder: '例:一周发一次,写点最近的感受,两三句,不要提具体的人和地点',
|
|
394
398
|
onChange: (e) => 数字('qzonePrompt', e.target.value),
|
|
395
399
|
style: {
|
|
@@ -413,7 +417,7 @@ window.__ModuleLoader__.load({
|
|
|
413
417
|
h('input', {
|
|
414
418
|
type: 'number',
|
|
415
419
|
min: 10,
|
|
416
|
-
value:
|
|
420
|
+
value: 值.qzoneMinMin,
|
|
417
421
|
onChange: (e) => 数字('qzoneMinMin', Number(e.target.value)),
|
|
418
422
|
style: { ...输入框, width: '78px' },
|
|
419
423
|
}),
|
|
@@ -421,7 +425,7 @@ window.__ModuleLoader__.load({
|
|
|
421
425
|
h('input', {
|
|
422
426
|
type: 'number',
|
|
423
427
|
min: 10,
|
|
424
|
-
value:
|
|
428
|
+
value: 值.qzoneMinMax,
|
|
425
429
|
onChange: (e) => 数字('qzoneMinMax', Number(e.target.value)),
|
|
426
430
|
style: { ...输入框, width: '78px' },
|
|
427
431
|
}),
|