diff --git a/NapCatRobotClient/NapCatRobotClient.API/Controllers/EntryController.cs b/NapCatRobotClient/NapCatRobotClient.API/Controllers/EntryController.cs
index 33f9724..1b0e8bc 100644
--- a/NapCatRobotClient/NapCatRobotClient.API/Controllers/EntryController.cs
+++ b/NapCatRobotClient/NapCatRobotClient.API/Controllers/EntryController.cs
@@ -14,6 +14,10 @@ namespace NapCatRobotClient.API.Controllers
_dispatcherService = dispatcherService;
}
+ ///
+ /// ½ÓÊÕÏûÏ¢Èë¿Ú
+ ///
+ ///
[HttpPost]
public async Task Post()
{
diff --git a/NapCatRobotClient/NapCatRobotClient.API/appsettings.json b/NapCatRobotClient/NapCatRobotClient.API/appsettings.json
index b2b9a09..f2b26c8 100644
--- a/NapCatRobotClient/NapCatRobotClient.API/appsettings.json
+++ b/NapCatRobotClient/NapCatRobotClient.API/appsettings.json
@@ -16,6 +16,135 @@
"SendApiUrl": "http://192.168.142.133:3000",
"AccessToken": "123456",
"RobotQQ": "3902582794",
+ "XiaoXiaoRobotQQ": "3889001741",
"XiuXianGroupId": "705807264"
+ },
+ "丹方": {
+ "ç神å¤ä¸¸": "é…æ–¹ä¸»è¯ä¸‰å°¾é£Žå¶1è¯å¼•è¡€è©æ1è¾…è¯æ··å…ƒæžœ1丹炉寒é“铸心炉\r\né…æ–¹ä¸»è¯å†°çµç„°è‰1è¯å¼•诱妖è‰1è¾…è¯æ··å…ƒæžœ1丹炉寒é“铸心炉",
+ "易ç‹ä¸¹": "é…æ–¹ä¸»è¯ä¸‰å°¾é£Žå¶1è¯å¼•è¡€è©æ1è¾…è¯å¤©å‰‘笋1丹炉寒é“铸心炉\r\né…æ–¹ä¸»è¯å†°çµç„°è‰1è¯å¼•诱妖è‰1è¾…è¯å¤©å‰‘笋1丹炉寒é“铸心炉",
+ "é™ç¦…é”丸": "é…æ–¹ä¸»è¯å…«è§’玄冰è‰1è¯å¼•芒焰果1è¾…è¯è¡€çŽ‰ç«¹1丹炉寒é“铸心炉\r\né…æ–¹ä¸»è¯å¥‡èŒ¸é€šå¤©èŠ1è¯å¼•é—®é“花1è¾…è¯è¡€çŽ‰ç«¹1丹炉寒é“铸心炉\r\né…æ–¹ä¸»è¯åœ°å¿ƒæ·¬çµä¹³1è¯å¼•å®å¿ƒè‰1è¾…è¯è¡€çŽ‰ç«¹1丹炉寒é“铸心炉",
+ "化煞é”丸": "é…æ–¹ä¸»è¯è¡€èŽ²ç²¾1è¯å¼•血莲精1è¾…è¯çŸ³é¾™èŠ®1丹炉寒é“铸心炉",
+ "养气丹": "é…æ–¹ä¸»è¯è¡€èŽ²ç²¾1è¯å¼•æ’心è‰1è¾…è¯è¡€èŽ²ç²¾1丹炉寒é“铸心炉",
+ "ç´ å¿ƒçœŸä¸¸": "é…æ–¹ä¸»è¯é›ªçŽ‰éª¨å‚1è¯å¼•穿心莲1è¾…è¯ä¼´å¦–è‰1丹炉寒é“铸心炉\r\né…æ–¹ä¸»è¯è…骨çµèб1è¯å¼•龙鳞果1è¾…è¯ä¼´å¦–è‰1丹炉寒é“铸心炉",
+ "地仙玄丸": "é…æ–¹ä¸»è¯æª€èŠ’ä¹å¶èб1è¯å¼•浩淼水藤1è¾…è¯ç‹¼æ¡ƒ1丹炉寒é“铸心炉\r\né…æ–¹ä¸»è¯åŽæ°´çŽ„å†°æžœ1è¯å¼•é“蕴花1è¾…è¯ç‹¼æ¡ƒ1丹炉寒é“铸心炉",
+ "天尘丹": "é…æ–¹ä¸»è¯åœ°å¿ƒæ·¬çµä¹³1è¯å¼•å®å¿ƒè‰1è¾…è¯å…«è§’玄冰è‰1丹炉寒é“铸心炉",
+ "é‡‘ä»™é€ åŒ–ä¸¹": "é…æ–¹ä¸»è¯ç¦»ç«æ¢§æ¡èŠ7è¯å¼•å®å¿ƒè‰1è¾…è¯å¤ªä¹™ç¢§èŽ¹èŠ±7丹炉寒é“铸心炉\r\n\r\nç¦»ç«æ¢§æ¡èŠ=尘磊岩麟果,è¯å¼•=ä»»æ„æ€§å¹³,太乙碧莹花=森檀木=炼心èŠ=é‡å…ƒæ¢è¡€è‰",
+ "创世丹": "é…æ–¹ä¸»è¯ç¦»ç«æ¢§æ¡èŠ5è¯å¼•å®å¿ƒè‰1è¾…è¯å¤ªä¹™ç¢§èŽ¹èŠ±5丹炉寒é“铸心炉\r\n\r\nç¦»ç«æ¢§æ¡èŠ=尘磊岩麟果,è¯å¼•=ä»»æ„æ€§å¹³,太乙碧莹花=森檀木=炼心èŠ=é‡å…ƒæ¢è¡€è‰",
+ "太乙炼髓丹": "é…æ–¹ä¸»è¯å‰‘é„竹笋3è¯å¼•鬼é¢èб3è¾…è¯å¤ªä¹™ç¢§èŽ¹èŠ±3丹炉寒é“铸心炉\r\né…æ–¹ä¸»è¯å‰‘é„竹笋3è¯å¼•炼心èŠ3è¾…è¯å¤ªä¹™ç¢§èŽ¹èŠ±3丹炉寒é“铸心炉\r\né…æ–¹ä¸»è¯æ˜Žå¿ƒé—®é“æžœ3è¯å¼•é‡å…ƒæ¢è¡€è‰3è¾…è¯å¤ªä¹™ç¢§èŽ¹èŠ±3丹炉寒é“铸心炉\r\né…æ–¹ä¸»è¯æ˜Žå¿ƒé—®é“æžœ3è¯å¼•æ¢§æ¡æœ¨3è¾…è¯å¤ªä¹™ç¢§èŽ¹èŠ±3丹炉寒é“铸心炉",
+ "混沌丹": "é…æ–¹ä¸»è¯ç¦»ç«æ¢§æ¡èŠ4è¯å¼•å®å¿ƒè‰1è¾…è¯å¤ªä¹™ç¢§èŽ¹èŠ±4丹炉寒é“铸心炉",
+ "æžå“混沌丹": "é…æ–¹ä¸»è¯ç¦»ç«æ¢§æ¡èŠ5è¯å¼•å®å¿ƒè‰1è¾…è¯é˜´é˜³é»„泉花9丹炉寒é“铸心炉\r\n\r\nç¦»ç«æ¢§æ¡èŠ=尘磊岩麟果,è¯å¼•=ä»»æ„æ€§å¹³,阴阳黄泉花=厉é‚è¡€ç€",
+ "太上玄门丹": "é…æ–¹ä¸»è¯å‰‘é„竹笋1è¯å¼•鬼é¢èб1è¾…è¯å¤ªä¹™ç¢§èŽ¹èŠ±1丹炉寒é“铸心炉\r\né…æ–¹ä¸»è¯å‰‘é„竹笋1è¯å¼•炼心èŠ1è¾…è¯å¤ªä¹™ç¢§èŽ¹èŠ±1丹炉寒é“铸心炉\r\né…æ–¹ä¸»è¯æ˜Žå¿ƒé—®é“æžœ1è¯å¼•é‡å…ƒæ¢è¡€è‰1è¾…è¯å¤ªä¹™ç¢§èŽ¹èŠ±1丹炉寒é“铸心炉",
+ "é‡‘ä»™ç ´åŽ„ä¸¹": "é…æ–¹ä¸»è¯å‰‘é„竹笋2è¯å¼•鬼é¢èб2è¾…è¯å¤ªä¹™ç¢§èŽ¹èŠ±2丹炉寒é“铸心炉\r\né…æ–¹ä¸»è¯å‰‘é„竹笋2è¯å¼•炼心èŠ2è¾…è¯å¤ªä¹™ç¢§èŽ¹èŠ±2丹炉寒é“铸心炉",
+ "太清玉液丹": "é…æ–¹ä¸»è¯å°˜ç£Šå²©éºŸæžœ20è¯å¼•å®å¿ƒè‰1è¾…è¯åœ°é¾™å¹²20丹炉寒é“铸心炉\r\né…æ–¹ä¸»è¯å‰‘é„竹笋20è¯å¼•鬼é¢èб20è¾…è¯åœ°é¾™å¹²20丹炉寒é“铸心炉\r\né…æ–¹ä¸»è¯å‰‘é„竹笋20è¯å¼•炼心èŠ20è¾…è¯åœ°é¾™å¹²20丹炉寒é“铸心炉\r\né…æ–¹ä¸»è¯æ˜Žå¿ƒé—®é“æžœ20è¯å¼•é‡å…ƒæ¢è¡€è‰20è¾…è¯åœ°é¾™å¹²20丹炉寒é“铸心炉\r\né…æ–¹ä¸»è¯å‰‘æ˜Žå¿ƒé—®é“æžœ20è¯å¼•æ¢§æ¡æœ¨20è¾…è¯åœ°é¾™å¹²20丹炉寒é“铸心炉\r\n\r\nè¾…è¯åœ°é¾™å¹²=龙须藤=鬼é¢èб=æ¢§æ¡æœ¨",
+ "è©æè¯é“丹": "é…æ–¹ä¸»è¯å‰‘é„竹笋10è¯å¼•鬼é¢èб10è¾…è¯å¤ªä¹™ç¢§èŽ¹èŠ±10丹炉寒é“铸心炉\r\né…æ–¹ä¸»è¯å‰‘é„竹笋10è¯å¼•炼心èŠ10è¾…è¯å¤ªä¹™ç¢§èŽ¹èŠ±10丹炉寒é“铸心炉\r\né…æ–¹ä¸»è¯æ˜Žå¿ƒé—®é“æžœ10è¯å¼•é‡å…ƒæ¢è¡€è‰10è¾…è¯å¤ªä¹™ç¢§èŽ¹èŠ±10丹炉寒é“铸心炉\r\né…æ–¹ä¸»è¯æ˜Žå¿ƒé—®é“æžœ10è¯å¼•æ¢§æ¡æœ¨10è¾…è¯å¤ªä¹™ç¢§èŽ¹èŠ±10丹炉寒é“铸心炉\r\né…æ–¹ä¸»è¯å°˜ç£Šå²©éºŸæžœ10è¯å¼•å®å¿ƒè‰1è¾…è¯å¤ªä¹™ç¢§èŽ¹èŠ±10丹炉寒é“铸心炉\r\n\r\nç¦»ç«æ¢§æ¡èŠ=尘磊岩麟果,è¯å¼•=ä»»æ„æ€§å¹³,太乙碧莹花=森檀木=炼心èŠ=é‡å…ƒæ¢è¡€è‰",
+ "大é“归一丹": "é…æ–¹ä¸»è¯å‰‘é„竹笋8è¯å¼•鬼é¢èб8è¾…è¯å¤ªä¹™ç¢§èŽ¹èŠ±8丹炉寒é“铸心炉\r\né…æ–¹ä¸»è¯å‰‘é„竹笋8è¯å¼•炼心èŠ8è¾…è¯å¤ªä¹™ç¢§èŽ¹èŠ±8丹炉寒é“铸心炉\r\né…æ–¹ä¸»è¯æ˜Žå¿ƒé—®é“æžœ8è¯å¼•é‡å…ƒæ¢è¡€è‰8è¾…è¯å¤ªä¹™ç¢§èŽ¹èŠ±8丹炉寒é“铸心炉\r\né…æ–¹ä¸»è¯æ˜Žå¿ƒé—®é“æžœ8è¯å¼•æ¢§æ¡æœ¨8è¾…è¯å¤ªä¹™ç¢§èŽ¹èŠ±8丹炉寒é“铸心炉\r\n\r\nè¾…è¯å¤ªä¹™ç¢§èŽ¹èŠ±=森檀木=炼心èŠ=é‡å…ƒæ¢è¡€è‰",
+ "ä¹å¤©è•´ä»™ä¸¹": "é…æ–¹ä¸»è¯å‰‘é„竹笋6è¯å¼•鬼é¢èб6è¾…è¯å¤ªä¹™ç¢§èŽ¹èŠ±6丹炉寒é“铸心炉\r\né…æ–¹ä¸»è¯å‰‘é„竹笋6è¯å¼•炼心èŠ6è¾…è¯å¤ªä¹™ç¢§èŽ¹èŠ±6丹炉寒é“铸心炉\r\né…æ–¹ä¸»è¯æ˜Žå¿ƒé—®é“æžœ6è¯å¼•é‡å…ƒæ¢è¡€è‰6è¾…è¯å¤ªä¹™ç¢§èŽ¹èŠ±6丹炉寒é“铸心炉\r\né…æ–¹ä¸»è¯æ˜Žå¿ƒé—®é“æžœ6è¯å¼•æ¢§æ¡æœ¨6è¾…è¯å¤ªä¹™ç¢§èŽ¹èŠ±6丹炉寒é“铸心炉\r\n\r\nè¾…è¯å¤ªä¹™ç¢§èŽ¹èŠ±=森檀木=炼心èŠ=é‡å…ƒæ¢è¡€è‰",
+ "æžå“创世丹": "é…æ–¹ä¸»è¯å‰‘é„竹笋6è¯å¼•鬼é¢èб6è¾…è¯é˜´é˜³é»„泉花11丹炉寒é“铸心炉\r\né…æ–¹ä¸»è¯å‰‘é„竹笋6è¯å¼•炼心èŠ6è¾…è¯é˜´é˜³é»„泉花11丹炉寒é“铸心炉\r\né…æ–¹ä¸»è¯æ˜Žå¿ƒé—®é“æžœ6è¯å¼•é‡å…ƒæ¢è¡€è‰6è¾…è¯é˜´é˜³é»„泉花11丹炉寒é“铸心炉\r\né…æ–¹ä¸»è¯æ˜Žå¿ƒé—®é“æžœ6è¯å¼•æ¢§æ¡æœ¨6è¾…è¯é˜´é˜³é»„泉花11丹炉寒é“铸心炉",
+ "渡劫仙丹": "é…æ–¹ä¸»è¯ç¦»ç«æ¢§æ¡èŠ9è¯å¼•石龙芮4è¾…è¯æ£®æª€æœ¨9丹炉寒é“铸心炉"
+ },
+ "猜æˆè¯": {
+ "🚶ðŸŽðŸ‘€ðŸŒ¸": "走马观花",
+ "💧ðŸ¾ðŸ”¥ðŸ¥µ": "æ°´æ·±ç«çƒ",
+ "😞🌸ðŸ˜ðŸ‘§ðŸ»": "æ„眉苦脸",
+ "🌬ï¸ðŸŒ¶ï¸âï¸ðŸŽ¤": "广‹‰å¼¹å”±",
+ "🦩ðŸ§ðŸ”👨": "鹤立鸡群",
+ "🕸ï¸ðŸ‘ï¸ðŸŸðŸš¢": "望眼欲穿",
+ "👩â€ðŸŽ¨ðŸðŸ¦¢ðŸ¾": "画蛇添足",
+ "ðŸƒðŸšŒðŸ‘ŒðŸ²": "å¶å…¬å¥½é¾™",
+ "🌸ðŸðŸ¯ðŸ¥„": "花里胡哨",
+ "â¤ï¸ðŸ¤”ðŸ…ðŸŠ": "心想事æˆ",
+ "🌪ï¸ðŸ¼ðŸŒŠðŸ³": "风平浪é™",
+ "ðŸšðŸ‘´â•👦": "è¿”è€è¿˜ç«¥",
+ "🆘🧑📞😀": "助人为ä¹",
+ "ðŸŠðŸŸðŸ”ªðŸ‘¨": "æ¶è¯ä¼¤äºº",
+ "🛀ðŸ»ðŸ˜âŒðŸ’¦": "æ¬²å“æ— 泪",
+ "🥃💧🚗💴": "æ¯æ°´è½¦è–ª",
+ "ðŸµðŸšâŒðŸ¤”": "茶é¥ä¸æ€",
+ "👨⛰ï¸ðŸ‘¨ðŸŒŠ": "人山人海",
+ "🤚🤖👨": "白手起家",
+ "ðŸ·ðŸ‘«ðŸ¶ðŸ‘‰": "猪朋狗å‹",
+ "7ï¸âƒ£ðŸ‘†8ï¸âƒ£ðŸ‘‡": "七上八下",
+ "🔪â›ï¸ðŸ”¥ðŸŒ±": "刀耕ç«ç§",
+ "✉ï¸ðŸ…🥚🥚": "信誓旦旦",
+ "âœï¸ðŸðŸ‘‡ðŸ¦¶": "画蛇添足",
+ "💩🈚💰ðŸ": "岿— å‰ä¾‹",
+ "🤤ðŸðŸ¦ðŸ”’": "æµç¦»å¤±æ‰€",
+ "😔ðŸŸðŸ‚🦢": "沉鱼è½é›",
+ "😄ðŸðŸ±ðŸ”ª": "笑里è—刀",
+ "👗ðŸ‰ðŸ’ƒâœ‹": "ç¾¤é¾™æ— é¦–",
+ "👗ðŸ‰ðŸˆšâœ‹": "ç¾¤é¾™æ— é¦–",
+ "â¤ï¸ðŸ’¡ðŸ‘£ðŸ“£": "心照ä¸å®£",
+ "🌫ï¸ðŸðŸ‘€ðŸŒ·": "雾里看花",
+ "â›°ï¸ðŸšªðŸŒŠ": "山盟海誓",
+ "ðŸ…🌊📞": "四海为家",
+ "ðŸ“ðŸ•ðŸšðŸŒ": "鸡犬å‡å¤©",
+ "ðŸºðŸš¬4ï¸âƒ£ðŸ›«": "狼烟四起",
+ "🦱😵👀🌀": "头晕眼花",
+ "🎹🧒1⃣🈴": "情投æ„åˆ",
+ "🔫🌲💣🌧ï¸": "枪林弹雨",
+ "🤨👀📠💑": "çœ‰ç›®ä¼ æƒ…",
+ "🈯ðŸƒðŸ¤¬ðŸŒ³": "指桑骂æ§",
+ "ðŸŽðŸ‘†ðŸ»ðŸ•¸ï¸ðŸš¶": "礼尚往æ¥",
+ "ðŸ±ðŸ™…🉑👄": "妙ä¸å¯è¨€",
+ "🧑ðŸ‘â˜ðŸˆ¯": "首屈一指",
+ "ðŸ‘🗣ðŸ¤â˜¯": "能说会é“",
+ "📱ðŸ’🔗🪵": "移花接木",
+ "🗣ðŸ‹â¤ï¸ðŸ¦’": "è¯é‡å¿ƒé•¿",
+ "😲🌥👋🌎": "惊天动地",
+ "🙅ðŸ»â€â™€ï¸ðŸ’ªðŸ¦”🦶": "ä¸åèµæ•™",
+ "🥶🌪ï¸ðŸ¦”": "寒风刺骨",
+ "😣ðŸ¤ðŸ”ðŸ–ðŸ»": "痛心疾首",
+ "ðŸ’ðŸ‘🌙â•": "花好月圆",
+ "ðŸŸðŸðŸ¹ðŸ’ª": "渔ç¿ä¹‹åˆ©",
+ "ðŸ‘🚶ðŸ¯ðŸ‘„": "羊入虎å£",
+ "â›°ðŸ–ï¸ðŸŠðŸ‘¨": "三五æˆç¾¤",
+ "👄🧱ðŸðŸ§": "唇枪舌战",
+ "ðŸ–👆🔆ðŸ·": "掌上明ç ",
+ "🌊🥀🪨😖": "海枯石烂",
+ "🕳ï¸ðŸ 🌺🕯": "洞房花烛",
+ "🌿🌑🌺🌕": "柳暗花明",
+ "🥃ðŸ½ï¸ðŸºðŸ“•": "æ¯ç›˜ç‹¼è—‰",
+ "👺👹👻👾": "妖é”鬼怪",
+ "🈚💵🇿👶": "æ— ä»·ä¹‹å®",
+ "🥇ðŸŽðŸš¿ðŸ–ðŸ»": "金盆洗手",
+ "👶ðŸðŸ‘¹â¤ï¸": "人é¢å…½å¿ƒ",
+ "🎉🌥ðŸ®ðŸŒŽ": "欢天喜地",
+ "🥴➕1ï¸âƒ£ðŸ’¡": "ç½ªåŠ ä¸€ç‰",
+ "🧑👼👫💩": "人神共愤",
+ "💑ðŸ”🌹🔥": "喜上眉梢",
+ "ðŸ–🌸👨🚪": "五花八门",
+ "ðŸ‰1ï¸âƒ£ðŸ”🧳": "å¾—æ„忘形",
+ "🔪🛶⚽⚔": "刻舟求剑",
+ "ðŸ½ðŸšªðŸ‘ˆâ˜¯": "æ—门左é“",
+ "ðŸ”ï¸ðŸ›ðŸ’§âž–": "山釿°´å¤",
+ "🌪🌂🥂👨": "é£Žé›¨äº¤åŠ ",
+ "🧑📣ðŸ²â™¨": "人声鼎沸",
+ "ðŸðŸ“±ðŸŽµðŸ§£": "阳奉阴è¿",
+ "ðŸŠðŸ ðŸðŸƒ": "æˆå®¶ç«‹ä¸š",
+ "ðŸ´â¤ï¸ðŸ‘ŸðŸ’ª": "é½å¿ƒå力",
+ "☀ï¸â¬‡ï¸ðŸ‰ðŸ”": "æ—¥è½è¥¿å±±",
+ "â„ï¸ðŸŒ§ï¸âï¸ðŸŒªï¸": "血雨腥风",
+ "📖💰💃🚗": "å¦å¯Œäº”车",
+ "👄👄📷📠": "å£å£ç›¸ä¼ ",
+ "ðŸ»ðŸˆ¶ðŸŠðŸŽ‹": "胸有æˆç«¹",
+ "ðŸŸðŸŽµðŸŒ€ðŸŒ¾": "余音绕æ¢",
+ "1ï¸âƒ£ðŸ•¸ï¸ðŸˆšï¸ðŸ’°": "ä¸€å¾€æ— å‰",
+ "📢ðŸœðŸ””ðŸ‰": "å…«é¢ç޲ç‘",
+ "ðŸðŸ”🆘👨": "èˆå·±æ•‘人",
+ "👂👀": "耳目一新",
+ "ðŸŠðŸ ⬇ï¸ðŸ¦": "沉鱼è½é›",
+ "ðŸ¤ðŸ³ðŸ¥©ðŸ’ƒ": "心惊肉跳",
+ "👚💉🚀☃ï¸": "一针è§è¡€",
+ "ðŸ’🌸🧶🛕": "借花献佛",
+ "ðŸŠðŸ‘—🎀✔ï¸": "æˆç¾¤ç»“队",
+ "â˜ï¸ï¸ðŸ‘ðŸ»ðŸ”🈴": "一æ‹å³åˆ",
+ "ðŸâ™£ðŸŽ‹ðŸŽ": "é’æ¢…竹马",
+ "🚬👦👂👀": "掩人耳目",
+ "🌾💊😣👄": "良è¯è‹¦å£",
+ "🚴ðŸ…😞👇": "骑虎难下",
+ "âŒðŸ‘€ðŸ˜ðŸ¤”": "ä¸å ªè®¾æƒ³",
+ "ðŸºðŸ€": "乿»ä¸€ç”Ÿ",
+ "😲ðŸ¹ðŸ‡¿ðŸ¦": "惊弓之鸟",
+ "ðŸ“✈ï¸ðŸ¥šðŸ¤›": "鸡飞蛋打"
}
}
diff --git a/NapCatRobotClient/NapCatRobotClient.Core/RobotAPI/RobotAPI.cs b/NapCatRobotClient/NapCatRobotClient.Core/RobotAPI/RobotAPI.cs
index 465278e..c5dd606 100644
--- a/NapCatRobotClient/NapCatRobotClient.Core/RobotAPI/RobotAPI.cs
+++ b/NapCatRobotClient/NapCatRobotClient.Core/RobotAPI/RobotAPI.cs
@@ -23,7 +23,6 @@ namespace NapCatRobotClient.Core.RobotAPI
.WithHeader("Content-Type", "application/json;charset=utf-8")
.PostStringAsync(parameters)
.ReceiveString();
- Console.WriteLine($"{DateTime.Now} 请求地å€:{url} 请求结果:{response}");
return response;
}
}
diff --git a/NapCatRobotClient/NapCatRobotClient.Service/Group/Service/GroupService.cs b/NapCatRobotClient/NapCatRobotClient.Service/Group/Service/GroupService.cs
index 5bf724a..9b2b1ff 100644
--- a/NapCatRobotClient/NapCatRobotClient.Service/Group/Service/GroupService.cs
+++ b/NapCatRobotClient/NapCatRobotClient.Service/Group/Service/GroupService.cs
@@ -22,7 +22,15 @@ namespace NapCatRobotClient.Service.Group.Service
_ = InertOrUpdateGoodsInfoProcess.ProcessGroupRequest(groupId, message);
- _= LingTianProcess.ProcessGroupRequest(groupId, message);
+ _ = LingTianProcess.ProcessGroupRequest(groupId, message);
+
+ _ = ChineseIdiomsProcess.ProcessGroupRequest(groupId, message);
+
+ _ = GoodsUpShopProcess.ProcessGroupRequest(groupId, message);
+
+ _ = MiJingNotifyProcess.ProcessGroupRequest(groupId, message);
+
+ _ = ImmortalElixirProcess.ProcessGroupRequest(groupId, message);
}
return await Task.FromResult(true);
diff --git a/NapCatRobotClient/NapCatRobotClient.Service/Group/TextProcess/ChineseIdiomsProcess.cs b/NapCatRobotClient/NapCatRobotClient.Service/Group/TextProcess/ChineseIdiomsProcess.cs
new file mode 100644
index 0000000..81f322f
--- /dev/null
+++ b/NapCatRobotClient/NapCatRobotClient.Service/Group/TextProcess/ChineseIdiomsProcess.cs
@@ -0,0 +1,76 @@
+using Furion.Logging;
+using NapCatRobotClient.Core.RobotAPI.Dto.Request;
+
+namespace NapCatRobotClient.Service.Group.TextProcess
+{
+ ///
+ /// 猜æˆè¯
+ ///
+ public class ChineseIdiomsProcess
+ {
+ ///
+ /// 处ç†ç¾¤æ¶ˆæ¯
+ ///
+ ///
+ ///
+ public static async Task ProcessGroupRequest(string groupId, string message)
+ {
+ try
+ {
+ JObject json = JObject.Parse(message);
+ string groupMsg = JArray.Parse(json["message"].ToString()).FirstOrDefault(o => o["type"].ToString() == "text"
+ && !string.IsNullOrWhiteSpace(o["data"]["text"].ToString()) && (o["data"]["text"].ToString().Contains("è¦é“å‹çœ‹è¡¨æƒ…猜æˆè¯")))?["data"]?["text"]?.ToString();
+ if (string.IsNullOrWhiteSpace(groupMsg)) return false;
+
+ string pattern = @"题目:(.+)";
+ Match match = Regex.Match(groupMsg, pattern);
+ if (match.Success)
+ {
+ string emojiString = match.Groups[1].Value.Trim();
+ Dictionary dict = App.GetConfig>("猜æˆè¯");
+ if (dict?.Count > 0)
+ {
+ foreach (var item in dict)
+ {
+ if (emojiString.Contains(item.Key))
+ {
+ GroupSendMessageRequest request = new()
+ {
+ GroupId = groupId,
+ Message = new()
+ {
+ new MessageItem()
+ {
+ Type = "reply",
+ Data = new()
+ {
+ Id = json["message_id"].ToString()
+ }
+ },
+ new MessageItem()
+ {
+ Type = "text",
+ Data = new()
+ {
+ Text = item.Value
+ }
+ },
+ }
+ };
+ await RobotAPI.SendGroupText(request);
+ break;
+ }
+ }
+ }
+ }
+
+ }
+ catch (Exception ex)
+ {
+ Log.Error($@"{DateTime.Now:yyyy-MM-dd HH:mm:ss} 猜æˆè¯ å‘生异常,异常信æ¯ï¼š{ex.Message}ï¼Œå¼‚å¸¸å †æ ˆï¼š{ex.StackTrace}", true);
+ }
+ return await Task.FromResult(true);
+ }
+
+ }
+}
diff --git a/NapCatRobotClient/NapCatRobotClient.Service/Group/TextProcess/GoodsUpShopProcess.cs b/NapCatRobotClient/NapCatRobotClient.Service/Group/TextProcess/GoodsUpShopProcess.cs
new file mode 100644
index 0000000..f0aaf0c
--- /dev/null
+++ b/NapCatRobotClient/NapCatRobotClient.Service/Group/TextProcess/GoodsUpShopProcess.cs
@@ -0,0 +1,154 @@
+using Furion.Logging;
+using NapCatRobotClient.Core.RobotAPI.Dto.Request;
+
+namespace NapCatRobotClient.Service.Group.TextProcess
+{
+ ///
+ /// åŠå¸‚上架命令
+ ///
+ public class GoodsUpShopProcess
+ {
+ public static async Task ProcessGroupRequest(string groupId, string message)
+ {
+ try
+ {
+ JObject json = JObject.Parse(message);
+ var messageArray = JArray.Parse(json["message"].ToString());
+ string groupMsg = messageArray.FirstOrDefault(o => o["type"].ToString() == "text"
+ && !string.IsNullOrWhiteSpace(o["data"]["text"].ToString()))?["data"]?["text"]?.ToString();
+ if (string.IsNullOrWhiteSpace(groupMsg)) return false;
+
+ // å°å°è¯æèƒŒåŒ…
+ List keyWord = new() { "拥有数é‡", "åŠå¸‚æ•°æ®" };
+ if (keyWord.All(k => groupMsg.Contains(k)))
+ {
+ RedisHelper.Client.Set(json["message_id"].ToString(), groupMsg, 60 * 10);
+ }
+ // 用户查询上架
+ else if (groupMsg.Contains("æŸ¥ä»·æ ¼") || groupMsg.Contains("查上架") && messageArray.Any(o => o["type"].ToString() == "reply"))
+ {
+ string replyId = messageArray.FirstOrDefault(o => o["type"].ToString() == "reply")["data"]["id"].ToString();
+ var goodsStr = RedisHelper.Client.Get(replyId);
+ if (string.IsNullOrEmpty(goodsStr) is false)
+ {
+ bool upCmd = groupMsg.Contains("-f");
+
+ _ = Herbal(groupId, goodsStr, upCmd);
+ }
+ else
+ {
+ GroupSendMessageRequest request = new()
+ {
+ GroupId = groupId,
+ Message = new()
+ {
+ new MessageItem()
+ {
+ Type = "text",
+ Data = new()
+ {
+ Text = "没有查询到缓å˜,è¯·é‡æ–°è‰¾ç‰¹å°å°æŸ¥è¯æèƒŒåŒ…"
+ }
+ },
+ }
+ };
+ await RobotAPI.SendGroupText(request);
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ Log.Error($@"{DateTime.Now:yyyy-MM-dd HH:mm:ss} åŠå¸‚上架命令 å‘生异常,异常信æ¯ï¼š{ex.Message}ï¼Œå¼‚å¸¸å †æ ˆï¼š{ex.StackTrace}", true);
+
+ }
+ return await Task.FromResult(true);
+ }
+
+ private static async Task Herbal(string groupId, string text, bool upCmd)
+ {
+ List results = [];
+ var lines = text.Split(new[] { '\n', '\r' }, StringSplitOptions.RemoveEmptyEntries);
+ foreach (var line in lines)
+ {
+ if (line.StartsWith("å“级:"))
+ {
+ _ = line.Substring("å“级:".Length).Trim();
+ }
+ else if (line.StartsWith("åå—:"))
+ {
+ var name = line.Substring("åå—:".Length).Trim();
+ // 找到下一行的数é‡
+ var index = Array.IndexOf(lines, line);
+ if (index + 1 < lines.Length && lines[index + 1].StartsWith("拥有数é‡:"))
+ {
+ var quantityLine = lines[index + 1];
+ var match = Regex.Match(quantityLine, @"拥有数é‡:(\d+)");
+ if (match.Success)
+ {
+ var quantity = match.Groups[1].Value;
+ results.Add(new() { Name = name, Num = Convert.ToInt32(quantity) });
+ }
+ }
+ }
+ }
+
+ string msg = "";
+ decimal totalPrice = 0;
+ decimal fee = 0;
+ // 打å°ç»“æžœ
+ foreach (var item in results)
+ {
+ var current = RedisHelper.Client.HGet(RedisPrefix.GoodsKey, item.Name);
+ if (current is not null)
+ {
+ int num = item.Num.Value > 10 ? 10 : item.Num.Value;
+ decimal nicePrice = current.Price - 100000;
+ totalPrice += Convert.ToDecimal(nicePrice * num);
+
+ fee += Math.Round(Utils.CalculateFee(nicePrice) * num, 0);
+
+ if (upCmd)
+ {
+ msg += $"确认åŠå¸‚上架{item.Name} {(int)current.Price - 100000} {num}|";
+ }
+ else
+ {
+ msg += $"确认åŠå¸‚上架{item.Name} {(int)current.Price - 100000} {num}\n";
+ }
+ }
+ }
+ if (string.IsNullOrWhiteSpace(msg) is false)
+ {
+ if (!upCmd)
+ {
+ msg += "\r\n";
+ msg += "使用å‰è¯·å…ˆ@å°å°æŸ¥çœ‹åŠå¸‚è¯æ,过完一éä»¥èŽ·å–æœ€æ–°ä»·æ ¼\r\n当å‰ä»·æ ¼ä¸ºåŠå¸‚ä»·æ ¼-10w\r\n";
+ msg += $"总价值约:{Utils.FormatNumberToChineseUnit(totalPrice)}\r\n";
+ msg += $"手ç»è´¹çº¦ï¼š{Utils.FormatNumberToChineseUnit(fee)}\r\n";
+ msg += $"到账约:{Utils.FormatNumberToChineseUnit(totalPrice - fee)}";
+ }
+ if (msg[^1] == '|') msg = msg[..^1];
+
+ GroupSendMessageRequest request = new()
+ {
+ GroupId = groupId,
+ Message = new()
+ {
+ new MessageItem()
+ {
+ Type = "text",
+ Data = new()
+ {
+ Text = msg
+ }
+ },
+ }
+ };
+ await RobotAPI.SendGroupText(request);
+ }
+
+ return await Task.FromResult(true);
+ }
+
+ }
+}
diff --git a/NapCatRobotClient/NapCatRobotClient.Service/Group/TextProcess/ImmortalElixirProcess.cs b/NapCatRobotClient/NapCatRobotClient.Service/Group/TextProcess/ImmortalElixirProcess.cs
new file mode 100644
index 0000000..5e97037
--- /dev/null
+++ b/NapCatRobotClient/NapCatRobotClient.Service/Group/TextProcess/ImmortalElixirProcess.cs
@@ -0,0 +1,75 @@
+using Furion.Logging;
+using NapCatRobotClient.Core.RobotAPI.Dto.Request;
+
+namespace NapCatRobotClient.Service.Group.TextProcess
+{
+ ///
+ /// 查丹方
+ ///
+ public class ImmortalElixirProcess
+ {
+ ///
+ /// 处ç†ç¾¤æ¶ˆæ¯
+ ///
+ ///
+ ///
+ public static async Task ProcessGroupRequest(string groupId, string message)
+ {
+ try
+ {
+ JObject json = JObject.Parse(message);
+ var messageArray = JArray.Parse(json["message"].ToString());
+ string groupMsg = messageArray.FirstOrDefault(o => o["type"].ToString() == "text"
+ && !string.IsNullOrWhiteSpace(o["data"]["text"].ToString())
+ && o["data"]["text"].ToString().Contains("查丹方")
+ )?["data"]?["text"]?.ToString();
+ if (string.IsNullOrWhiteSpace(groupMsg)) return false;
+
+ var rbotQ = messageArray.FirstOrDefault(o => o["type"].ToString() == "at")?["data"]?["qq"]?.ToString();
+
+ // åˆ¤æ–æ˜¯å¦@了机器人
+ if (rbotQ == App.Configuration["QQConfig:RobotQQ"])
+ {
+ // æå–物å“åç§°
+ var goodsName = groupMsg
+ .Split(' ', StringSplitOptions.RemoveEmptyEntries)
+ .FirstOrDefault(word => word != "查丹方")
+ ?.Replace("查丹方", "")?.Trim();
+
+ if (!string.IsNullOrWhiteSpace(goodsName))
+ {
+ Dictionary dict = App.GetConfig>("丹方");
+ if (dict?.Count > 0)
+ {
+ dict.TryGetValue(goodsName, out string doc);
+ if (string.IsNullOrWhiteSpace(doc) is false)
+ {
+ GroupSendMessageRequest request = new()
+ {
+ GroupId = groupId,
+ Message = new()
+ {
+ new MessageItem()
+ {
+ Type = "text",
+ Data = new()
+ {
+ Text = doc
+ }
+ },
+ }
+ };
+ await RobotAPI.SendGroupText(request);
+ }
+ }
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ Log.Error($@"{DateTime.Now:yyyy-MM-dd HH:mm:ss} 查丹方命令 å‘生异常,异常信æ¯ï¼š{ex.Message}ï¼Œå¼‚å¸¸å †æ ˆï¼š{ex.StackTrace}", true);
+ }
+ return await Task.FromResult(true);
+ }
+ }
+}
diff --git a/NapCatRobotClient/NapCatRobotClient.Service/Group/TextProcess/LingTianProcess.cs b/NapCatRobotClient/NapCatRobotClient.Service/Group/TextProcess/LingTianProcess.cs
index 276849e..13664a4 100644
--- a/NapCatRobotClient/NapCatRobotClient.Service/Group/TextProcess/LingTianProcess.cs
+++ b/NapCatRobotClient/NapCatRobotClient.Service/Group/TextProcess/LingTianProcess.cs
@@ -3,6 +3,9 @@ using NapCatRobotClient.Core.RobotAPI.Dto.Request;
namespace NapCatRobotClient.Service.Group.TextProcess
{
+ ///
+ /// çµç”°ç»“ç®—
+ ///
public class LingTianProcess
{
///
diff --git a/NapCatRobotClient/NapCatRobotClient.Service/Group/TextProcess/MiJingNotifyProcess.cs b/NapCatRobotClient/NapCatRobotClient.Service/Group/TextProcess/MiJingNotifyProcess.cs
new file mode 100644
index 0000000..f88a368
--- /dev/null
+++ b/NapCatRobotClient/NapCatRobotClient.Service/Group/TextProcess/MiJingNotifyProcess.cs
@@ -0,0 +1,100 @@
+using Furion.Logging;
+using NapCatRobotClient.Core.RobotAPI.Dto.Request;
+using System.Globalization;
+
+namespace NapCatRobotClient.Service.Group.TextProcess
+{
+ ///
+ /// 秘境通知
+ ///
+ public class MiJingNotifyProcess
+ {
+ public static async Task ProcessGroupRequest(string groupId, string message)
+ {
+ try
+ {
+ JObject json = JObject.Parse(message);
+ var messageArray = JArray.Parse(json["message"].ToString());
+ string groupMsg = messageArray.FirstOrDefault(o => o["type"].ToString() == "text"
+ && !string.IsNullOrWhiteSpace(o["data"]["text"].ToString())
+ && (o["data"]["text"].ToString().Contains("进入秘境:") || o["data"]["text"].ToString().Contains("é“å‹å·²è¸å…¥ï¼š"))
+ )?["data"]?["text"]?.ToString();
+ if (string.IsNullOrWhiteSpace(groupMsg)) return false;
+
+ var minutes = ParseMinutes(groupMsg);
+ if (minutes > 0)
+ {
+ var atData = messageArray.FirstOrDefault(o => o["type"].ToString() == "at");
+ if (atData is not null)
+ {
+ ScheduleReminder(groupId, atData["data"]["qq"].ToString(), minutes);
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ Log.Error($@"{DateTime.Now:yyyy-MM-dd HH:mm:ss} 秘境结æŸé€šçŸ¥ å‘生异常,异常信æ¯ï¼š{ex.Message}ï¼Œå¼‚å¸¸å †æ ˆï¼š{ex.StackTrace}", true);
+ }
+ return await Task.FromResult(true);
+ }
+
+ private static void ScheduleReminder(string groupId, string userId, double minutes)
+ {
+ DateTime now = DateTime.Now;
+
+ TimeSpan delay = TimeSpan.FromMinutes(minutes);
+
+ Log.Information($@"{now:yyyy-MM-dd HH:mm:ss} {userId} 触å‘秘境通知 {minutes}分钟 ç»“æŸæ—¶é—´: {now.AddMinutes(minutes):yyyy-MM-dd HH:mm:ss}");
+
+ _ = Task.Run(async () =>
+ {
+ await Task.Delay(delay);
+ GroupSendMessageRequest request = new()
+ {
+ GroupId = groupId,
+ Message = new()
+ {
+ new MessageItem()
+ {
+ Type = "text",
+ Data = new()
+ {
+ Text = $"ã€ç§˜å¢ƒç»“算通知】\r\n探索已完æˆï¼Œè¯¥ç»“算奖励了ï¼ï¼ˆ{minutes} 分钟)"
+ }
+ },
+ new MessageItem()
+ {
+ Type = "at",
+ Data = new()
+ {
+ QQ = userId
+ }
+ }
+ }
+ };
+ await RobotAPI.SendGroupText(request);
+ });
+ }
+
+ private static double ParseMinutes(string content)
+ {
+ if (string.IsNullOrWhiteSpace(content)) return 0;
+
+ var match = Regex.Match(content, @"(花费时间|探索耗时)[::]\s*(\d+(?:\.\d+)?)", RegexOptions.Compiled);
+ if (!match.Success)
+ {
+ match = Regex.Match(content, @"(\d+(?:\.\d+)?)", RegexOptions.Compiled);
+ }
+
+ if (match.Success)
+ {
+ if (double.TryParse(match.Groups[2].Value, NumberStyles.Float, CultureInfo.InvariantCulture, out double val))
+ {
+ return (double)val;
+ }
+ }
+
+ return 0;
+ }
+ }
+}