diff --git a/README.md b/README.md index f291c46..c559eee 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # XYBot 微信机器人

- XYBot微信机器人logo + XYBot微信机器人logo

XYBot是一个可运行于Linux和Windows的基于Hook的微信机器人。😊 具有高度可自定义性,支持自我编写插件。🚀 @@ -21,7 +21,7 @@ XYBot详细的部署教程可以在项目的Wiki中找到。📚 同时,XYBot

GPLv3 License - Version + Version Blog

@@ -97,7 +97,7 @@ ChatGPT ### Linux/Docker ```shell -docker pull henryxiaoyang/xybot:v2.0.0 +docker pull henryxiaoyang/xybot:latest docker run -d --name XYBot \ -e WC_AUTO_RESTART=yes \ @@ -106,7 +106,7 @@ docker run -d --name XYBot \ -v XYBot:/home/app/XYBot/ \ -v XYBot-wechatfiles:/home/app/WeChat\ Files/ \ --tty \ - henryxiaoyang/xybot:v2.0.0 + henryxiaoyang/xybot:latest ``` ### Windows diff --git a/main_config.yml b/main_config.yml index 764a6ce..ca33a87 100644 --- a/main_config.yml +++ b/main_config.yml @@ -1,5 +1,5 @@ -#Version v2.2.0 -bot_version: "v2.2.0" +#Version v2.2.1 +bot_version: "v2.2.1" # XYBot主设置 diff --git a/plugins/command/food_selector.py b/plugins/command/food_selector.py new file mode 100644 index 0000000..f5cdf3a --- /dev/null +++ b/plugins/command/food_selector.py @@ -0,0 +1,39 @@ +from loguru import logger +from wcferry import client +from utils.plugin_interface import PluginInterface +from wcferry_helper import XYBotWxMsg +import random +import yaml + +class food_selector(PluginInterface): + def __init__(self): + config_path = "plugins/command/food_selector.yml" + with open(config_path, "r", encoding="utf-8") as f: + config = yaml.safe_load(f.read()) + + self.food_options = config["food_options"] + self.command_format_menu = config["command_format_menu"] + + async def run(self, bot: client.Wcf, recv: XYBotWxMsg): + selected_food = random.choice(self.food_options) + message = ( + f"-----XYBot-----\n" + f"🍽️随机选择的外卖品种是:{selected_food}\n\n" + f"💝温馨提示:\n" + f"🌟 记得吃饭要细嚼慢咽哦\n" + f"🌟 工作再忙也要按时吃饭\n" + f"🌟 注意营养均衡,保重身体\n" + f"祝您用餐愉快!😊" + ) + + await self.send_friend_or_group(bot, recv, message) + logger.info(f"[食物选择] wxid: {recv.sender} | 选择结果: {selected_food}") + + async def send_friend_or_group(self, bot: client.Wcf, recv: XYBotWxMsg, out_message="null"): + if recv.from_group(): + out_message = f"@{recv.sender}\n{out_message}" + logger.info(f'[发送@信息]{out_message}| [发送到] {recv.roomid}') + bot.send_text(out_message, recv.roomid, recv.sender) + else: + logger.info(f'[发送信息]{out_message}| [发送到] {recv.roomid}') + bot.send_text(out_message, recv.roomid) diff --git a/plugins/command/food_selector.yml b/plugins/command/food_selector.yml new file mode 100644 index 0000000..b81c73b --- /dev/null +++ b/plugins/command/food_selector.yml @@ -0,0 +1,53 @@ +keywords: ["选外卖"] +plugin_name: "food_selector" + +command_format_menu: "🍽️选择外卖品种:\n选外卖\n示例:选外卖" + +food_options: + - "宫保鸡丁饭" + - "麻婆豆腐饭" + - "红烧肉饭" + - "糖醋里脊饭" + - "鱼香肉丝饭" + - "回锅肉饭" + - "黄焖鸡米饭" + - "卤肉饭" + - "叉烧饭" + - "烤肉拌饭" + - "干炒牛河" + - "扬州炒饭" + - "披萨" + - "寿司套餐" + - "汉堡套餐" + - "意大利肉酱面" + - "奶油蘑菇意面" + - "泰式打抛猪肉饭" + - "泰式咖喱鸡饭" + - "印度咖喱鸡饭" + - "印度烤肉饭" + - "韩式石锅拌饭" + - "韩式烤肉饭" + - "日式天妇罗盖饭" + - "日式炸猪排饭" + - "越南牛肉河粉" + - "墨西哥卷饼套餐" + - "烤肉饭" + - "麻辣香锅" + - "水煮鱼饭" + - "酸菜鱼饭" + - "铁板牛肉饭" + - "三杯鸡饭" + - "辣子鸡饭" + - "葱爆羊肉饭" + - "蒜苔炒肉饭" + - "青椒肉丝饭" + - "土豆烧牛肉饭" + - "酱爆茄子饭" + - "尖椒炒牛肉饭" + - "蔬菜色拉" + - "米线" + - "味千拉面" + - "寿喜锅" + - "麻辣烫" + - "拌将" + - "毛血旺" diff --git a/plugins/command/lucky_draw.yml b/plugins/command/lucky_draw.yml index 06b695d..213d45e 100644 --- a/plugins/command/lucky_draw.yml +++ b/plugins/command/lucky_draw.yml @@ -1,7 +1,7 @@ keywords: [ "抽奖","积分抽奖" ] plugin_name: "lucky_draw" -command_format_menu: "⚙️抽筋:\n抽奖 小|中|大 次数" +command_format_menu: "⚙️抽奖:\n抽奖 小|中|大 次数" max_draw: 100 diff --git a/plugins/command/menu.yml b/plugins/command/menu.yml index 9d5b872..374c00f 100644 --- a/plugins/command/menu.yml +++ b/plugins/command/menu.yml @@ -1,14 +1,15 @@ keywords: [ "菜单", "menu", "cd" ] plugin_name: "menu" -main_menu: "-----XYBot菜单------\n实用功能⚙️\n1.1 获取天气\n1.2 获取新闻\n1.3 ChatGPT\n1.4 AI绘图\n1.5 战争雷霆玩家查询\n\n娱乐功能🔥\n2.1 随机图图\n2.2 随机链接\n2.3 五子棋\n\n积分功能💰\n3.1 签到\n3.2 查询积分\n3.3 积分榜\n3.4 积分转送\n3.5 积分抽奖\n3.6 积分红包\n\n🔧管理员功能\n4.1 管理员菜单\n\n获取菜单指令格式: 菜单 编号\n例如:菜单 1.1" +main_menu: "-----XYBot菜单------\n实用功能⚙️\n1.1 获取天气\n1.2 获取新闻\n1.3 ChatGPT\n1.4 AI绘图\n1.5 战争雷霆玩家查询\n1.6 选外卖\n\n娱乐功能🔥\n2.1 随机图图\n2.2 随机链接\n2.3 五子棋\n\n积分功能💰\n3.1 签到\n3.2 查询积分\n3.3 积分榜\n3.4 积分转送\n3.5 积分抽奖\n3.6 积分红包\n\n🔧管理员功能\n4.1 管理员菜单\n\n获取菜单指令格式: 菜单 编号\n例如:菜单 1.1" menus: { "1.1": "-----XYBot菜单------\n1.1: 获取最新全球实时天气🌧️\n指令:获取天气 城市", "1.2": "-----XYBot菜单------\n1.2: 获取最新头条新闻📰\n指令: 新闻", "1.3": "-----XYBot菜单------\n1.3: 在微信中用ChatGPT🤖️\n(支持私聊)\n\n⚙️ChatGPT3.5指令:\ngpt3 问题\n⚠️注意!扣除3点积分!⚠️\n\n⚙️ChatGPT4指令:\ngpt4 问题\n⚠️注意!扣除10点积分!⚠️\n❗️请注意GPT4价格贵,请勿滥用!❗️\n\n在设置中开启私聊 ChatGPT 后,可以在机器人私信直接问问题,不需要指令,还支持上下文关联!🎉", "1.4": "-----XYBot菜单------\n1.4: AI绘图,让AI画画!✍️\n指令:AI绘图 描述\n如:AI绘图 像素风,一只可爱的猫在草地上玩耍", - "1.5": "-----XYBot菜单------\n1.6:查询战争雷霆玩家信息!🛩️\n\n⚙️指令:战雷查询 玩家名字", + "1.5": "-----XYBot菜单------\n1.5:查询战争雷霆玩家信息!🛩️\n\n⚙️指令:战雷查询 玩家名字", + "1.6": "-----XYBot菜单------\n1.6: 选外卖\n\n不知道今天吃什么?\n🍽随机一个外卖吧!\n\n⚙️指令:\n选外卖", "2.1": "-----XYBot菜单------\n2.1: 随机一个二次元图片!\n指令:随机图图", "2.2": "-----XYBot菜单------\n2.2: 更隐蔽的随机图图!\n指令:随机链接", "2.3": "-----XYBot菜单------\n2.3: 在群聊中下五子棋!🎉\n\n⚙️邀请朋友下棋:\n五子棋 邀请 @你的朋友\n如:五子棋 邀请 @XYBot\n\n⚙️接受来自群友的邀请:\n五子棋 接受 五子棋游戏id\n如:五子棋 接受 ABC123\n⚠️五子棋游戏id在邀请时会显示\n\n⚙️在棋盘上落子:\n五子棋 下棋 横坐标纵坐标\n⚠️横坐标与纵坐标在棋盘上会显示,先字母,再数字\n如:五子棋 下棋 C5", @@ -23,7 +24,8 @@ menus: { "新闻": "-----XYBot菜单------\n1.2: 获取最新头条新闻📰\n指令: 新闻", "chatgpt": "-----XYBot菜单------\n1.3: 在微信中用ChatGPT🤖️\n(支持私聊)\n\n⚙️ChatGPT3.5指令:\ngpt3 问题\n⚠️注意!扣除3点积分!⚠️\n\n⚙️ChatGPT4指令:\ngpt4 问题\n⚠️注意!扣除10点积分!⚠️\n❗️请注意GPT4价格贵,请勿滥用!❗️\n\n在设置中开启私聊 ChatGPT 后,可以在机器人私信直接问问题,不需要指令,还支持上下文关联!🎉", "AI绘图": "-----XYBot菜单------\n1.4: AI绘图,让AI画画!✍️\n指令:AI绘图 描述\n如:AI绘图 像素风,一只可爱的猫在草地上玩耍", - "战争雷霆玩家查询": "-----XYBot菜单------\n1.6:查询战争雷霆玩家信息!🛩️\n\n⚙️指令:战雷查询 玩家名字", + "战争雷霆玩家查询": "-----XYBot菜单------\n1.5:查询战争雷霆玩家信息!🛩️\n\n⚙️指令:战雷查询 玩家名字", + "选外卖": "-----XYBot菜单------\n1.6: 选外卖\n\n不知道今天吃什么?\n🍽随机一个外卖吧!\n\n⚙️指令:\n选外卖", "随机图图": "-----XYBot菜单------\n2.1: 随机一个二次元图片!\n指令:随机图图", "随机链接": "-----XYBot菜单------\n2.2: 更隐蔽的随机图图!\n指令:随机链接", "五子棋": "-----XYBot菜单------\n2.3: 在群聊中下五子棋!🎉\n\n⚙️邀请朋友下棋:\n五子棋 邀请 @你的朋友\n如:五子棋 邀请 @XYBot\n\n⚙️接受来自群友的邀请:\n五子棋 接受 五子棋游戏id\n如:五子棋 接受 ABC123\n⚠️五子棋游戏id在邀请时会显示\n\n⚙️在棋盘上落子:\n五子棋 下棋 横坐标纵坐标\n⚠️横坐标与纵坐标在棋盘上会显示,先字母,再数字\n如:五子棋 下棋 C5", diff --git a/plugins/text/private_chatgpt.py b/plugins/text/private_chatgpt.py index 9f5bb63..7528830 100644 --- a/plugins/text/private_chatgpt.py +++ b/plugins/text/private_chatgpt.py @@ -62,6 +62,9 @@ async def run(self, bot: client.Wcf, recv: XYBotWxMsg): if gpt_request_message.startswith("我是"): # 微信打招呼消息,不需要处理 return + if wxid == "weixin": # 微信系统消息, 不处理 + return + error = '' if self.db.get_points(wxid) < self.private_chat_gpt_price and wxid not in self.admins and not self.db.get_whitelist(wxid): # 积分不够 error = f"您的积分不足 {self.private_chat_gpt_price} 点,无法使用私聊GPT功能!⚠️" diff --git a/resources/XYBotLogo.svg b/resources/XYBotLogo.svg deleted file mode 100644 index 5525991..0000000 --- a/resources/XYBotLogo.svg +++ /dev/null @@ -1,133 +0,0 @@ - - - - - -