mirror of
https://github.com/zhenxun-org/zhenxun_bot.git
synced 2025-12-15 06:12:53 +08:00
update bilibili_sub
This commit is contained in:
parent
1bb9b2cb3f
commit
97317ed2c6
11
README.md
11
README.md
@ -243,6 +243,15 @@ __Docker 最新版本由 [Sakuracio](https://github.com/Sakuracio) 提供__
|
|||||||
|
|
||||||
## 更新
|
## 更新
|
||||||
|
|
||||||
|
### 2022/7/13
|
||||||
|
|
||||||
|
* B站订阅提供配置项`LIVE_MSG_AT_ALL`,`UP_MSG_AT_ALL`:控制UP动态投稿和直播是否AT全体
|
||||||
|
|
||||||
|
### 2022/7/9
|
||||||
|
|
||||||
|
* 修改了Omega图库检测的数据库文件名
|
||||||
|
* game_utils提供了Game类
|
||||||
|
|
||||||
### 2022/7/4
|
### 2022/7/4
|
||||||
|
|
||||||
* 修复商品未设置限购时无法购买
|
* 修复商品未设置限购时无法购买
|
||||||
@ -550,7 +559,7 @@ __Docker 最新版本由 [Sakuracio](https://github.com/Sakuracio) 提供__
|
|||||||
* 修复点歌无法正确发送
|
* 修复点歌无法正确发送
|
||||||
* 修复我有一个朋友有时文本会包含CQ码
|
* 修复我有一个朋友有时文本会包含CQ码
|
||||||
* 修复群欢消息被动控制文本未删除 [@pull/124](https://github.com/HibiKier/zhenxun_bot/pull/124)
|
* 修复群欢消息被动控制文本未删除 [@pull/124](https://github.com/HibiKier/zhenxun_bot/pull/124)
|
||||||
* message_builder.image不再提供参数:abspath
|
* message_builder.image不再提供参数:abspath
|
||||||
|
|
||||||
### 2022/2/23
|
### 2022/2/23
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,8 @@
|
|||||||
from nonebot import on_command
|
from nonebot import on_command
|
||||||
from nonebot.typing import T_State
|
from nonebot.typing import T_State
|
||||||
from nonebot.adapters.onebot.v11 import Bot, MessageEvent, GroupMessageEvent, Message
|
from nonebot.adapters.onebot.v11 import Bot, MessageEvent, GroupMessageEvent, Message
|
||||||
|
|
||||||
|
from utils.message_builder import at
|
||||||
from .data_source import (
|
from .data_source import (
|
||||||
add_live_sub,
|
add_live_sub,
|
||||||
delete_sub,
|
delete_sub,
|
||||||
@ -50,7 +52,17 @@ __plugin_configs__ = {
|
|||||||
"value": 5,
|
"value": 5,
|
||||||
"help": "群内bilibili订阅需要管理的权限",
|
"help": "群内bilibili订阅需要管理的权限",
|
||||||
"default_value": 5,
|
"default_value": 5,
|
||||||
}
|
},
|
||||||
|
"LIVE_MSG_AT_ALL": {
|
||||||
|
"value": False,
|
||||||
|
"help": "直播提醒是否AT全体(仅在真寻是管理员时生效)",
|
||||||
|
"default_value": False,
|
||||||
|
},
|
||||||
|
"UP_MSG_AT_ALL": {
|
||||||
|
"value": False,
|
||||||
|
"help": "UP动态投稿提醒是否AT全体(仅在真寻是管理员时生效)",
|
||||||
|
"default_value": False,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
add_sub = on_command("添加订阅", priority=5, block=True)
|
add_sub = on_command("添加订阅", priority=5, block=True)
|
||||||
@ -233,10 +245,22 @@ async def send_sub_msg(rst: str, sub: BilibiliSub, bot: Bot):
|
|||||||
for x in sub.sub_users.split(",")[:-1]:
|
for x in sub.sub_users.split(",")[:-1]:
|
||||||
try:
|
try:
|
||||||
if ":" in x and x.split(":")[1] not in temp_group:
|
if ":" in x and x.split(":")[1] not in temp_group:
|
||||||
temp_group.append(x.split(":")[1])
|
group_id = int(x.split(":")[1])
|
||||||
await bot.send_group_msg(
|
temp_group.append(group_id)
|
||||||
group_id=int(x.split(":")[1]), message=Message(rst)
|
if (
|
||||||
)
|
await bot.get_group_member_info(
|
||||||
|
group_id=group_id, user_id=int(bot.self_id), no_cache=True
|
||||||
|
)
|
||||||
|
)["role"] in ["owner", "admin"]:
|
||||||
|
if (
|
||||||
|
sub.sub_type == "live"
|
||||||
|
and Config.get_config("bilibili_sub", "LIVE_MSG_AT_ALL")
|
||||||
|
) or (
|
||||||
|
sub.sub_type == "up"
|
||||||
|
and Config.get_config("bilibili_sub", "UP_MSG_AT_ALL")
|
||||||
|
):
|
||||||
|
rst = "[CQ:at,qq=all]\n" + rst
|
||||||
|
await bot.send_group_msg(group_id=group_id, message=Message(rst))
|
||||||
else:
|
else:
|
||||||
await bot.send_private_msg(user_id=int(x), message=Message(rst))
|
await bot.send_private_msg(user_id=int(x), message=Message(rst))
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
|||||||
@ -3,6 +3,8 @@ from nonebot.adapters.onebot.v11 import MessageSegment
|
|||||||
|
|
||||||
from utils.manager import resources_manager
|
from utils.manager import resources_manager
|
||||||
from asyncio.exceptions import TimeoutError
|
from asyncio.exceptions import TimeoutError
|
||||||
|
|
||||||
|
from utils.utils import get_bot
|
||||||
from .model import BilibiliSub
|
from .model import BilibiliSub
|
||||||
from bilireq.live import get_room_info_by_id
|
from bilireq.live import get_room_info_by_id
|
||||||
from .utils import get_meta
|
from .utils import get_meta
|
||||||
@ -229,6 +231,7 @@ async def _get_live_status(id_: int) -> Optional[str]:
|
|||||||
await BilibiliSub.update_sub_info(id_, live_status=live_status)
|
await BilibiliSub.update_sub_info(id_, live_status=live_status)
|
||||||
if sub.live_status == 0 and live_status == 1:
|
if sub.live_status == 0 and live_status == 1:
|
||||||
return (
|
return (
|
||||||
|
f""
|
||||||
f"{image(cover)}\n"
|
f"{image(cover)}\n"
|
||||||
f"{sub.uname} 开播啦!\n"
|
f"{sub.uname} 开播啦!\n"
|
||||||
f"标题:{title}\n"
|
f"标题:{title}\n"
|
||||||
|
|||||||
@ -47,9 +47,9 @@ class BilibiliSub(db.Model):
|
|||||||
season_update_time: Optional[datetime] = None,
|
season_update_time: Optional[datetime] = None,
|
||||||
) -> bool:
|
) -> bool:
|
||||||
"""
|
"""
|
||||||
说明:
|
说明:
|
||||||
添加订阅
|
添加订阅
|
||||||
参数:
|
参数:
|
||||||
:param sub_id: 订阅名称,房间号,番剧号等
|
:param sub_id: 订阅名称,房间号,番剧号等
|
||||||
:param sub_type: 订阅类型
|
:param sub_type: 订阅类型
|
||||||
:param sub_user: 订阅此条目的用户
|
:param sub_user: 订阅此条目的用户
|
||||||
@ -110,9 +110,9 @@ class BilibiliSub(db.Model):
|
|||||||
@classmethod
|
@classmethod
|
||||||
async def delete_bilibili_sub(cls, sub_id: int, sub_user: str) -> bool:
|
async def delete_bilibili_sub(cls, sub_id: int, sub_user: str) -> bool:
|
||||||
"""
|
"""
|
||||||
说明:
|
说明:
|
||||||
删除订阅
|
删除订阅
|
||||||
参数:
|
参数:
|
||||||
:param sub_id: 订阅名称
|
:param sub_id: 订阅名称
|
||||||
:param sub_user: 删除此条目的用户
|
:param sub_user: 删除此条目的用户
|
||||||
"""
|
"""
|
||||||
@ -140,9 +140,9 @@ class BilibiliSub(db.Model):
|
|||||||
@classmethod
|
@classmethod
|
||||||
async def get_sub(cls, sub_id: int) -> Optional["BilibiliSub"]:
|
async def get_sub(cls, sub_id: int) -> Optional["BilibiliSub"]:
|
||||||
"""
|
"""
|
||||||
说明:
|
说明:
|
||||||
获取订阅对象
|
获取订阅对象
|
||||||
参数:
|
参数:
|
||||||
:param sub_id: 订阅 id
|
:param sub_id: 订阅 id
|
||||||
"""
|
"""
|
||||||
return await cls.query.where(cls.sub_id == sub_id).gino.first()
|
return await cls.query.where(cls.sub_id == sub_id).gino.first()
|
||||||
@ -173,9 +173,9 @@ class BilibiliSub(db.Model):
|
|||||||
season_update_time: Optional[datetime] = None,
|
season_update_time: Optional[datetime] = None,
|
||||||
) -> bool:
|
) -> bool:
|
||||||
"""
|
"""
|
||||||
说明:
|
说明:
|
||||||
更新订阅信息
|
更新订阅信息
|
||||||
参数:
|
参数:
|
||||||
:param sub_id: 订阅名称,房间号,番剧号等
|
:param sub_id: 订阅名称,房间号,番剧号等
|
||||||
:param live_short_id: 直接短 id
|
:param live_short_id: 直接短 id
|
||||||
:param live_status: 主播开播状态
|
:param live_status: 主播开播状态
|
||||||
@ -232,7 +232,7 @@ class BilibiliSub(db.Model):
|
|||||||
cls,
|
cls,
|
||||||
) -> "List[BilibiliSub], List[BilibiliSub], List[BilibiliSub]":
|
) -> "List[BilibiliSub], List[BilibiliSub], List[BilibiliSub]":
|
||||||
"""
|
"""
|
||||||
说明:
|
说明:
|
||||||
分类获取所有数据
|
分类获取所有数据
|
||||||
"""
|
"""
|
||||||
live_data = []
|
live_data = []
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user