@azimiao/koishi-plugin-cafe-bot-exp 0.0.11 → 0.0.13
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/lib/draw/config.d.ts +1 -0
- package/lib/index.js +48 -29
- package/package.json +1 -1
package/lib/draw/config.d.ts
CHANGED
package/lib/index.js
CHANGED
|
@@ -37,6 +37,9 @@ __export(src_exports, {
|
|
|
37
37
|
});
|
|
38
38
|
module.exports = __toCommonJS(src_exports);
|
|
39
39
|
|
|
40
|
+
// package.json
|
|
41
|
+
var version = "0.0.13";
|
|
42
|
+
|
|
40
43
|
// src/draw/index.ts
|
|
41
44
|
var draw_exports = {};
|
|
42
45
|
__export(draw_exports, {
|
|
@@ -260,6 +263,7 @@ var CafeBotDrawConfig = import_koishi.Schema.object({
|
|
|
260
263
|
forceUpdateDataWhenLoad: import_koishi.Schema.boolean().description("插件加载时强制刷新数据").default(false),
|
|
261
264
|
ImageServer: import_koishi.Schema.string().description("图像生成服务器").default("http://127.0.0.1:3000/screenshot"),
|
|
262
265
|
ImageServerAuth: import_koishi.Schema.string().description("图像生成服务器密码").default(""),
|
|
266
|
+
ImageNoCache: import_koishi.Schema.boolean().description("每次都重新生成图片(一般仅用于Debug)").default(false),
|
|
263
267
|
MinCount: import_koishi.Schema.number().description("最小抽取次数").default(0),
|
|
264
268
|
MaxCount: import_koishi.Schema.number().description("最大抽取次数").default(8),
|
|
265
269
|
Star1Name: import_koishi.Schema.string().description("1星名称").default("N"),
|
|
@@ -307,11 +311,12 @@ var downloadTool_default = downloadFileIfNotExist;
|
|
|
307
311
|
|
|
308
312
|
// src/draw/index.ts
|
|
309
313
|
var name = "cafe-bot-exp.draw";
|
|
310
|
-
var inject = ["http"];
|
|
314
|
+
var inject = ["http", "logger"];
|
|
311
315
|
var Config = CafeBotDrawConfig;
|
|
312
316
|
var animals = ["瑟蕾奴", "可鲁贝洛斯", "捷欧", "基库", "蔡特", "柯贝", "古利亚诺斯", "小星", "影良", "fio", "xeros"];
|
|
313
317
|
var starEnum = [5, 4, 3, 2, 1];
|
|
314
318
|
var cafebotCardData = [];
|
|
319
|
+
var logger = null;
|
|
315
320
|
function shuffleWithCustomRandom(array, rand) {
|
|
316
321
|
for (let i = array.length - 1; i > 0; i--) {
|
|
317
322
|
const a = rand();
|
|
@@ -395,15 +400,17 @@ async function getCards(seed, ctx, config) {
|
|
|
395
400
|
}
|
|
396
401
|
__name(getCards, "getCards");
|
|
397
402
|
async function apply(ctx, config) {
|
|
403
|
+
logger = ctx.logger(name);
|
|
398
404
|
await downloadCardDataIfNotExist(ctx, config, config.forceUpdateDataWhenLoad);
|
|
405
|
+
ctx.command("轨迹抽卡", `抽取你的每日轨迹人物卡吧~`);
|
|
399
406
|
ctx.command("轨迹抽卡/给我抽", "进行每日抽卡").action(async (argv, _) => {
|
|
400
407
|
let seed = DailySeededName(argv.session.userId);
|
|
401
|
-
|
|
408
|
+
logger?.info(`getcard for ${seed}`);
|
|
402
409
|
let randomer = new PseudoRandom_default(seed);
|
|
403
410
|
let result = await getCards(seed, ctx, config);
|
|
404
411
|
if (result.length <= 0) {
|
|
405
412
|
let msg2 = "你并不是本群限定非酋, 只不过抽到的卡牌被" + animals[randomer.nextInt(0, animals.length - 1)] + "叼走了~\n";
|
|
406
|
-
|
|
413
|
+
logger?.info(`getcard for ${seed} is empty,send it`);
|
|
407
414
|
await argv.session?.send(`${At(argv)}${msg2}`);
|
|
408
415
|
return;
|
|
409
416
|
}
|
|
@@ -427,36 +434,37 @@ async function apply(ctx, config) {
|
|
|
427
434
|
}
|
|
428
435
|
});
|
|
429
436
|
await argv.session?.send(msg);
|
|
430
|
-
|
|
437
|
+
logger?.info(`getcard for ${seed} send ok`);
|
|
431
438
|
return;
|
|
432
439
|
});
|
|
433
440
|
const requestWebCache = {};
|
|
434
441
|
ctx.command("轨迹抽卡/给我抽图", "进行抽卡并显示卡牌图片").action(async (argv, _) => {
|
|
435
442
|
let seed = DailySeededName(argv.session.userId);
|
|
436
|
-
|
|
443
|
+
logger?.info(`getcard img for ${seed}`);
|
|
437
444
|
let randomer = new PseudoRandom_default(seed);
|
|
438
445
|
let result = await getCards(seed, ctx, config);
|
|
439
446
|
if (result.length <= 0) {
|
|
440
447
|
let msg = "你并不是本群限定非酋, 只不过抽到的卡牌被" + animals[randomer.nextInt(0, animals.length - 1)] + "叼走了~\n";
|
|
441
448
|
await argv.session?.send(`${At(argv)} ${msg}`);
|
|
442
|
-
|
|
449
|
+
logger?.info(`getcard img for ${seed} is empty`);
|
|
443
450
|
return;
|
|
444
451
|
}
|
|
445
452
|
if (requestWebCache[seed]) {
|
|
446
453
|
await argv.session?.send(`${At(argv)} 请等待上次抽取完成哦~`);
|
|
447
|
-
|
|
454
|
+
logger?.info(`getcard img for ${seed}, another request is processing, send please wait`);
|
|
448
455
|
return;
|
|
449
456
|
}
|
|
450
457
|
requestWebCache[seed] = "waiting";
|
|
451
458
|
await argv.session?.sendQueued(`${At(argv)} 抽取中,请稍候...`);
|
|
452
|
-
|
|
459
|
+
logger?.info(`getcard img for ${seed} is processing, send please wait`);
|
|
453
460
|
var a = html_default(result);
|
|
454
461
|
await ctx.http.post(
|
|
455
462
|
config.ImageServer,
|
|
456
463
|
{
|
|
457
464
|
html: a,
|
|
458
465
|
auth: config.ImageServerAuth,
|
|
459
|
-
filename: seed
|
|
466
|
+
filename: seed,
|
|
467
|
+
nocache: config.ImageNoCache
|
|
460
468
|
},
|
|
461
469
|
{
|
|
462
470
|
responseType: "json"
|
|
@@ -465,13 +473,13 @@ async function apply(ctx, config) {
|
|
|
465
473
|
delete requestWebCache[seed];
|
|
466
474
|
await argv.session?.sendQueued(`${At(argv)}<img src="${res.data}"/>`);
|
|
467
475
|
await argv.session?.cancelQueued();
|
|
468
|
-
|
|
476
|
+
logger?.info(`getcard img for ${seed} send ok~`);
|
|
469
477
|
}).catch(async (e) => {
|
|
470
|
-
|
|
478
|
+
logger?.error(`getcard img for ${seed} is failed, send create failed`);
|
|
479
|
+
logger?.error(e);
|
|
471
480
|
delete requestWebCache[seed];
|
|
472
|
-
await argv.session?.sendQueued(`${At(argv)}
|
|
481
|
+
await argv.session?.sendQueued(`${At(argv)}超级计算机『卡佩尔』发生核心故障😵(A...D...)`);
|
|
473
482
|
await argv.session?.cancelQueued();
|
|
474
|
-
console.log(`getcard img for ${seed} is failed, send create failed`);
|
|
475
483
|
});
|
|
476
484
|
return;
|
|
477
485
|
});
|
|
@@ -591,7 +599,7 @@ var CafeTimeTools_default = CafeTimeTools;
|
|
|
591
599
|
|
|
592
600
|
// src/quiz/index.ts
|
|
593
601
|
var name3 = "cafe-bot-exp.quiz";
|
|
594
|
-
var inject2 = ["http", "cache"];
|
|
602
|
+
var inject2 = ["http", "cache", "logger"];
|
|
595
603
|
var Config3 = CafeBotQuizConfig;
|
|
596
604
|
var validOptions = {
|
|
597
605
|
"A": 0,
|
|
@@ -607,6 +615,7 @@ var validOptions = {
|
|
|
607
615
|
"3": 2,
|
|
608
616
|
"4": 3
|
|
609
617
|
};
|
|
618
|
+
var logger2 = null;
|
|
610
619
|
var quizDataIds = [];
|
|
611
620
|
var quizDataSet = {};
|
|
612
621
|
async function downloadQuitDataIfNotExist(ctx, config, forceUpdate) {
|
|
@@ -626,6 +635,8 @@ async function downloadQuitDataIfNotExist(ctx, config, forceUpdate) {
|
|
|
626
635
|
quizDataSet[element.question.id] = element;
|
|
627
636
|
});
|
|
628
637
|
} catch (error) {
|
|
638
|
+
logger2?.error("get quiz data failed");
|
|
639
|
+
logger2?.error(error);
|
|
629
640
|
throw new Error("quiz read error");
|
|
630
641
|
}
|
|
631
642
|
return;
|
|
@@ -642,26 +653,27 @@ async function answerHandler(ctx, config, argv, answer) {
|
|
|
642
653
|
if (answer in validOptions) {
|
|
643
654
|
selectNumber = validOptions[answer];
|
|
644
655
|
} else {
|
|
645
|
-
await argv.session?.send(`${At(argv)}
|
|
656
|
+
await argv.session?.send(`${At(argv)}输入选项无效哦,请重新输入~`);
|
|
646
657
|
return;
|
|
647
658
|
}
|
|
648
659
|
await ctx.cache.delete("question", argv.session.userId);
|
|
649
660
|
if (quizDataIds == null || quizDataIds.length <= 0) {
|
|
650
|
-
await argv.session?.send(`${At(argv)}
|
|
661
|
+
await argv.session?.send(`${At(argv)}超级计算机『卡佩尔』发生核心故障😵(导力网络异常波动)`);
|
|
651
662
|
return;
|
|
652
663
|
}
|
|
653
664
|
var qItem = quizDataSet[lastQuestion.question];
|
|
654
|
-
|
|
665
|
+
logger2?.info(`${argv.session.userId} try answer quiz(id:${lastQuestion.question}): right answer:${lastQuestion.answer}, input answer:${selectNumber}`);
|
|
655
666
|
if (qItem && lastQuestion.answer == selectNumber) {
|
|
656
|
-
await argv.session?.send(`${At(argv)}回答正确😊${qItem.explain.length > 0 ? "
|
|
667
|
+
await argv.session?.send(`${At(argv)}回答正确😊${qItem.explain.length > 0 ? "," + qItem.explain : ""}`);
|
|
657
668
|
return;
|
|
658
669
|
} else {
|
|
659
|
-
await argv.session?.send(`${At(argv)}回答错误😟${qItem.explain2.length > 0 ? "
|
|
670
|
+
await argv.session?.send(`${At(argv)}回答错误😟${qItem.explain2.length > 0 ? "," + qItem.explain2 : ""}`);
|
|
660
671
|
return;
|
|
661
672
|
}
|
|
662
673
|
}
|
|
663
674
|
__name(answerHandler, "answerHandler");
|
|
664
675
|
async function apply3(ctx, config) {
|
|
676
|
+
logger2 = ctx.logger(name3);
|
|
665
677
|
await downloadQuitDataIfNotExist(ctx, config, config.forceUpdateWhenLoad);
|
|
666
678
|
ctx.command("轨迹答题/出题").action(async (argv, _) => {
|
|
667
679
|
await downloadQuitDataIfNotExist(ctx, config, false);
|
|
@@ -672,7 +684,7 @@ async function apply3(ctx, config) {
|
|
|
672
684
|
}
|
|
673
685
|
var dailyNameKey = DailySeededName(argv.session.userId);
|
|
674
686
|
if (quizDataIds == null || quizDataIds.length <= 0) {
|
|
675
|
-
await argv.session?.send(`${At(argv)}
|
|
687
|
+
await argv.session?.send(`${At(argv)}超级计算机『卡佩尔』发生核心故障😵(导力网络异常波动)`);
|
|
676
688
|
return;
|
|
677
689
|
}
|
|
678
690
|
var todayCount = await ctx.cache.get("todayCache", dailyNameKey);
|
|
@@ -685,12 +697,13 @@ async function apply3(ctx, config) {
|
|
|
685
697
|
}
|
|
686
698
|
todayCount++;
|
|
687
699
|
var cacheTimeoutTime = CafeTimeTools_default.getRemainingSecondsToBeijingMidnight();
|
|
700
|
+
logger2?.debug(`try set cache ${dailyNameKey}, ${todayCount}`);
|
|
688
701
|
await ctx.cache.set("todayCache", dailyNameKey, todayCount, cacheTimeoutTime * 1e3);
|
|
689
702
|
var randomId = import_koishi6.Random.pick(quizDataIds);
|
|
690
703
|
var qItem = quizDataSet[randomId];
|
|
691
704
|
var qOptions = import_koishi6.Random.shuffle(qItem.options);
|
|
692
705
|
var answerIndex = -1;
|
|
693
|
-
|
|
706
|
+
logger2?.info(`${argv.session.userId} get a new quiz(id:${randomId})`);
|
|
694
707
|
for (var i = 0; i < qOptions.length; i++) {
|
|
695
708
|
if (qOptions[i].oid === qItem.a) {
|
|
696
709
|
answerIndex = i;
|
|
@@ -706,27 +719,28 @@ D. ${qOptions[3].s}`;
|
|
|
706
719
|
await argv.session?.send(messageQuestion);
|
|
707
720
|
return;
|
|
708
721
|
});
|
|
709
|
-
ctx.command("
|
|
722
|
+
ctx.command("轨迹答题").usage("通过趣味答题看看你是不是合格的桂皮吧~");
|
|
723
|
+
ctx.command("轨迹答题/回答 <answer:text>", `使用"回答+空格+选项"回答问题哦,如"回答 A"`).action(async (argv, answer) => {
|
|
710
724
|
await answerHandler(ctx, config, argv, answer);
|
|
711
725
|
return;
|
|
712
726
|
});
|
|
713
|
-
ctx.command("轨迹答题/A", "选择 A 选项").action(async (argv, _) => {
|
|
727
|
+
ctx.command("轨迹答题/A", "选择 A 选项", { hidden: true }).action(async (argv, _) => {
|
|
714
728
|
await answerHandler(ctx, config, argv, "A");
|
|
715
729
|
return;
|
|
716
730
|
});
|
|
717
|
-
ctx.command("轨迹答题/B", "选择 B 选项").action(async (argv, _) => {
|
|
731
|
+
ctx.command("轨迹答题/B", "选择 B 选项", { hidden: true }).action(async (argv, _) => {
|
|
718
732
|
await answerHandler(ctx, config, argv, "B");
|
|
719
733
|
return;
|
|
720
734
|
});
|
|
721
|
-
ctx.command("轨迹答题/C", "选择 C 选项").action(async (argv, _) => {
|
|
735
|
+
ctx.command("轨迹答题/C", "选择 C 选项", { hidden: true }).action(async (argv, _) => {
|
|
722
736
|
await answerHandler(ctx, config, argv, "C");
|
|
723
737
|
return;
|
|
724
738
|
});
|
|
725
|
-
ctx.command("轨迹答题/D", "选择 D 选项").action(async (argv, _) => {
|
|
739
|
+
ctx.command("轨迹答题/D", "选择 D 选项", { hidden: true }).action(async (argv, _) => {
|
|
726
740
|
await answerHandler(ctx, config, argv, "D");
|
|
727
741
|
return;
|
|
728
742
|
});
|
|
729
|
-
ctx.command("轨迹答题/答题分数").action(async (argv, _) => {
|
|
743
|
+
ctx.command("轨迹答题/答题分数", "查看答题总分数").action(async (argv, _) => {
|
|
730
744
|
await argv.session?.send(`${At(argv)}正在开发中哦~`);
|
|
731
745
|
return;
|
|
732
746
|
});
|
|
@@ -743,13 +757,18 @@ var Config4 = import_koishi7.Schema.intersect([
|
|
|
743
757
|
|
|
744
758
|
// src/index.ts
|
|
745
759
|
var name4 = "cafe-bot-exp";
|
|
746
|
-
var inject3 = ["http", "cache"];
|
|
760
|
+
var inject3 = ["http", "cache", "logger"];
|
|
747
761
|
async function apply4(ctx, config) {
|
|
748
762
|
ctx.plugin(draw_exports, config);
|
|
749
763
|
ctx.plugin(quiz_exports, config);
|
|
750
764
|
ctx.plugin(cat_exports, config);
|
|
751
765
|
ctx.command("关于", "about").action(async (argv, _) => {
|
|
752
|
-
argv.session?.send(
|
|
766
|
+
argv.session?.send(
|
|
767
|
+
`我是运行在超级计算机『卡佩尔』上的轨迹CafeBot概念版v${version}🎉~
|
|
768
|
+
- 我提供轨迹抽卡🎴和轨迹问答🙋功能
|
|
769
|
+
- 另外我还有一些隐藏功能待你探索哦🎁
|
|
770
|
+
多多与我聊天吧~`
|
|
771
|
+
);
|
|
753
772
|
});
|
|
754
773
|
}
|
|
755
774
|
__name(apply4, "apply");
|