加入斗鱼开播下播提醒

This commit is contained in:
liuwei
2026-01-22 17:51:08 +08:00
parent 81d843aff2
commit 093d489e66

View File

@@ -143,10 +143,8 @@ class DouyuPlugin(MessagePluginInterface):
content = str(message.get("content", "")).strip()
if not content:
return False
for cmd in self._commands:
if content.startswith(cmd):
return True
return False
first_token = content.split()[0]
return first_token in self._commands
@plugin_stats_decorator(plugin_name="斗鱼直播")
async def process_message(self, message: Dict[str, Any]) -> Tuple[bool, Optional[str]]:
@@ -157,7 +155,16 @@ class DouyuPlugin(MessagePluginInterface):
self.bot: WechatAPIClient = message.get("bot")
if roomid and gbm.get_group_permission(roomid, self.feature) == PermissionStatus.DISABLED:
return False, "没有权限"
if content.startswith("斗鱼订阅"):
first_token = content.split()[0]
if content == "斗鱼订阅列表":
rooms = self.redis_manager.list_group_rooms(roomid or sender)
if not rooms:
await self.bot.send_text_message(roomid or sender, "暂无订阅", sender)
return True, "暂无订阅"
text = "当前订阅的斗鱼房间:\n" + "\n".join(rooms)
await self.bot.send_text_message(roomid or sender, text, sender)
return True, "列表已发送"
if first_token == "斗鱼订阅":
parts = content.split()
if len(parts) < 2:
await self.bot.send_text_message(roomid or sender, "请提供房间号,例如:订阅斗鱼 7718843", sender)
@@ -166,7 +173,7 @@ class DouyuPlugin(MessagePluginInterface):
ok = self.redis_manager.add_group_room(roomid or sender, room_id)
await self.bot.send_text_message(roomid or sender, f"✅ 已订阅斗鱼房间 {room_id}", sender)
return True, "订阅成功" if ok else "订阅失败"
if content.startswith("取消斗鱼订阅"):
if first_token == "取消斗鱼订阅":
parts = content.split()
if len(parts) < 2:
await self.bot.send_text_message(roomid or sender, "请提供房间号,例如:取消订阅斗鱼 7718843", sender)
@@ -175,14 +182,6 @@ class DouyuPlugin(MessagePluginInterface):
ok = self.redis_manager.remove_group_room(roomid or sender, room_id)
await self.bot.send_text_message(roomid or sender, f"✅ 已取消订阅斗鱼房间 {room_id}", sender)
return True, "取消成功" if ok else "取消失败"
if content.startswith("斗鱼订阅列表"):
rooms = self.redis_manager.list_group_rooms(roomid or sender)
if not rooms:
await self.bot.send_text_message(roomid or sender, "暂无订阅", sender)
return True, "暂无订阅"
text = "当前订阅的斗鱼房间:\n" + "\n".join(rooms)
await self.bot.send_text_message(roomid or sender, text, sender)
return True, "列表已发送"
return False, None
async def _scheduled_check_job(self):