koishi-plugin-jrys-prpr
Version:
[<ruby>**jrys-prpr**<rp>(</rp><rt>点我查看预览图</rt><rp>)</rp></ruby>](https://i0.hdslb.com/bfs/article/ae33f1b2e9dbc3fe89363a40fbf040703493298333289018.png)😽QQ官方json按钮支持,20个群即可发按钮!支持 monetary!很好看的字体! 支持自动清理记录内容。
1,141 lines (1,135 loc) • 105 kB
JavaScript
var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
var __export = (target, all) => {
for (var name2 in all)
__defProp(target, name2, { get: all[name2], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
// If the importer is in node compatibility mode or this is not an ESM
// file that has been converted to a CommonJS file using a Babel-
// compatible transform (i.e. "__esModule" has not been set), then set
// "default" to the CommonJS "module.exports" for node compatibility.
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
mod
));
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// src/index.ts
var src_exports = {};
__export(src_exports, {
Config: () => Config,
apply: () => apply,
inject: () => inject,
name: () => name,
usage: () => usage
});
module.exports = __toCommonJS(src_exports);
var import_koishi = require("koishi");
// data/jrys.json
var jrys_default = {
"84": [
{
fortuneSummary: "大吉",
luckyStar: "★★★★★★☆",
signText: "草木逢春,枯叶沾露,稳健着实,必得人望",
unsignText: "挽回家运矣春光,顺调发展财辉煌,温和笃实阴阳合,稳健顺调得人望。顺风满帆而容易有所成就,易取富贵人生。外缘殊胜,容易得人之助力及予人好印象。",
luckValue: 84
},
{
fortuneSummary: "大吉+才艺",
luckyStar: "★★★★★★☆",
signText: "美化丰实,鹤立鸡群,名利俱全,繁荣富贵",
unsignText: "有德且智德望高,堪为顾问得仁和,名利双收天赋富,威望荣达世间豪。命格吉祥,才艺超群,事业顺遂,定能在各方面取得卓越成就。具备出众的领导能力和广泛的人际关系,能够在艺术和事业领域中获得巨大的成功。",
luckValue: 84
},
{
fortuneSummary: "大吉+财运+官运",
luckyStar: "★★★★★★☆",
signText: "天赋吉运,德望兼备,继续努力,前途无限",
unsignText: "德望高大名誉振,才谋健全财源进,富贵荣华福禄至,前途洋洋得意真。官运亨通,财源广进,能够在职场中获得重要的职位和丰厚的财富。智慧和决断力会让你在事业上不断攀升,未来充满了光明和希望。",
luckValue: 84
},
{
fortuneSummary: "大吉+财运",
luckyStar: "★★★★★★☆",
signText: "谦恭做事,必得人和,大事成就,一定兴隆",
unsignText: "福寿拱照德望高,财子寿全又温和,慈祥好善可恭敬,富贵繁荣得惠泽。财源特佳金钱有餘,离出生之地而往大都市求谋必得更发达。外缘殊胜,容易得人之助力及予人好印象。",
luckValue: 84
},
{
fortuneSummary: "大吉",
luckyStar: "★★★★★★☆",
signText: "时来运转,事事如意,功成名就,富贵自来",
unsignText: "利路享通万事成,和畅逍达四海明,家运隆盛招富贵,万商云集得繁荣。运势大吉,事业顺利,财运亨通,家庭幸福。或许今天将迎来一个充满机遇和好运的时期,任何计划都将顺利进行。人际关系和谐,得到贵人相助,成功在望。",
luckValue: 84
},
{
fortuneSummary: "大吉+财运+才艺",
luckyStar: "★★★★★★☆",
signText: "不可意气,善用智慧,如能慎始,必可昌隆",
unsignText: "家门隆昌精神爽,博得名利星月朗,权威智谋极周全,君是天下富贵翁。具有此数之人,男则勇敢果断,而女则美貌如仙子,有风流不羁不顾时局大体倾向,若修养不够或抑制力不强,往往因桃色事件惹来麻烦。",
luckValue: 84
},
{
fortuneSummary: "大吉+官运",
luckyStar: "★★★★★★☆",
signText: "富贵荣华实可当,光明荣达好儿郎,家门隆昌福万千,世代子孙个个贤。",
unsignText: "因异性而引起之纠纷困扰,失利特多,而且一生常遇逆境之折磨。家庭和顺则万事可成。智能超人贯彻大志,富贵无比,不甘寂寞,叱吒风云之大吉数。切忌牢骚、贪心、欲望太多、永不知足影响前程。",
luckValue: 84
},
{
fortuneSummary: "大吉+官运",
luckyStar: "★★★★★★☆",
signText: "此数大吉,名利双收,渐进向上,大业成就",
unsignText: "智勇得志意气新,建立声誉事业兴,终到富贵福禄奏,为人领导德望高。顺风满帆而容易有所成就,易取富贵人生。官运亨通,职位步步高升,受到上司和同僚的高度评价。事业稳步发展,终能成就大业,获得社会的尊重与认可。",
luckValue: 84
},
{
fortuneSummary: "大吉+官运+财运",
luckyStar: "★★★★★★☆",
signText: "能获众望,成就大业,名利双收,盟主四方",
unsignText: "贵人得助天乙扶,为人之上有财富,众望所归事业成,不可贪色保安宁。名誉良好,信用亦佳,步步高升。外缘殊胜,容易得人之助力及予人好印象。或许在官场和财运上能双双得意,不仅职位步步高升,还将财源广进。事业稳固,人脉广泛,受到众人的推崇和支持,成就辉煌,前途无量。",
luckValue: 84
},
{
fortuneSummary: "大吉+官运+才艺",
luckyStar: "★★★★★★☆",
signText: "天赋吉运,能得人望,善用智慧,必获成功",
unsignText: "智略超群博学多,善处事务亦忍和,功业成就得富荣,艺才相身乐千锺。外缘殊胜,容易得人之助力及予人好印象。具有此数之人,男多勇敢果断,女多貌若天仙,有风流不羁不顾时局大体倾向,若修养不够或抑制力不强,往往因桃色事件惹来麻烦。",
luckValue: 84
}
],
"0": [
{
fortuneSummary: "凶",
luckyStar: "☆☆☆☆☆☆☆",
signText: "薄弱无力,孤立无摇,外祥内苦,谋事难成",
unsignText: "人生路上诸事不顺,自身能力之限制,经常迫于无耐。由于性格或人际关系上的问题,难遇贵人。经常一人处理所有事情,即使有天大的能力,总会遇到不能解决的问题,而这些问题会导致事业的失败。",
luckValue: 0
},
{
fortuneSummary: "凶",
luckyStar: "☆☆☆☆☆☆☆",
signText: "鱼临旱地,难逃恶运,此数大凶,不如更名",
unsignText: "现时处境就如鱼在旱地上一样,面临大的恶运,是大凶之兆,此处的“不如更名”从现代角度来看,并非全指改名,而更多是指要改变现在的做人处事方式,才能摆脱大凶的来临。",
luckValue: 0
},
{
fortuneSummary: "凶",
luckyStar: "☆☆☆☆☆☆☆",
signText: "此数大凶,破产之象,宜速改变,以避厄运",
unsignText: "不祥之兆,财产有可能一夜尽失,应尽快改变现在的处事和投资方式,避免厄运。要特别注意人际关系中的矛盾和冲突,保持冷静和理智,以减少损失和避免更大的麻烦。当前时期不宜冒险,应以保守为主,防范于未然。",
luckValue: 0
},
{
fortuneSummary: "凶",
luckyStar: "☆☆☆☆☆☆☆",
signText: "动摇不安,常陷逆境,不得时运,难得利润",
unsignText: "坚持是您现时最缺乏的品质,由于没有坚定的目标,会使您陷入相当困苦的境地。而当获得成功时,却发现时不与我,外部环境已使得竞争激烈导致利润下降。",
luckValue: 0
},
{
fortuneSummary: "吉带凶",
luckyStar: "☆☆☆☆☆☆☆",
signText: "吉中带凶,欲速不达,进不如守,可保安祥",
unsignText: "在好运中含藏凶兆,不能操之过急,不可冒然急进,前进得太快,容易出现危险,还不如坚守现在的阵地。虽然有一些好的机会,但也伴随着风险,需谨慎行事。宜稳步前进,不急不躁,方能确保安全和稳定,减少意外的发生。",
luckValue: 0
},
{
fortuneSummary: "凶",
luckyStar: "☆☆☆☆☆☆☆",
signText: "虽倾全力,难望成功,此数大凶,最好改名",
unsignText: "即使全力以赴,却没有取得成功。导致失败的原因是现时的待人处事方式有问题,要改变这个现状,要自我反省,改变一些令人厌恶的恶习,方可取得成功。宜放下执念,重新审视自己的道路,以免一错再错,陷入困境。",
luckValue: 0
}
],
"70": [
{
fortuneSummary: "中吉",
luckyStar: "★★★★★☆☆",
signText: "排除万难,有贵人助,把握时机,可得成功",
unsignText: "突破万难权威高,刚性固执如英豪,须事谨慎守和平,可得大功奏业成。很勤勉求上进,又很有耐力,在技术界或艺能界,是最可能成功之数也。但此数因少得人和,而略感孤独些。",
luckValue: 70
},
{
fortuneSummary: "中吉",
luckyStar: "★★★★★☆☆",
signText: "万宝云集,天降幸运,立志奋发,可成大功",
unsignText: "安稳余庆福禄开,盛大幸福天赐来,内含衰兆应谨慎,注意品行福乐享。名誉良好,信用亦佳,步步高升。要注意不要过于得意忘形,保持谦虚和谨慎,才能继续享受好运。",
luckValue: 70
},
{
fortuneSummary: "中吉+官运",
luckyStar: "★★★★★☆☆",
signText: "杨柳遇春,绿叶发枝,冲破难关,一举成名",
unsignText: "新生泰运顺行舟,排除万难总无忧,成功繁荣四海明,荣华富贵好前程。只要坚定信念,不怕困难,就能在官场上取得显著成就,并迎来事业的高峰。",
luckValue: 70
},
{
fortuneSummary: "中吉+才艺",
luckyStar: "★★★★★☆☆",
signText: "经商做事,顺利昌隆,如能慎始,百事亨通",
unsignText: "有志竟成事皆通,智谋发展有威望,过刚遭难咸柔德,博得名利大成功。很勤勉求上进,又很有耐力,在技术界或艺能界,是最可能成功之数也。但此数因少得人和,而略感孤独些。",
luckValue: 70
},
{
fortuneSummary: "中吉",
luckyStar: "★★★★★☆☆",
signText: "天时地利,再得人格,讲信修睦,即可成功",
unsignText: "资性英敏有奇能,怪癖不和害前程,修身涵养与仁和,奏功获得大鸿图。需要注重个人私生活,可免因桃色韵事贻误前程。尤其要在处理人际关系时多加小心,避免因冲动或不谨慎的言行影响到你的整体运势。在职业发展中保持谦逊和稳重,才能更好地把握机遇,取得成功。",
luckValue: 70
},
{
fortuneSummary: "大吉",
luckyStar: "★★★★★☆☆",
signText: "万物化育,繁荣之象,专心一意,始能成功",
unsignText: "富贵荣达得显甯,子孙繁茂福绵绵,一身平安富益寿,福禄双全享千锺。努力将会得到丰厚的回报,但需要注意家庭和睦,家庭的支持是你成功的基石。保持身体健康,才有更多的精力去追求事业上的成就。同时要心怀感恩,懂得分享,才能更长久地维持好运。",
luckValue: 70
},
{
fortuneSummary: "大吉",
luckyStar: "★★★★★☆☆",
signText: "得天时地利,人和相助,事业兴旺,财源广进",
unsignText: "家运昌隆,子孙贤能,事业发达,财源滚滚。贵人扶助,凡事顺遂,名利双收,前途光明。在各方面得到贵人的帮助,使你的事业顺风顺水。但也要注意保持谦虚谨慎,不骄不躁。家庭和睦是你事业成功的重要保障,珍惜眼前的幸福,并与家人分享你的成功。",
luckValue: 70
},
{
fortuneSummary: "中吉+财富",
luckyStar: "★★★★★☆☆",
signText: "机遇良好,财源茂盛,努力奋发,必有所成",
unsignText: "家道昌盛,事业有成,四方之财,滚滚而来。若能谨慎行事,财源不绝,富贵荣华,皆在其中。财富的积累需要脚踏实地,避免贪图短期利益而忽视长远发展。与人合作时保持诚信,才能赢得更多的机会和资源。理财方面也要注意节制和规划,不要轻易冒险。",
luckValue: 70
},
{
fortuneSummary: "大吉",
luckyStar: "★★★★★☆☆",
signText: "风调雨顺,万事顺遂,家庭美满,事业腾达",
unsignText: "家和万事兴,事业稳步发展,财源广进,子孙贤能。注重内外和谐,幸福安康,福寿双全。生活将充满和谐与幸福,家庭是你最大的支持者。事业上会有稳定的发展机会,财务状况也会逐渐好转。保持积极向上的心态和良好的人际关系,将会让你的人生更加美满。",
luckValue: 70
},
{
fortuneSummary: "中吉+事业",
luckyStar: "★★★★★☆☆",
signText: "事业有成,名利双收,心想事成,幸福美满",
unsignText: "家庭和睦,事业顺利,财源广进,子孙贤能。内外兼修,福禄寿全,幸福安康,万事如意。事业的成功离不开家庭的支持,注意在追求事业的同时也要兼顾家庭。良好的个人修养和健康的身体是你持续成功的关键,保持平衡的生活方式,将会让你的人生更加充实和美满。",
luckValue: 70
}
],
"28": [
{
fortuneSummary: "吉带凶",
luckyStar: "★★☆☆☆☆☆",
signText: "一胜一衰,浮沉不定,知难而退,自获天佑",
unsignText: "谨慎保安勿自骄,智谋胆略得显晓,知难而退获天佑,妄进逞强败涂地。你需要在逆境中保持冷静和清醒,避免因为骄傲和冲动而导致失败。知难而退,不是懦弱,而是智慧的体现。只有在适当的时候退让,才能避免更大的损失,并在未来获得更好的发展机会。务必重视安全,不可掉以轻心,防范潜在的风险和威胁。",
luckValue: 28
},
{
fortuneSummary: "凶",
luckyStar: "★★☆☆☆☆☆",
signText: "波澜起伏,千变万化,凌驾万难,必可成功",
unsignText: "局势不稳定,变化极多,任何困难都难不到你,最终您将一定会成功,且成就不小,关键是能否在多变的艰难环境下坚持到最后。你需要具备强大的毅力和决心,在面对各种困难和挑战时不轻言放弃。虽然前路坎坷,但只要坚定信念,保持耐心和勇气,你终将克服一切障碍,取得辉煌的成就。切记,在任何情况下都不要丧失希望和信心。",
luckValue: 28
},
{
fortuneSummary: "吉带凶",
luckyStar: "★★☆☆☆☆☆",
signText: "先苦后甘,先甘后苦,如能守成,不致失败",
unsignText: "不能一生都有好运,但也不全是恶运,好坏总会各占一半,当好运来时,记得积谷防饥。你的人生会经历许多起伏,不要被暂时的顺利冲昏头脑,也不要因为一时的挫折而灰心丧气。把握好运时刻,为未来做好准备,在逆境中积蓄力量和资源。保持警惕和冷静,方能在各种变化中稳步前行,最终实现稳定和长久的成功。",
luckValue: 28
},
{
fortuneSummary: "吉带凶",
luckyStar: "★★☆☆☆☆☆",
signText: "有得有失,华而不实,须防劫财,始保平安",
unsignText: "金钱上有损失,切忌花枝招展,外表的华丽可能为您带来小人的攻击。需要格外小心自己的财务状况,避免不必要的开支和投资,警惕可能的财务陷阱。同时,不要过于注重外表的浮华,保持低调和内敛,才能避免招致不必要的麻烦和敌意。在处理人际关系时,也要谨慎行事,以防小人暗算。只有这样,你才能确保自己的平安和财务的稳定。",
luckValue: 28
},
{
fortuneSummary: "凶",
luckyStar: "★★☆☆☆☆☆",
signText: "遇吉则吉,遇凶则凶,惟靠谨慎,逢凶化吉",
unsignText: "遇到好的的人或事自然就会有好的事情发生或是有好的事降临,相反的遇到坏人坏事就会有糟糕的事情发生讨厌的人来了,想要不被厄运控制,打破坏人坏事的困扰,就只有小心谨慎,有了这种心思方可逢凶化吉,就是遇到坏的也可以变成好的。",
luckValue: 28
},
{
fortuneSummary: "凶带吉",
luckyStar: "★★☆☆☆☆☆",
signText: "一成一败,一盛一衰,惟靠谨慎,可守成功",
unsignText: "成 败, 盛 衰这都是相对的,有成功就会有失败,有强盛就会有衰落这都只是时间问题,只有坚定的信念对能获得一定的成功但并不能永久。",
luckValue: 28
},
{
fortuneSummary: "吉带凶",
luckyStar: "★★☆☆☆☆☆",
signText: "雨夜之花,外祥内苦,忍耐自重,转凶为吉",
unsignText: "下雨对于花来说,是件好事,但是雨夜,像征着孤独、恐惧、所以,看似吉祥的一片,实是内心承受着煎熬。如果坚强的忍耐过雨夜的敲打,熬过寂寞与恐惧,待明晨又是个艳阳天。",
luckValue: 28
},
{
fortuneSummary: "吉带凶",
luckyStar: "★★☆☆☆☆☆",
signText: "外观隆昌,内隐祸患,克服难关,开出泰运",
unsignText: "外人看来很风光,而自已内部隐藏的危机,只要解决内部的危机,人生将会过得风风火火。关键是要找到问题的根源,然后对症下药,才能真正消除隐患,迎来成功。",
luckValue: 28
},
{
fortuneSummary: "凶",
luckyStar: "★★☆☆☆☆☆",
signText: "根基不固,摇摇欲坠,一盛一衰,劳而无功",
unsignText: "与人合伙比之独营好得多,若自己独营商则中途易受挫折。合作可以分担风险和责任,更有可能成功,但要找到可靠的合作伙伴。",
luckValue: 28
},
{
fortuneSummary: "凶",
luckyStar: "★★☆☆☆☆☆",
signText: "遇事犹疑,难望成事,大刀阔斧,始可有成",
unsignText: "做事犹豫、不果断,很难做成功;变得果断勇敢了,才有希望。遇到问题时不要退缩,要坚定信心,勇敢面对,才能取得成功。",
luckValue: 28
}
],
"56": [
{
fortuneSummary: "中吉+财运",
luckyStar: "★★★★☆☆☆",
signText: "池中之龙,风云际会,一跃上天,成功可望",
unsignText: "侥倖所得贵人扶,善捉机会有财富,认真努力向前程,家门隆昌得富荣。与人合伙比之独营好得多,若自己独营商则中途易受挫折。",
luckValue: 56
},
{
fortuneSummary: "中吉",
luckyStar: "★★★★☆☆☆",
signText: "努力经营,时来运转,旷野枯草,春来花开",
unsignText: "寒雪青松性刚强,一度祸难过灾殃,将此发达利亨通,晚景繁荣福无疆。即使遇到困难,也要保持坚强的意志,最终会迎来好运与成功。"
},
{
fortuneSummary: "中吉",
luckyStar: "★★★★☆☆☆",
signText: "中吉之数,进退保守,生意安稳,成就可期",
unsignText: "温和平安艺才高,努力前途福运来,文笔奇绝仁德高,务实稳健掌门人。通过坚持不懈的努力,最终将会迎来成功和幸福的生活。"
},
{
fortuneSummary: "中吉",
luckyStar: "★★★★☆☆☆",
signText: "安乐自来,自然吉祥,力行不懈,终必成功",
unsignText: "志高力微乏实行,妄谋无计事难成,晚年安宁静逸祥,享得天赋增吉相。坚持脚踏实地的努力,最终将会取得令人满意的成就和安宁的生活。"
},
{
fortuneSummary: "中吉+才艺",
luckyStar: "★★★★☆☆☆",
signText: "逢凶化吉,吉人天相,风条雨顺,生意兴隆",
unsignText: "权威显达得众望,忠实热诚运极旺,大德奏功无难事,终得富荣乐千锺。以真诚和热情面对挑战,最终将会取得丰厚的回报和众人的敬仰。"
},
{
fortuneSummary: "吉",
luckyStar: "★★★★☆☆☆",
signText: "吉运自来,能享盛名,把握机会,必获成功",
unsignText: "人生路上机会众多,只要把握好一次机会,将会改写您的人生。抓住机遇,迎接挑战,未来将会充满无限可能和辉煌成就。"
},
{
fortuneSummary: "中吉",
luckyStar: "★★★★☆☆☆",
signText: "阳光普照,心灵舒畅,事业顺利,前途光明",
unsignText: "得天时地利人和,善用机遇定可成功,持之以恒不懈努力,未来必将辉煌。通过不断的努力和把握机遇,事业和生活都会迎来美好的未来。"
},
{
fortuneSummary: "中吉+事业",
luckyStar: "★★★★☆☆☆",
signText: "峰回路转,柳暗花明,努力耕耘,终有回报",
unsignText: "困境中勇往直前,积累经验厚积薄发,迎接机遇事业飞升,家门兴旺财源广。不断努力和积累经验,最终会迎来事业和家庭的双重繁荣。"
},
{
fortuneSummary: "中吉",
luckyStar: "★★★★☆☆☆",
signText: "处事得宜,顺风顺水,事事顺心",
unsignText: "行事稳重,善于把握机会,顺风顺水,生活和事业都顺心如意。通过稳重和谨慎的处理事情,将会迎来事业和生活的双重顺利。"
},
{
fortuneSummary: "中吉+财运",
luckyStar: "★★★★☆☆☆",
signText: "财源广进,积少成多,理财有道,富贵双全",
unsignText: "善于理财积聚财富,机遇把握财运亨通,勤俭节约积累财富,家庭富裕幸福来。通过智慧的理财和勤俭的生活,最终会实现财富和家庭的双丰收。"
},
{
fortuneSummary: "中吉+友情",
luckyStar: "★★★★☆☆☆",
signText: "友谊长存,互助互爱,患难见真情,友情深厚",
unsignText: "珍惜朋友真挚感情,互帮互助共度难关,友情长存心灵温暖,携手并进迎未来。通过真诚和互助,建立深厚的友情,共同迎接未来的挑战和机遇。"
},
{
fortuneSummary: "中吉+学业",
luckyStar: "★★★★☆☆☆",
signText: "勤奋学习,学业有成,功夫不负有心人",
unsignText: "刻苦钻研学业有成,勤勉不懈成绩斐然,努力拼搏学有所成,前途光明未来美。通过不断的努力和刻苦钻研,最终会在学业上取得优异的成绩和光明的未来。"
},
{
fortuneSummary: "中吉",
luckyStar: "★★★★☆☆☆",
signText: "行事顺利,事半功倍,名利双收",
unsignText: "努力不懈,行事顺利,收获颇丰,名利双收,生活幸福美满。通过坚持不懈的努力,最终会在事业和生活中获得双重的成功和幸福。"
},
{
fortuneSummary: "中吉+事业",
luckyStar: "★★★★☆☆☆",
signText: "百折不挠,勇往直前,事业攀升,前程似锦",
unsignText: "不怕困难迎难而上,百折不挠事业有成,努力拼搏终成大器,前途光明事业旺。通过坚持不懈的努力和迎难而上的勇气,最终会在事业上取得辉煌的成就。"
},
{
fortuneSummary: "中吉+社交",
luckyStar: "★★★★☆☆☆",
signText: "善于交际,人脉广泛,机会多多,成功可期",
unsignText: "善于交际人脉广,良好关系机会多,利用资源实现梦想,事业成功不在话下。通过广泛的人脉和良好的社交能力,将会迎来事业和生活的双重成功。"
},
{
fortuneSummary: "中吉+才艺",
luckyStar: "★★★★☆☆☆",
signText: "才艺出众,独树一帜,技艺精湛,名扬四海",
unsignText: "才华横溢技艺高超,不懈努力名扬四海,善用才艺成就梦想,人生精彩无限多。通过不断的努力和发挥才艺,将会在人生的舞台上取得辉煌的成就和无限的精彩。"
},
{
fortuneSummary: "中吉",
luckyStar: "★★★★☆☆☆",
signText: "稳步前行,收获满满,生活安定",
unsignText: "安守本分,积极进取,家庭和睦,事业稳定,生活充满幸福。通过稳步前行和积极进取,将会迎来家庭和事业的双重幸福和稳定。"
},
{
fortuneSummary: "中吉+事业",
luckyStar: "★★★★☆☆☆",
signText: "事业蒸蒸日上,前途光明,成功在望",
unsignText: "努力工作,事业蒸蒸日上,前途光明,成功在望,生活愈加美好。通过不断的努力和奋斗,事业将会蒸蒸日上,生活也将愈加美好和幸福。"
},
{
fortuneSummary: "中吉+人缘",
luckyStar: "★★★★☆☆☆",
signText: "人缘广结,友谊长存,助力不断",
unsignText: "广结善缘,友谊深厚,贵人相助,事业和生活都将获得更多支持。通过广结善缘和建立深厚的友谊,将会在事业和生活中获得更多的支持和助力。"
},
{
fortuneSummary: "中吉+智慧",
luckyStar: "★★★★☆☆☆",
signText: "智慧过人,谋略得当,事半功倍,前途无量",
unsignText: "智慧过人谋略得当,善于计划事半功倍,坚持不懈成就非凡,前途无量未来光。通过过人的智慧和得当的谋略,将会在事业和未来的路上取得非凡的成就和光明的前途。"
}
],
"42": [
{
fortuneSummary: "凶带吉",
luckyStar: "★★★☆☆☆☆",
signText: "半凶半吉,浮沉多端,始凶终吉,能保成功",
unsignText: "所求之事,是吉凶参半。所要经历的,既有非你所愿、无法承受之痛苦,也有甘之如饴、顺风顺水之运气。无法如预期的稳定,不确定的因素对其本身影响很大。要老老实实接受磨难的考验,之后成功就会不期而遇。",
luckValue: 42
},
{
fortuneSummary: "吉带凶",
luckyStar: "★★★☆☆☆☆",
signText: "吉凶参半,惟赖勇气,贯彻力行,始可成功",
unsignText: "人生之路吉、凶各半,有好有坏;要想改变这种不利局面,唯有依赖你的勇气和不屈服的执行力,一步步向前,人生才会更光明,更成功。",
luckValue: 42
},
{
fortuneSummary: "凶带吉",
luckyStar: "★★★☆☆☆☆",
signText: "名虽可得,利则难获,艺界发展,可望成功",
unsignText: "可能有名气,却未能用这名气带来财运,可考虑从事娱乐或艺术来业,把名气转化成事业中一部分。凭借你的才华和努力,将有机会在这一领域取得成功,获得更多认可和财富。",
luckValue: 42
},
{
fortuneSummary: "吉带凶",
luckyStar: "★★★☆☆☆☆",
signText: "喜忧参半,努力拼搏,前途未定",
unsignText: "你的运势起伏不定,有时会遇到意外之喜,但也有可能面临挫折。需坚定信心,不畏艰难,方能走向光明的未来。只有通过坚持不懈的努力和奋斗,才能最终实现自己的目标和梦想。",
luckValue: 42
},
{
fortuneSummary: "凶带吉",
luckyStar: "★★★☆☆☆☆",
signText: "逆境重重,智慧为钥,终有转机",
unsignText: "目前处境可能不太理想,但凭借你的智慧和耐心,能在逆境中找到出路,逐步迎来好运。相信自己的能力,面对挑战时保持冷静,最终会看到生活中的转机和希望。",
luckValue: 42
},
{
fortuneSummary: "吉凶混杂",
luckyStar: "★★★☆☆☆☆",
signText: "吉凶交织,心态平和,稳中求胜",
unsignText: "运势起伏较大,需要保持冷静的心态,稳步前行,避免因急躁而犯错,从而实现最终的成功。只有在困境中保持镇定,谨慎处理每一个决定,才能逐渐走向成功的彼岸。",
luckValue: 42
},
{
fortuneSummary: "吉中带凶",
luckyStar: "★★★☆☆☆☆",
signText: "风雨兼程,坚守信念,终见彩虹",
unsignText: "你的路上既有风雨也有阳光,坚持信念,不懈努力,最终会迎来属于你的彩虹。在困难和挑战面前,不要放弃自己的目标,相信风雨过后总会见到美丽的彩虹。",
luckValue: 42
},
{
fortuneSummary: "凶中有吉",
luckyStar: "★★★☆☆☆☆",
signText: "困难重重,巧用智慧,转危为安",
unsignText: "面临的挑战很多,但通过智慧和策略,能将危机化为机会,迎来好运。不要被眼前的困难吓倒,只要冷静分析,灵活应对,就能从困境中找到突破口,实现转机。",
luckValue: 42
},
{
fortuneSummary: "吉凶参半",
luckyStar: "★★★☆☆☆☆",
signText: "半吉半凶,步步为营,小心驶得万年船",
unsignText: "运势有好有坏,行事需谨慎,步步为营,才能确保平安顺利。面对未知的挑战和机遇,保持警惕,不冒险,稳扎稳打,最终能走向成功的道路。",
luckValue: 42
},
{
fortuneSummary: "吉带忧",
luckyStar: "★★★☆☆☆☆",
signText: "喜中有忧,心态平稳,善用资源",
unsignText: "在好运中隐藏着一些隐忧,保持心态平稳,善于利用手中的资源,才能化险为夷。不要因为眼前的顺利而掉以轻心,谨慎处理每一步,才能避免潜在的风险。",
luckValue: 42
},
{
fortuneSummary: "凶带喜",
luckyStar: "★★★☆☆☆☆",
signText: "困境中见曙光,艰难中有希望",
unsignText: "虽然面临困境,但也能看到希望的曙光,坚持不懈,会有意想不到的惊喜。只要不放弃,在最黑暗的时刻也能找到前行的方向,最终迎来光明和希望。",
luckValue: 42
},
{
fortuneSummary: "吉凶各半",
luckyStar: "★★★☆☆☆☆",
signText: "顺逆交替,谨慎行事,终能如愿",
unsignText: "运势有时顺利,有时波折,需谨慎行事,方能最终实现心愿。保持冷静,面对顺境和逆境都要有足够的耐心和智慧,才能在风雨中坚持到最后,迎来胜利。",
luckValue: 42
},
{
fortuneSummary: "吉中有险",
luckyStar: "★★★☆☆☆☆",
signText: "福祸相依,沉稳应对,化险为夷",
unsignText: "在吉运中隐藏着一些风险,保持沉稳,冷静应对,才能顺利渡过难关。不要被一时的顺利冲昏头脑,时刻保持警惕,做好充分的准备,才能避免潜在的危险。",
luckValue: 42
},
{
fortuneSummary: "凶中带吉",
luckyStar: "★★★☆☆☆☆",
signText: "险中有生机,耐心等待,时机将至",
unsignText: "虽然处于凶险之中,但只要耐心等待,时机成熟时将迎来转机。不要急于求成,稳扎稳打,在适当的时候采取行动,才能在逆境中找到生机,取得成功。",
luckValue: 42
},
{
fortuneSummary: "吉凶同现",
luckyStar: "★★★☆☆☆☆",
signText: "福祸相倚,细心观察,趋吉避凶",
unsignText: "运势中既有吉利也有凶险,需细心观察,尽量趋吉避凶,才能安全顺利。保持冷静,善于发现问题并解决问题,才能在复杂的局势中找到自己的方向,走向成功。",
luckValue: 42
},
{
fortuneSummary: "吉中藏凶",
luckyStar: "★★★☆☆☆☆",
signText: "吉中有忧,心态平和,稳步前行",
unsignText: "在吉运中隐藏着忧患,需保持平和的心态,稳步前行,才能平安顺利。不要因为一时的顺利而掉以轻心,保持警惕,做好准备,才能在吉运中避免不必要的风险。",
luckValue: 42
},
{
fortuneSummary: "凶中带喜",
luckyStar: "★★★☆☆☆☆",
signText: "困境中有转机,努力不懈,终有突破",
unsignText: "虽然面临困境,但只要努力不懈,终能找到转机,实现突破。面对困难时,不要放弃,坚持自己的信念,终将迎来成功的曙光,突破重重阻碍。",
luckValue: 42
},
{
fortuneSummary: "吉凶并存",
luckyStar: "★★★☆☆☆☆",
signText: "福祸交织,冷静应对,终能圆满",
unsignText: "运势中有福有祸,需冷静应对,方能最终圆满。在顺境中保持谦逊,在逆境中保持坚韧,冷静处理每一个问题,最终能实现圆满的结局。",
luckValue: 42
},
{
fortuneSummary: "吉带忧虑",
luckyStar: "★★★☆☆☆☆",
signText: "福中藏忧,谨慎行事,避免失误",
unsignText: "吉运中隐藏着一些忧虑,需谨慎行事,避免因疏忽导致的失误。不要被眼前的顺利冲昏头脑,保持警惕,处理每个细节,才能顺利化解潜在的风险。",
luckValue: 42
},
{
fortuneSummary: "凶中藏机",
luckyStar: "★★★☆☆☆☆",
signText: "危中有机,耐心坚持,迎来转折",
unsignText: "虽然目前处于凶险中,但危机中也蕴含着机会,只要耐心坚持,终能迎来转折。保持乐观,善于抓住机会,就能在逆境中找到生机,实现目标。",
luckValue: 42
},
{
fortuneSummary: "凶中藏机",
luckyStar: "★★★☆☆☆☆",
signText: "危中有机,耐心坚持,迎来转折",
unsignText: "虽然目前处于凶险中,但危机中也蕴含着机会,只要耐心坚持,终能迎来转折。面对困境时,保持乐观和耐心,相信自己能够找到解决问题的方法,走向好运。",
luckValue: 42
}
],
"98": [
{
fortuneSummary: "大吉+官运+财运+才艺",
luckyStar: "★★★★★★★",
signText: "如龙得云,青云直上,智谋奋进,才略奏功",
unsignText: "欲望难足希望高,计谋成功财力豪,猜疑嫉妒性自改,如龙乘云势运开。智能超人贯彻大志,富贵无比,不甘寂寞,叱吒风云之大吉数,但容易发生牢骚及贪心、欲望太多而永不知足,为其缺点。切忌沉迷投机,可免贻误前程。",
luckValue: 98
},
{
fortuneSummary: "大吉+好运+财运+智慧",
luckyStar: "★★★★★★★",
signText: "天高任鸟飞,得意扬眉,智慧卓绝,财富伴随",
unsignText: "人情融洽财运佳,才智兼备福寿长,心胸宽广逢贵人,如虎添翼势飞扬。智力非凡,心胸广阔,成就卓越,名利双收。但要注意心浮气躁,防止骄傲自满,切勿贪婪无厌,以免因贪失义,贻误大好前程。",
luckValue: 98
},
{
fortuneSummary: "大吉+事业+财运+智慧",
luckyStar: "★★★★★★★",
signText: "鲲鹏展翅,扶摇直上,才智双全,富贵逼人",
unsignText: "志向高远成功近,财运亨通人缘好,心态平和运势旺,如日中天前程似锦。智勇双全,名利双收,但需谨防骄傲自满和急功近利。切勿贪图享乐,保持谦逊可免损失大好机遇。",
luckValue: 98
},
{
fortuneSummary: "大吉+爱情+财运+健康",
luckyStar: "★★★★★★★",
signText: "情满人间,财源滚滚,健康如意,幸福圆满",
unsignText: "爱情顺利家庭和,财运丰厚健康佳,身心愉悦运势旺,吉祥如意幸福长。感情稳定,财富积累,但需注意情感沟通和财务规划,避免因疏忽导致的困扰和损失。保持健康生活方式,方能长久享受幸福。",
luckValue: 98
},
{
fortuneSummary: "大吉+学业+财运+人缘",
luckyStar: "★★★★★★★",
signText: "学有所成,财源广进,人脉广结,前途无量",
unsignText: "学业顺利成绩佳,财运亨通人脉广,心态平和智谋高,步步高升未来光明。学业有成,财富增长,但需警惕因骄傲导致的学业懈怠和财务风险。保持谦虚好学的态度,方能持续进步。",
luckValue: 98
},
{
fortuneSummary: "大吉+家庭+财运+才华",
luckyStar: "★★★★★★★",
signText: "家庭和睦,财运旺盛,才华横溢,幸福满满",
unsignText: "家庭和美幸福多,财运滚滚富贵增,才华尽展运势高,福气满满乐无边。家庭和谐,财富累积,但需注意家庭沟通和财务管理,避免因疏忽带来的问题。保持创造力和勤奋,方能持续幸福。",
luckValue: 98
}
],
"14": [
{
fortuneSummary: "凶",
luckyStar: "★☆☆☆☆☆☆",
signText: "坎坷不平,艰难重重,若无耐心,难望有成",
unsignText: "人生过程中,您会遇到非常多的困难,有一坡未平一坡又起之势,在面对这些坎坷时,只要有耐心和毅力,最终都会获得成功的,否则容易一事无成。",
luckValue: 14
},
{
fortuneSummary: "凶",
luckyStar: "★☆☆☆☆☆☆",
signText: "黑暗无光,心迷意乱,出尔反尔,难定方针",
unsignText: "黑暗无光之凶运数。不仅事事不能如意,加以心迷意乱,难决定方针,出尔反尔,徒蒙损失,虽获成就。如能就初衷贯彻,或有小康之望。",
luckValue: 14
},
{
fortuneSummary: "凶",
luckyStar: "★☆☆☆☆☆☆",
signText: "事与愿违,终难成功,欲速不达,有始有终",
unsignText: "做事不能三分钟热度,要有始有终。急于求成,将会事与愿违,大事难成。",
luckValue: 14
},
{
fortuneSummary: "凶",
luckyStar: "★☆☆☆☆☆☆",
signText: "忍得苦难,必有后福,是成是败,惟靠坚毅",
unsignText: "只要有坚毅的决心,肯下功夫肯吃苦,多么难的事也能做成功。成功了,福也是必然相随。",
luckValue: 14
},
{
fortuneSummary: "凶",
luckyStar: "★☆☆☆☆☆☆",
signText: "利不及费,坐食山空,如无智谋,难望成功",
unsignText: "入不敷出,即使有很好的基础,如果没有智谋或用人不善,难以发扬光大,最终可能败掉一切。",
luckValue: 14
},
{
fortuneSummary: "吉带凶",
luckyStar: "★☆☆☆☆☆☆",
signText: "盛衰参半,外祥内苦,先吉后凶,先凶后吉",
unsignText: "一生好运与恶运都会让您遇上,当外表风光时,可能您的内心正受到非常大的困苦。前半生可能过得很苦,但后半生会出现转运,生活变得很美好;也有可能是前半生过得很风光,而后半生却很潦倒。",
luckValue: 14
},
{
fortuneSummary: "凶",
luckyStar: "★☆☆☆☆☆☆",
signText: "智高志大,历尽艰难,焦心忧劳,进退两难",
unsignText: "即使有宏图大志并且能力超人,但全靠白手起家,需要突破社会重重规则,劳劳碌碌,最后可能处于进退两难的选择当中,不过,由于个人毅力与才气,只要坚持,最后终必成功。",
luckValue: 14
}
]
};
// src/index.ts
var import_node_fs = __toESM(require("node:fs"));
var import_node_path = __toESM(require("node:path"));
var import_node_crypto = __toESM(require("node:crypto"));
var import_node_url = require("node:url");
var name = "jrys-prpr";
var inject = {
required: ["i18n", "logger", "http", "puppeteer"],
optional: ["canvas", "monetary", "database"]
};
var usage = `
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>运势卡片说明</title>
</head>
<body>
<div>
<h1>获取运势卡片 🧧</h1>
<p>发送指令 <code>jrysprpr</code> 即可获取一张个性化的运势卡片。</p>
<p>您还可以使用 <code>--split</code> 选项来获取图文模式的运势,只需发送 <code>jrysprpr -s</code> 即可。</p>
<h3>如果您想获取运势卡的背景图,需要启用<code>原图</code>指令</h3>
<h3>可以直接回复一张已发送的运势卡图片并输入指令 <code>获取原图</code>。</h3>
<p>或者使用 <code>获取原图 ********</code> 来获取对应标识码的背景图。</p>
<p>如果您使用的是QQ官方bot,也可以通过点击markdown运势卡上的“查看原图”按钮来获取。</p>
<hr>
</div>
</body>
</html>
`;
var defaultFortuneProbability = [
{ "Fortune": "☆☆☆☆☆☆☆", "luckValue": 0, "Probability": 5 },
{ "Fortune": "★☆☆☆☆☆☆", "luckValue": 14, "Probability": 10 },
{ "Fortune": "★★☆☆☆☆☆", "luckValue": 28, "Probability": 12 },
{ "Fortune": "★★★☆☆☆☆", "luckValue": 42, "Probability": 15 },
{ "Fortune": "★★★★☆☆☆", "luckValue": 56, "Probability": 30 },
{ "Fortune": "★★★★★☆☆", "luckValue": 70, "Probability": 35 },
{ "Fortune": "★★★★★★☆", "luckValue": 84, "Probability": 45 },
{ "Fortune": "★★★★★★★", "luckValue": 98, "Probability": 25 }
];
var Config = import_koishi.Schema.intersect([
import_koishi.Schema.object({
command: import_koishi.Schema.string().default("jrysprpr").description("`签到`指令自定义"),
command2: import_koishi.Schema.string().default("查看运势背景图").description("`原图`指令自定义"),
//authority: Schema.number().default(1).description("指令权限设置"),
GetOriginalImageCommand: import_koishi.Schema.boolean().description("开启后启用`原图`指令,可以获取运势背景原图").default(true),
autocleanjson: import_koishi.Schema.boolean().description("自动获取原图后,删除对应的json记录信息").default(true),
Checkin_HintText: import_koishi.Schema.union([
import_koishi.Schema.const("unset").description("unset").description("不返回提示语"),
import_koishi.Schema.string().description("string").description("请在右侧修改提示语").default("正在分析你的运势哦~请稍等~~")
]).description("`签到渲染中`提示语"),
recallCheckin_HintText: import_koishi.Schema.boolean().description("jrys结果发送后,自动撤回`Checkin_HintText`提示语").default(true),
GetOriginalImage_Command_HintText: import_koishi.Schema.union([
import_koishi.Schema.const("1").description("不返回文字提示"),
import_koishi.Schema.const("2").description("返回文字提示,且为图文消息"),
import_koishi.Schema.const("3").description("返回文字提示,且为单独发送的文字消息")
]).role("radio").default("2").description("是否返回获取原图的文字提示。开启后,会发送`获取原图,请发送「原图 ******」`这样的文字提示"),
FortuneProbabilityAdjustmentTable: import_koishi.Schema.array(import_koishi.Schema.object({
Fortune: import_koishi.Schema.string().description("运势种类"),
//.disabled() // disabled时,Probability拉条拉到0 ,会偶现点不下去的情况,反正就是难交互
luckValue: import_koishi.Schema.number().description("种类数值").hidden(),
Probability: import_koishi.Schema.number().role("slider").min(0).max(100).step(1).description("抽取权重")
})).role("table").description("运势抽取概率调节表`权重均为0时使用默认配置项`").default(defaultFortuneProbability),
BackgroundURL: import_koishi.Schema.array(String).description("背景图片,可以写`txt路径(网络图片URL写进txt里)` 或者 `文件夹路径` 或者 `网络图片URL` <br> 建议参考 [emojihub-bili](/market?keyword=emojihub-bili)的图片方法 <br>推荐使用本地图片 以加快渲染速度").role("table").default([
import_node_path.default.join(__dirname, "./../data/backgroundFolder/miao.jpg"),
import_node_path.default.join(__dirname, "./../data/backgroundFolder"),
import_node_path.default.join(__dirname, "./../data/backgroundFolder/魔卡.txt"),
import_node_path.default.join(__dirname, "./../data/backgroundFolder/ba.txt"),
import_node_path.default.join(__dirname, "./../data/backgroundFolder/猫羽雫.txt"),
import_node_path.default.join(__dirname, "./../data/backgroundFolder/miku.txt"),
import_node_path.default.join(__dirname, "./../data/backgroundFolder/白圣女.txt")
//path.join(__dirname, './../data/backgroundFolder/.txt'),
])
}).description("基础设置"),
import_koishi.Schema.object({
screenshotquality: import_koishi.Schema.number().role("slider").min(0).max(100).step(1).default(50).description("设置图片压缩质量(%)"),
HTML_setting: import_koishi.Schema.object({
UserNameColor: import_koishi.Schema.string().default("rgba(255,255,255,1)").role("color").description("用户名称的颜色").hidden(),
//.hidden(), 暂时用不到了
MaskColor: import_koishi.Schema.string().default("rgba(0,0,0,0.5)").role("color").description("`蒙版`的颜色"),
Maskblurs: import_koishi.Schema.number().role("slider").min(0).max(100).step(1).default(10).description("模版模糊半径"),
HoroscopeTextColor: import_koishi.Schema.string().default("rgba(255,255,255,1)").role("color").description("`运势文字`颜色"),
luckyStarGradientColor: import_koishi.Schema.boolean().description("开启后`运势星星`使用彩色渐变").default(true),
HoroscopeDescriptionTextColor: import_koishi.Schema.string().default("rgba(255,255,255,1)").role("color").description("`运势说明文字`颜色"),
DashedboxThickn: import_koishi.Schema.number().role("slider").min(0).max(20).step(1).default(5).description("`虚线框`的粗细"),
Dashedboxcolor: import_koishi.Schema.string().default("rgba(255, 255, 255, 0.5)").role("color").description("`虚线框`的颜色"),
fontPath: import_koishi.Schema.string().description("`请填写.ttf 字体文件的绝对路径`").default(import_node_path.default.join(__dirname, "./../data/千图马克手写体lite.ttf"))
}).collapse().description("可自定义各种颜色搭配和字体")
}).description("面板调节"),
import_koishi.Schema.object({
markdown_button_mode: import_koishi.Schema.union([
import_koishi.Schema.const("unset").description("取消应用此配置项"),
import_koishi.Schema.const("json").description("json按钮-----------20 群(频道不可用)"),
import_koishi.Schema.const("markdown").description("被动md模板--------2000 DAU / 私域"),
import_koishi.Schema.const("markdown_raw_json").description("被动md模板--------2000 DAU - 原生按钮"),
import_koishi.Schema.const("raw").description("原生md------------10000 DAU"),
import_koishi.Schema.const("raw_jrys").description("原生md-不渲染jrys-----------10000 DAU")
]).role("radio").description("markdown/按钮模式选择").default("unset")
}).description("QQ官方按钮设置"),
import_koishi.Schema.union([
import_koishi.Schema.object({
markdown_button_mode: import_koishi.Schema.const("json").required(),
markdown_button_mode_initiative: import_koishi.Schema.boolean().description("开启后,使用 主动消息 发送markdown。<br>即开启后不带`messageId`发送<br>适用于私域机器人频道使用。私域机器人需要使用`被动md模板、json模板`并且开启此配置项<br>`单独发送按钮功能` 已经不能被新建的官方机器人使用").default(false),
markdown_button_mode_keyboard: import_koishi.Schema.boolean().description("开启后,markdown加上按钮。关闭后,不加按钮内容哦<br>不影响markdown发送,多用于调试功能使用").default(true).experimental().hidden(),
nested: import_koishi.Schema.object({
json_button_template_id: import_koishi.Schema.string().description("模板ID<br>形如 `123456789_1234567890` 的ID编号<br>更多说明,详见[➩项目README](https://github.com/shangxueink/koishi-shangxue-apps/tree/main/plugins/emojihub-bili)").pattern(/^\d+_\d+$/)
}).collapse().description('➢表情包--按钮设置<br>更多说明,详见[➩项目README](https://github.com/shangxueink/koishi-shangxue-apps/tree/main/plugins/emojihub-bili)<hr style="border: 2px solid red"><hr style="border: 2px solid red">')
}),
import_koishi.Schema.object({
markdown_button_mode: import_koishi.Schema.const("markdown").required(),
markdown_button_mode_initiative: import_koishi.Schema.boolean().description("开启后,使用 主动消息 发送markdown。<br>即开启后不带`messageId`发送<br>适用于私域机器人频道使用。私域机器人需要使用`被动md模板、json模板`并且开启此配置项").default(false),
markdown_button_mode_keyboard: import_koishi.Schema.boolean().description("开启后,markdown加上按钮。关闭后,不加按钮内容哦<br>不影响markdown发送,多用于调试功能使用").default(true).experimental(),
QQchannelId: import_koishi.Schema.string().description("`填入QQ频道的频道ID`,将该ID的频道作为中转频道 <br> 频道ID可以用[inspect插件来查看](/market?keyword=inspect) `频道ID应为纯数字`").experimental().pattern(/^\S+$/),
nested: import_koishi.Schema.object({
markdown_button_template_id: import_koishi.Schema.string().description("md模板ID<br>形如 `123456789_1234567890` 的ID编号,发送markdown").pattern(/^\d+_\d+$/),
markdown_button_keyboard_id: import_koishi.Schema.string().description("按钮模板ID<br>形如 `123456789_1234567890` 的ID编号,发送按钮").pattern(/^\d+_\d+$/),
markdown_button_content_table: import_koishi.Schema.array(import_koishi.Schema.object({
raw_parameters: import_koishi.Schema.string().description("原始参数名称"),
replace_parameters: import_koishi.Schema.string().description("替换参数名称")
})).role("table").default([
{
"raw_parameters": "your_markdown_text_1",
"replace_parameters": "表情包来啦!"
},
{
"raw_parameters": "your_markdown_text_2",
"replace_parameters": "这是你的表情包哦😽"
},
{
"raw_parameters": "your_markdown_img",
"replace_parameters": "${img_pxpx}"
},
{
"raw_parameters": "your_markdown_url",
"replace_parameters": "${img_url}"
}
]).description("替换参数映射表<br>本插件会替换模板变量,请在左侧填入模板变量,右侧填入真实变量值。<br>本插件提供的参数有`encodedMessageTime`、`img_pxpx`、`img_url`、`ctx`、`session`、`config`<br>`img_pxpx`会被替换为`img#...px #...px`<br>`img_url`会被替换为`一个链接`,其中img_pxpx参数需要使用`canvas`服务<br>▶比如你可以使用`{{.session.userId}}`,这会被本插件替换为`真实的userId值`,若无匹配变量,则视为文本<br>更多说明,详见[➩项目README](https://github.com/shangxueink/koishi-shangxue-apps/tree/main/plugins/emojihub-bili)")
}).collapse().description('➢表情包--按钮设置<br>更多说明,详见[➩项目README](https://github.com/shangxueink/koishi-shangxue-apps/tree/main/plugins/emojihub-bili)<hr style="border: 2px solid red"><hr style="border: 2px solid red">')
}),
import_koishi.Schema.object({
markdown_button_mode: import_koishi.Schema.const("markdown_raw_json").required(),
markdown_button_mode_initiative: import_koishi.Schema.boolean().description("开启后,使用 主动消息 发送markdown。<br>即开启后不带`messageId`发送<br>适用于私域机器人频道使用。私域机器人需要使用`被动md模板、json模板`并且开启此配置项").hidden().default(false),
markdown_button_mode_keyboard: import_koishi.Schema.boolean().description("开启后,markdown加上按钮。关闭后,不加按钮内容哦<br>不影响markdown发送,多用于调试功能使用").default(true).experimental(),
QQchannelId: import_koishi.Schema.string().description("`填入QQ频道的频道ID`,将该ID的频道作为中转频道 <br> 频道ID可以用[inspect插件来查看](/market?keyword=inspect) `频道ID应为纯数字`").experimental().pattern(/^\S+$/),
nested: import_koishi.Schema.object({
markdown_raw_json_button_template_id: import_koishi.Schema.string().description("md模板ID<br>形如 `123456789_1234567890` 的ID编号,发送markdown").pattern(/^\d+_\d+$/),
markdown_raw_json_button_content_table: import_koishi.Schema.array(import_koishi.Schema.object({
raw_parameters: import_koishi.Schema.string().description("原始参数名称"),
replace_parameters: import_koishi.Schema.string().description("替换参数名称")
})).role("table").default([
{
"raw_parameters": "your_markdown_text_1",
"replace_parameters": "表情包来啦!"
},
{
"raw_parameters": "your_markdown_text_2",
"replace_parameters": "这是你的表情包哦😽"
},
{
"raw_parameters": "your_markdown_img",
"replace_parameters": "${img_pxpx}"
},
{
"raw_parameters": "your_markdown_url",
"replace_parameters": "${img_url}"
}
]).description("替换参数映射表<br>本插件会替换模板变量,请在左侧填入模板变量,右侧填入真实变量值。<br>本插件提供的参数有`encodedMessageTime`、`img_pxpx`、`img_url`、`ctx`、`session`、`config`<br>`img_pxpx`会被替换为`img#...px #...px`<br>`img_url`会被替换为`一个链接`,其中img_pxpx参数需要使用`canvas`服务<br>▶比如你可以使用`{{.session.userId}}`,这会被本插件替换为`真实的userId值`,若无匹配变量,则视为文本<br>更多说明,详见[➩项目README](https://github.com/shangxueink/koishi-shangxue-apps/tree/main/plugins/emojihub-bili)"),
markdown_raw_json_button_keyboard: import_koishi.Schema.string().role("textarea", { rows: [12, 12] }).collapse().default('{\n "rows": [\n {\n "buttons": [\n {\n "render_data": {\n "label": "再来一张😺",\n "style": 2\n },\n "action": {\n "type": 2,\n "permission": {\n "type": 2\n },\n "data": "/${config.command}",\n "enter": true\n }\n },\n {\n "render_data": {\n "label": "查看原图😽",\n "style": 2\n },\n "action": {\n "type": 2,\n "permission": {\n "type": 2\n },\n "data": "/获取原图 ${encodedMessageTime}",\n "enter": true\n }\n }\n ]\n }\n ]\n}').description("实现QQ官方bot的按钮效果<br>在这里填入你的按钮内容,注意保持json格式,推荐在编辑器中编辑好后粘贴进来")
}).collapse().description('➢表情包--按钮设置<br>更多说明,详见[➩项目README](https://github.com/shangxueink/koishi-shangxue-apps/tree/main/plugins/emojihub-bili)<hr style="border: 2px solid red"><hr style="border: 2px solid red">')
}),
import_koishi.Schema.object({
markdown_button_mode: import_koishi.Schema.const("raw").required(),
markdown_button_mode_initiative: import_koishi.Schema.boolean().description("开启后,使用 主动消息 发送markdown。<br>即开启后不带`messageId`发送<br>适用于私域机器人频道使用。私域机器人需要使用`被动md模板、json模板`并且开启此配置项").hidden().default(false),
markdown_button_mode_keyboard: import_koishi.Schema.boolean().description("开启后,markdown加上按钮。关闭后,不加按钮内容哦<br>不影响markdown发送,多用于调试功能使用").default(true).experimental(),
QQchannelId: import_koishi.Schema.string().description("`填入QQ频道的频道ID`,将该ID的频道作为中转频道 <br> 频道ID可以用[inspect插件来查看](/market?keyword=inspect) `频道ID应为纯数字`").experimental().pattern(/^\S+$/),
nested: import_koishi.Schema.object({
raw_markdown_button_content: import_koishi.Schema.string().role("textarea", { rows: [6, 6] }).collapse().default("## **今日运势😺**\n### 😽您今天的运势是:\n").description("实现QQ官方bot的按钮效果,需要`canvas`服务。<br>在这里填入你的markdown内容。本插件会替换形如`{{.xxx}}`或`${xxx}`的参数为`xxx`。<br>本插件提供的参数有`encodedMessageTime`、`img_pxpx`、`img_url`、`ctx`、`session`、`config`<br>`img_pxpx`会被替换为`img#...px #...px`<br>`img_url`会被替换为`一个链接`更多说明,详见[➩项目README](https://github.com/shangxueink/koishi-shangxue-apps/tree/main/plugins/emojihub-bili)"),
raw_markdown_button_keyboard: import_koishi.Schema.string().role("textarea", { rows: [12, 12] }).collapse().default('{\n "rows": [\n {\n "buttons": [\n {\n "render_data": {\n "label": "再来一张😺",\n "style": 2\n },\n "action": {\n "type": 2,\n "permission": {\n "type": 2\n },\n "data": "/${config.command}",\n "enter": true\n }\n },\n {\n "render_data": {\n "label": "查看原图😽",\n "style": 2\n },\n "action": {\n "type": 2,\n "permission": {\n "type": 2\n },\n "data": "/获取原图 ${encodedMessageTime}",\n "enter": true\n }\n }\n ]\n }\n ]\n}').description("实现QQ官方bot的按钮效果<br>在这里填入你的按钮内容,注意保持json格式,推荐在编辑器中编辑好后粘贴进来")
}).collapse().description('➢表情包--按钮设置<br>更多说明,详见[➩项目README](https://github.com/shangxueink/koishi-shangxue-apps/tree/main/plugins/emojihub-bili)<hr style="border: 2px solid red"><hr style="border: 2px solid red">')
}),
import_koishi.Schema.object({
markdown_button_mode: import_koishi.Schema.const("raw_jrys").required(),
markdown_button_mode_initiative: import_koishi.Schema.boolean().description("开启后,使用 主动消息 发送markdown。<br>即开启后不带`messageId`发送<br>适用于私域机器人频道使用。私域机器人需要使用`被动md模板、json模板`并且开启此配置项").hidden().default(false),
markdown_button_mode_keyboard: import_koishi.Schema.boolean().description("开启后,markdown加上按钮。关闭后,不加按钮内容哦<br>不影响markdown发送,多用于调试功能使用").default(true).experimental(),
QQchannelId: import_koishi.Schema.string().description("`填入QQ频道的频道ID`,将该ID的频道作为中转频道 <br> 频道ID可以用[inspect插件来查看](/market?keyword=inspect) `频道ID应为纯数字`").experimental().pattern(/^\S+$/),
nested: import_koishi.Schema.object({
raw_jrys_markdown_button_content: import_koishi.Schema.string().role("textarea", { rows: [6, 6] }).collapse().default("${qqbotatuser}\n您的今日运势为:\n**${dJson.fortuneSummary}**\n${dJson.luckyStar}\n\n> ${dJson.unsignText}\n\n\n> 仅供娱乐|相信科学|请勿迷信").description("实现QQ官方bot的按钮效果,需要`canvas`服务。<br>在这里填入你的markdown内容。本插件会替换形如`{{.xxx}}`或`${xxx}`的参数为`xxx`。<br>本插件提供的参数有`dJson`、`img_pxpx`、`img_url`、`ctx`、`session`、`config`<br>`img_pxpx`会被替换为`img#...px #...px`<br>`img_url`会被替换为`一个链接`更多说明,详见[➩项目README](https://github.com/shangxueink/koishi-shangxue-apps/tree/main/plugins/emojihub-bili)"),
raw_jrys_markdown_button_keyboard: import_koishi.Schema.string().role("textarea", { rows: [12, 12] }).collapse().default('{\n "rows": [\n {\n "buttons": [\n {\n "render_data": {\n "label": "再来一张😺",\n "style": 2\n },\n "action": {\n "type": 2,\n "permission": {\n "type": 2\n },\n "data": "/${config.command}",\n "enter": true\n }\n }\n ]\n }\n ]\n}').description("实现QQ官方bot的按钮效果<br>在这里填入你的按钮内容,注意保持json格式,推荐在编辑器中编辑好后粘贴进来")
}).collapse().description('➢表情包--按钮设置<br>更多说明,详见[➩项目README](https://github.com/shangxueink/koishi-shangxue-apps/tree/main/plugins/emojihub-bili)<hr style="border: 2px solid red"><hr style="border: 2px solid red">')
}),
import_koishi.Schema.object({})
]),
import_koishi.Schema.object({
enablecurrency: import_koishi.Schema.boolean().description("开启后,签到获取货币").default(false),
currency: import_koishi.Schema.string().default("jrysprpr").description("monetary 数据库的 currency 字段名称"),
maintenanceCostPerUnit: import_koishi.Schema.number().role("slider").min(0).max(1e3).step(1).default(100).description("签到获得的货币数量")
}).description("monetary·通用货币设置"),
import_koishi.Schema.object({
retryexecute: import_koishi.Schema.boolean().default(false).description(" `重试机制`。触发`渲染失败`时,是否自动重新执行")
}).description("进阶功能"),
import_koishi.Schema.union([
import_koishi.Schema.object({
retryexecute: import_koishi.Schema.const(true).required(),
maxretrytimes: import_koishi.Schema.number().role("slider").min(0).max(10).step(1).default(1).description("最大的重试次数<br>`0`代表`不重试`")
}),
import_koishi.Schema.object({})
]),
import_koishi.Schema.object({
Repeated_signin_for_different_groups: import_koishi.Schema.boolean().default(false).description("允许同一个用户从不同群组签到"),
consoleinfo: import_koishi.Schema.boolean().default(false).description("日志调试模式`日常使用无需开启`")
}).description("调试功能")
]);
function apply(ctx, config) {
ctx.on("ready", async () => {
const root = import_node_path.default.join(ctx.baseDir, "data", "jrys-prpr");
const jsonFilePath = import_node_path.default.join(root, "OriginalImageURL_data.json");
let cachedFontBase64 = null;
const retryCounts = {};
if (!import_node_fs.default.existsSync(root)) {
import_node_fs.default.mkdirSync(root, { recursive: true });
}
if (!import_node_fs.default.existsSync(jsonFilePath)) {
import_node_fs.default.writeFileSync(jsonFilePath, JSON.stringify([]));
}
ctx.model.extend("jrysprprdata", {
userid: "string",
// 用户ID唯一标识
channelId: "string",
// 频道ID
lastSignIn: "string"
// 最后签到日期
}, {
primary: ["userid", "channelId"]
});
ctx.i18n.define("zh-CN", {
commands: {
[config.command]: {
description: "查看今日运势",
messages: {
Getbackgroundimage: "获取原图,请发送:{0}",
CurrencyGetbackgroundimage: "签到成功!获得点数: {0}\n获取原图,请发送:{1}",
CurrencyGetbackgroundimagesplit: "签到成功!获得点数: {0}",
hasSignedInTodaysplit: "今天已经签到过了,不再获得货币。",
hasSignedInToday: "今天已经签到过了,不再获得货币。\n获取原图,请发送:{0}"
}
},
[config.command2]: {
description: "获取运势原图",
messages: {
Inputerror: "请回复一张运势图,或者输入运势图的消息ID 以获取原图哦~",
QQInputerror: "请输入运势图的消息ID以获取原图哦~",
FetchIDfailed: "未能提取到消息ID,请确认回复的消息是否正确。",
aleadyFetchID: "该消息背景已被获取过啦~ 我已经忘掉了~找不到咯",
Failedtogetpictures: "获取运势图原图失败,请稍后再试"
}
}
}
});
if (config.GetOriginalImageCommand) {
ctx.command(`${config.command2} <InputmessageId:text>`, { authority: 1 }).alias("获取原图").action(async ({ session }, InputmessageId) => {
try {
const isQQPlatform = session.platform === "qq";
const hasReplyContent = !!session.quote?.content;
if (!hasReplyContent && !isQQPlatform && !InputmessageId) {
return session.text(".Inputerror");
}
if (isQQPlatform && !InputmessageId) {
return session.text(".QQInputerror");
}
const messageId = hasReplyContent ? session.quote.messageId : InputmessageId;
logInfo(`尝试获取背景图:
${messageId}`);
if (!messageId) {
return session.text(".FetchIDfailed");
}
const originalImageURL = await getOriginalImageURL(messageId);
logInfo(`运势背景原图链接:
${originalImageURL}`);
if (originalImageURL) {
const sendsuccess = await session.send(import_koishi.h.image(originalImageURL));
if (config.autocleanjson && sendsuccess) {
await deleteImageRecord(messageId, originalImageURL);
}
return;
} else if (config.autocleanjson) {
return session.text(".aleadyFetchID");
} else {
return session.text(".FetchIDfailed");
}
} catch (error) {
ctx.logger.error("获取运势图原图时出错: ", error);
return session.text(".Failedtogetpictures");
}
});
}
ctx.command(`${config.command}`, { authority: 1 }).userFields(["id"]).option("split", "-s 以图文输出今日运势").action(async ({ session, options }) => {
let hasSignedInToday = await alreadySignedInToday(ctx, session.userId, session.channelId);
retryCounts[session.userId] = retryCounts[session.userId] || 0;
let Checkin_HintText_messageid;
let backgroundImage = getRandomBackground(config);
let BackgroundURL = backgroundImage.replace(/\\/g, "/");
let imageBuffer;
const dJson = await getJrys(session);
if (options.split) {
if (config.Checkin_HintText) {
Checkin_HintText_messageid = await session.send(config.Checkin_HintText);
}
let textjrys = `
${dJson.fortuneSummary}
${dJson.luckyStar}
${dJson.signText}
${dJson.unsignText}
`;
let enablecurrencymessage;
if (config.enablecurrency) {
if (hasSignedInToday) {
enablecurrencymessage = import_koishi.h.text(session.text(".hasSignedInTodaysplit"));
} else {
enablecurrencymessage = import_koishi.h.text(session.text(".CurrencyGetbackgroundimagesplit", [config.maintenanceCostPerUnit]));
}
}
let backgroundImage2 = getRandomBackground(config);
let BackgroundURL2 = backgroundImage2.replace(/\\/g, "/");
let BackgroundURL_base64 = await convertToBase64image(BackgroundURL2);
let message = [
import_koishi.h.image(BackgroundURL_base64),
import_koishi.h.text(textjrys),
enablecurrencymessage
];
if (config.enablecurrency && !hasSignedInToday) {
await updateUserCurrency(session.user.id, config.maintenanceCostPerUnit);
}
await recordSignIn(ctx, session.userId, session.channelId);
await session.send(message);
if (Checkin_HintText_messageid && config.recallCheckin_HintText) {
await session.bot.deleteMessage(session.channelId, Checkin_HintText_messageid);
}
return;
}
if (config.Checkin_HintText) {
Checkin_HintText_messageid = await session.send(config.Checkin_HintText);
}
let page;
try {
if (config.markdown_button_mode !== "raw_jrys") {
page = await ctx.puppeteer.page();
await page.setViewport({ width: 1080, height: 1920 });
let BackgroundURL_base64 = await convertToBase64image(BackgroundURL);
logInfo(config.HTML_setting.fontPath);
if (!cachedFontBase64) {
cachedFontBase64 = await getFontBase64(config.HTML_setting.fontPath);
}
const fontBase64 = cachedFontBase64;
let insertHTMLuseravatar = session.event.user.avatar;
let luckyStarHTML = `
.lucky-star {
font-size: 60px;
margin-bottom: 10px;
}
`;
if (config.HTML_setting.luckyStarGradientColor) {
luckyStarHTML = `
.lucky-star {
font-size: 60px;
margin-bottom: 10px;
background: linear-gradient(to right,
#fcb5b5,
#fcd6ae,
#fde8a6,
#c3f7b1,
#aed6fa,
#c4aff5,
#f1afcc);
-webkit-background-clip: text;
background-clip: text;
color: transparent;
}
`;
}
const formattedDate = await getFormattedDate();
let HTMLsource = `
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>运势卡片</title>
<style>
@font-face {
font-family: "千图马克手写体lite";
src: url('data:font/ttf;base64,${fontBase64}') format('truetype');
}
body, html {
height: 100%;
margin: 0;
overflow: hidden;
font-family: "千图马克手写体lite";
}
.background {
background-image: url('${BackgroundURL_base64}');
background-size: cover;
background-position: center;
position: relative;
width: 1080px;
height: 1920px;
}
.overlay {
position: absolute;
bottom: 0;
left: 0;
width: 100%;
min-height: 1%;
background-color: ${config.HTML_setting.MaskColor};
backdrop-filter: blur(${config.HTML_setting.Maskblurs}px);
border-radius: 20px 20px 0 0;
overflow: visible;
}
.user-info {
display: flex;
align-items: center;
padding: 10px 20px;
position: relative;
}
.user-avatar {
width: 120px;
height: 120px;
border-radius: 60px;
background-image: url('${insertHTMLuseravatar}');
background-size: cover;
background-position: center;
margin-left: 20px;
position: absolute;
top: 40px;
}
.username {
margin-left: 10px;
color: ${config.HTML_setting.UserNameColor};
font-size: 50px;
padding-top: 28px;
}
.fortune-info1 {
display: flex;
color: ${config.HTML_setting.HoroscopeTextColor};
flex-direction: column;
align-items: center;
position: relative;
width: 100%;
justify-content: center; /* 居中 */
margin-top: 0px; /* 上边距 */
}
.fortune-info1 > * {
margin: 10px; /* 元素之间的间距 */
}
.fortune-info2 {
color: ${config.HTML_setting.HoroscopeDescriptionTextColor};
padding: 0 20px;
margin-top: 40px;
}
.lucky-star, .sign-text, .unsign-text {
margin-bottom: 12px;
font-size: 42px;
}
.fortune-summary {
font