diff --git a/game_task/game_task_encyclopedia.py b/game_task/game_task_encyclopedia.py index 1205801..13a6e25 100644 --- a/game_task/game_task_encyclopedia.py +++ b/game_task/game_task_encyclopedia.py @@ -30,9 +30,11 @@ def add_group(group_id, player_id): (group_id,) ) conn.commit() - return True # 添加成功 + message = f"🎉 群 {group_id} 已就位,准备开燥!" + return {"message": message, "player_id": player_id} except pymysql.err.IntegrityError: - return True # 已存在也视为成功 + message = f"🌟 群 {group_id} 早就蓄势待发啦!" + return {"message": message, "player_id": player_id} finally: cursor.close() conn.close() @@ -72,13 +74,13 @@ def ensure_game_started(group_id, player_id, player_name="未知玩家"): (player_id, group_id, player_name) ) conn.commit() - return ( - f"🎉 欢迎加入,{player_name}!\n" - f"🌟 已就位\n" - f"🎈 群 {group_id} 等你来玩\n" - f"🌈 快来接任务吧!指令: /t" + message = ( + f"🎉 哇塞,{player_name} 你来啦!\n" + f"🌟 群 {group_id} 瞬间燃爆!\n" + f"🎈 快来接任务,秀翻全场!指令: /t" ) - return None # 已存在则无需额外反馈 + return {"message": message, "player_id": player_id} + return {"message": None, "player_id": player_id} finally: cursor.close() conn.close() @@ -92,20 +94,20 @@ def assign_random_task(group_id, player_id=None): cursor.execute("SELECT player_id, player_name FROM t_encyclopedia_players WHERE group_id = %s", (group_id,)) players = cursor.fetchall() if not players: - return ( - f"😔 哎呀,群 {group_id} 好安静\n" - f"🌟 没有小伙伴加入\n" - f"🎈 快叫朋友来玩吧!" + message = ( + f"😔 哎呀,群 {group_id} 静悄悄\n" + f"🌟 快拉小伙伴来嗨吧!" ) + return {"message": message, "player_id": player_id} if player_id: player_dict = {p['player_id']: p['player_name'] for p in players} if player_id not in player_dict: - return ( - f"😅 嘿,小朋友\n" - f"🌟 ID: {player_id} 还没加入群 {group_id}\n" - f"🎈 用 /s 先报名吧!" + message = ( + f"😅 嘿,{player_id} 你谁啊?\n" + f"🌟 先用 /s 报名,不然没法玩哦!" ) + return {"message": message, "player_id": player_id} holder_id = player_id holder_name = player_dict[player_id] else: @@ -133,24 +135,23 @@ def assign_random_task(group_id, player_id=None): active_task_id = cursor.fetchone()['active_task_id'] if player_id: - return ( - f"🎁 {holder_name},你的新任务来啦!\n" + message = ( + f"🎁 {holder_name},你的专属任务闪亮登场!\n" f"🎀 任务ID: {active_task_id}\n" f"🎈 问题:[{category}]{question}\n" - # f"🌈 群 {group_id} 等你作答\n" - f"🌼 积分:{score} \n" - f"🌈 作答格式(请手动@机器人):\n @a-bot /a {active_task_id} 答案 " + f"🌼 积分:{score}\n" + f"🌈 快上答案:/a {active_task_id} 答案" ) else: - return ( - f"🎁 新任务来啦!\n" + message = ( + f"🎁 新任务来袭,够不够刺激?\n" f"🎀 任务ID: {active_task_id}\n" - f"🌟 幸运玩家:{holder_name} \n" + f"🌟 幸运鹅:{holder_name}\n" f"🎈 问题:[{category}]{question}\n" - # f"🌈 群 {group_id} 等你抢答\n" - f"🌼 积分:{score} \n" - f"🌈 作答格式(请手动@机器人):\n @a-bot /a {active_task_id} 答案 " + f"🌼 积分:{score}\n" + f"🌈 抢答格式:/a {active_task_id} 答案" ) + return {"message": message, "player_id": holder_id} finally: cursor.close() conn.close() @@ -165,22 +166,21 @@ def submit_answer(group_id, player_id, task_id, answer): (group_id, player_id)) player_row = cursor.fetchone() if not player_row: - return ( - f"😅 嘿,小朋友\n" - f"🌟 ID: {player_id} 还没加入群 {group_id}\n" - f"🎈 用 /s 先报名吧!" + message = ( + f"😅 嘿,{player_id} 你是路人甲吗?\n" + f"🌟 用 /s 先加入群 {group_id} 吧!" ) + return {"message": message, "player_id": player_id} player_name = player_row['player_name'] if not task_id.isdigit(): - return ( - f"😅 哎呀,小调皮\n" - f"🌟 任务ID格式不对哦\n" - f"🎈 应该是纯数字\n" - f"🌈 比如:1\n" - f"🎀 再试一次吧!" + message = ( + f"😅 喂,任务ID得是数字好吗?\n" + f"🌟 比如:1\n" + f"🎈 别瞎搞,重新来!" ) + return {"message": message, "player_id": player_id} active_task_id = int(task_id) @@ -190,18 +190,19 @@ def submit_answer(group_id, player_id, task_id, answer): ) task_data = cursor.fetchone() if not task_data: - return ( - f"😔 哎呀,小伙伴\n" - f"🌼 群 {group_id} 的任务 task_{active_task_id} 不见了\n" - f"🎀 可能已经被抢答或过期啦!" + message = ( + f"😔 哎哟,任务 task_{active_task_id} 不翼而飞啦!\n" + f"🌼 可能被别人抢先一步咯!" ) + return {"message": message, "player_id": player_id} if task_data['status'] == 'completed': - return ( - f"😄 哈哈,太慢啦!\n" - f"🌟 任务 task_{active_task_id} 已完成\n" - f"🎈 群 {group_id} 等你抢新任务哦!" + message = ( + f"😄 哈哈,你慢了一步!\n" + f"🌟 任务 task_{active_task_id} 已经完结\n" + f"🎈 快去抢新任务吧!" ) + return {"message": message, "player_id": player_id} question, correct_answer_db, top_score, holder_id, _ = task_data['question'], task_data['answer'].lower(), \ task_data['score'], task_data['holder_id'], task_data['status'] @@ -227,19 +228,19 @@ def submit_answer(group_id, player_id, task_id, answer): ) if player_id == holder_id: message = ( - f"🎉 {player_name} 太棒啦!\n" + f"🎉 {player_name} 你是天才吗?\n" f"🌟 任务:{question}\n" - f"🎈 答对了,真厉害!\n" + f"🎈 答对啦,简直无敌!\n" f"🌈 奖励:{points} 分\n" - f"🎀 提示:{description}" + f"🎀 彩蛋:{description}" ) else: message = ( - f"🎉 {player_name} 抢答成功!\n" + f"🎉 {player_name} 抢答王上线!\n" f"🌟 任务:{question}\n" - f"🎈 原主:{holder_name}\n" - f"🌈 获得 {points} 分,太棒了!\n" - f"🎀 提示:{description}" + f"🎈 原主:{holder_name} 被你截胡啦!\n" + f"🌈 狂揽 {points} 分,太骚了!\n" + f"🎀 彩蛋:{description}" ) else: cursor.execute( @@ -248,13 +249,13 @@ def submit_answer(group_id, player_id, task_id, answer): ) points = -1 message = ( - f"😅 {player_name} 有点小遗憾!\n" + f"😅 {player_name} 你这是要笑死我吗?\n" f"🌼 任务:{question}\n" f"🎈 你答:{answer}\n" f"🌟 正确答案:{correct_answer_db}\n" - f"🌈 扣 1 分,别灰心!\n" + f"🌈 扣 1 分,别哭哦!\n" f"🎀 提示:{description}\n" - f"🌟 任务ID: {active_task_id} 仍可抢答哦!" + f"🌟 任务ID: {active_task_id} 还能抢救一下!" ) cursor.execute( @@ -263,25 +264,23 @@ def submit_answer(group_id, player_id, task_id, answer): ) conn.commit() - return message + return {"message": message, "player_id": player_id} except ValueError as e: print(f"submit_answer:{e}") - return ( - f"😅 哎呀,小调皮\n" - f"🌟 任务ID格式不对哦\n" - f"🎈 应该是纯数字\n" - f"🌈 比如:1\n" - f"🎀 再试一次吧!" + message = ( + f"😅 喂,任务ID得是数字懂吗?\n" + f"🌟 比如:1\n" + f"🎈 重来,别皮!" ) + return {"message": message, "player_id": player_id} except Exception as e: print(f"submit_answer:{e}") - return ( - f"😅 哎呀,小调皮\n" - f"🌟 任务ID格式不对哦\n" - f"🎈 应该是纯数字\n" - f"🌈 比如:1\n" - f"🎀 再试一次吧!" + message = ( + f"😅 出错了,任务ID得是数字哦!\n" + f"🌟 比如:1\n" + f"🎈 再试一次吧!" ) + return {"message": message, "player_id": player_id} finally: cursor.close() conn.close() @@ -298,15 +297,15 @@ def show_rank(group_id, player_id): ) ranks = cursor.fetchall() if not ranks: - return ( - f"😔 群 {group_id} 好安静\n" - f"🌟 排行榜还没有人\n" - f"🎈 快来一起玩吧!" + message = ( + f"😔 群 {group_id} 冷冷清清\n" + f"🌟 快来一起燥起来吧!" ) - rank_text = f"🎉 群 {group_id} 排行榜(Top 10)\n" + return {"message": message, "player_id": player_id} + rank_text = f"🎉 群 {group_id} 排行榜(Top 10)来啦!\n" for i, row in enumerate(ranks, 1): rank_text += f"🌈 {i}. {row['player_name']}: {row['points']} 分\n" - return rank_text + return {"message": rank_text, "player_id": player_id} finally: cursor.close() conn.close() @@ -325,19 +324,19 @@ def show_active_tasks(group_id, player_id): """, (group_id,)) tasks = cursor.fetchall() if not tasks: - return ( - f"😄 群 {group_id} 现在很平静\n" - f"🌟 没有活跃任务哦\n" - f"🎈 用 /t 拿一个吧!" + message = ( + f"😄 群 {group_id} 现在一片祥和\n" + f"🌟 没任务?快用 /t 搞一个!" ) - task_text = f"🎉 群 {group_id} 当前活跃任务:\n" + return {"message": message, "player_id": player_id} + task_text = f"🎉 群 {group_id} 活跃任务速递:\n" for task in tasks: task_text += ( f"🌈 任务ID: task_{task['active_task_id']}\n" f"🎀 问题:{task['question']}\n" - f"🌼 持有者:{task['player_name']} \n" + f"🌼 大佬:{task['player_name']}\n" ) - return task_text + return {"message": task_text, "player_id": player_id} finally: cursor.close() conn.close() @@ -356,19 +355,19 @@ def list_uncompleted_tasks(group_id, player_id): """, (group_id,)) tasks = cursor.fetchall() if not tasks: - return ( - f"😄 群 {group_id} 任务都完成啦\n" - f"🌟 目前没有未完成任务\n" - f"🎈 用 /t 再来一个吧!" + message = ( + f"😄 群 {group_id} 全员开挂?\n" + f"🌟 没未完成任务,快用 /t 再战!" ) - task_text = f"🎉 群 {group_id} 所有未完成任务列表:\n" + return {"message": message, "player_id": player_id} + task_text = f"🎉 群 {group_id} 未完成任务大曝光:\n" for task in tasks: task_text += ( f"🌈 任务ID: task_{task['active_task_id']}\n" f"🎀 问题:{task['question']}\n" - f"🌼 所属:{task['player_name']}\n" + f"🌼 主人:{task['player_name']}\n" ) - return task_text + return {"message": task_text, "player_id": player_id} finally: cursor.close() conn.close() @@ -378,78 +377,92 @@ def list_uncompleted_tasks(group_id, player_id): def run_random_task_assignment(group_id): current_hour = datetime.now().hour if current_hour >= 23 or current_hour < 9: + message = ( + f"😴 现在 {current_hour}:00,小伙伴们都睡啦\n" + f"🌙 9点到22点再来嗨吧!" + ) print(f"{datetime.now()} 群 {group_id} 当前时间 {current_hour}:00 在23:00-08:00区间,跳过任务发放") - return + return {"message": message, "player_id": None} result = assign_random_task(group_id) - print(f"{datetime.now()} {result}") + print(f"{datetime.now()} {result['message']}") return result # 处理群聊消息 def game_process_message(group_id, player_id, message, player_name="未知玩家"): - # 自动初始化群聊和玩家 - init_message = ensure_game_started(group_id, player_id, player_name) + init_result = ensure_game_started(group_id, player_id, player_name) + init_message = init_result["message"] + player_id = init_result["player_id"] if message == "/s": # 可选:显式加入游戏 - return init_message if init_message else ( - f"😄 你好呀,{player_name}\n" - f"🌼 已加入游戏 {group_id}\n" - f"🎶 快来一起乐呵吧!\n" - f"🌈 指令:/t 获取任务" + if init_message: + return {"message": init_message, "player_id": player_id} + message = ( + f"😄 嘿,{player_name} 你来啦!\n" + f"🌼 已加入群 {group_id} 的狂欢\n" + f"🎶 快用 /t 开干吧!" ) + return {"message": message, "player_id": player_id} elif message == "/ts": # 查看活跃任务 if init_message: - return init_message + "\n🌟 用 /ts 查看当前任务吧!" + message = init_message + "\n🌟 用 /ts 看看当前任务吧!" + return {"message": message, "player_id": player_id} return show_active_tasks(group_id, player_id) elif message == "/l": # 列出未完成任务 if init_message: - return init_message + "\n🌟 用 /l 查看未完成任务吧!" + message = init_message + "\n🌟 用 /l 查未完成任务哦!" + return {"message": message, "player_id": player_id} return list_uncompleted_tasks(group_id, player_id) elif message.startswith("/a"): # 提交答案 if init_message: - return init_message + "\n🌟 用 /a [任务ID] [答案] 提交答案吧!" + message = init_message + "\n🌟 用 /a [任务ID] [答案] 放大招吧!" + return {"message": message, "player_id": player_id} parts = message.split(" ", 2) if len(parts) < 3: - return ( - f"😅 哎呀,小朋友\n" - f"🌟 格式不对哦\n" - f"🎈 正确用法:/a [任务ID] [答案]\n" - f"🌈 例如:/a 1 钒" + message = ( + f"😅 喂,格式不对啊!\n" + f"🌟 正确姿势:/a [任务ID] [答案]\n" + f"🎈 比如:/a 1 钒" ) + return {"message": message, "player_id": player_id} task_id, answer = parts[1], parts[2] return submit_answer(group_id, player_id, task_id, answer) elif message == "/r": # 查看排行榜 if init_message: - return init_message + "\n🌟 用 /r 查看排行榜吧!" + message = init_message + "\n🌟 用 /r 看看谁是大佬!" + return {"message": message, "player_id": player_id} return show_rank(group_id, player_id) elif message == "/ag": # 可选:手动添加群聊 if init_message: - return init_message # 已自动添加 + return {"message": init_message, "player_id": player_id} return add_group(group_id, player_id) elif message == "/t": # 获取任务 if init_message: - return init_message + "\n🌟 已为你准备任务:" + message = init_message + "\n🌟 已为你准备好任务,快接招!" + return {"message": message, "player_id": player_id} current_hour = datetime.now().hour if current_hour >= 23 or current_hour < 9: - return ( - f"😴 现在是 {current_hour}:00\n" - f"🌙 太晚啦,小伙伴们休息中\n" - f"🌞 9点到22点再来玩吧!" + message = ( + f"😴 现在 {current_hour}:00\n" + f"🌙 太晚啦,大家都睡了!\n" + f"🌞 9点到22点再来嗨吧!" ) + return {"message": message, "player_id": player_id} return assign_random_task(group_id, player_id) else: - return ( - f"😄 嘿,小调皮\n" - f"🌟 指令不对哦\n" - f"🎈 可用指令:\n" - f"🌈 /s - 加入游戏(可选)\n" - f"🎀 /ts - 查看活跃任务\n" + message = ( + f"😄 嘿,二货!\n" + f"🌟 指令玩错啦!\n" + f"🎈 快试试这些:\n" + f"🌈 /s - 加入狂欢(可选)\n" + f"🎀 /ts - 看活跃任务\n" f"🌼 /l - 未完成任务\n" f"🌟 /a [任务ID] [答案] - 提交答案\n" - f"🎈 /ag - 添加群聊(可选)\n" - f"🌈 /t - 主动拿任务\n" - f"🎀 /r - 查看排行榜" + f"🎈 /ag - 加群(可选)\n" + f"🌈 /t - 抢任务\n" + f"🎀 /r - 谁是大佬" ) + return {"message": message, "player_id": player_id} # 设置定时任务 diff --git a/message_summary/message_summary_4o.py b/message_summary/message_summary_4o.py index 6a9d3ab..fe7e056 100644 --- a/message_summary/message_summary_4o.py +++ b/message_summary/message_summary_4o.py @@ -52,7 +52,7 @@ def message_summary(content): 自动生成趣味头衔(如“段子王”、“知识达人”、“活跃分子”等)。 【输出模板】 - 「[群名]の[最新日期]群聊总结」 + 「[群名]-[最新日期]群聊总结」 📊 今日数据快报: - 共诞生[消息数]条信息 @@ -82,7 +82,7 @@ def message_summary(content): "[根据今日话题生成的趣味预测]" 【示例输出】 - 「吃货联盟の5.20群聊总结」 + 「吃货联盟-5.20群聊总结」 📊 今日数据快报: - 共诞生428条信息 diff --git a/robot.py b/robot.py index b6fd506..f173792 100644 --- a/robot.py +++ b/robot.py @@ -168,7 +168,11 @@ class Robot(Job): self.LOG.info(f"msg.content:{msg.content}\n game_message: {game_message}") resp = game_process_message(group_id=msg.roomid, player_id=msg.sender, message=game_message, player_name=self.allContacts.get(msg.sender, msg.sender)) - self.sendTextMsg(resp, msg.roomid, msg.sender) + message = resp["message"] + player_id = resp["player_id"] + print(f"消息: {message}") + print(f"玩家ID: {player_id}") + self.sendTextMsg(message, msg.roomid, msg.sender) except Exception as e: self.LOG.error(f"game_message_load error:{e}") return True @@ -280,7 +284,11 @@ class Robot(Job): self.LOG.info(f"msg.content:{msg.content}\n game_message: {msg.content}") resp = game_process_message(group_id=msg.roomid, player_id=msg.sender, message=msg.content, player_name=self.allContacts.get(msg.sender, msg.sender)) - self.sendTextMsg(resp, msg.roomid, msg.sender) + message = resp["message"] + player_id = resp["player_id"] + print(f"消息: {message}") + print(f"玩家ID: {player_id}") + self.sendTextMsg(message, msg.roomid, msg.sender) return except Exception as e: self.LOG.error(f"game_message_load error:{e}") @@ -562,7 +570,11 @@ class Robot(Job): for gid in group_ids: if self.gbm.get_group_permission(gid, Feature.TASK_GAME) == PermissionStatus.ENABLED: rep = run_random_task_assignment(group_id=gid) - self.sendTextMsg(rep, gid) + message = rep["message"] + player_id = rep["player_id"] + print(f"消息: {message}") + print(f"玩家ID: {player_id}") + self.sendTextMsg(message, gid, player_id) except Exception as e: self.LOG.error(f"message_summary_robot error:{e}")