mirror of
https://github.com/zhenxun-org/zhenxun_bot.git
synced 2025-12-14 21:52:56 +08:00
feat(ban): 在调用ban列表时主动删除过期数据 (#1997)
* feat(ban): 在调用ban列表时主动删除过期数据 - 除了接收到被ban用户的信息外,现在主动调用`ban列表`命令也会删除过期数据 - 修复 unban 返回信息错误 * refactor(ban): 优化 unban 函数返回值逻辑 - 使用或运算简化返回值判断逻辑 - 移除不必要的字符串转换 * refactor(zhenxun): 优化 unban 函数返回值类型 - 将 unban 函数的返回类型从 tuple[bool, str | None] 改为 tuple[bool, str] - 修改返回值,确保总是返回字符串类型,避免类型检查错误
This commit is contained in:
parent
7719be9866
commit
872d2499a2
@ -65,6 +65,9 @@ class BanManage:
|
|||||||
duration = "∞"
|
duration = "∞"
|
||||||
else:
|
else:
|
||||||
duration = int((data.ban_time + data.duration - time.time()) / 60)
|
duration = int((data.ban_time + data.duration - time.time()) / 60)
|
||||||
|
if isinstance(duration, int) and duration < 0:
|
||||||
|
await data.delete()
|
||||||
|
continue
|
||||||
row_data.append(
|
row_data.append(
|
||||||
[
|
[
|
||||||
data.id,
|
data.id,
|
||||||
@ -111,7 +114,7 @@ class BanManage:
|
|||||||
is_superuser: 是否为超级用户操作
|
is_superuser: 是否为超级用户操作
|
||||||
|
|
||||||
返回:
|
返回:
|
||||||
tuple[bool, str]: 是否unban成功, 群组/用户id或提示
|
tuple[bool, str | Non]: 是否unban成功, 群组/用户id或提示
|
||||||
"""
|
"""
|
||||||
user_level = 9999
|
user_level = 9999
|
||||||
if not is_superuser and user_id and session.id1:
|
if not is_superuser and user_id and session.id1:
|
||||||
@ -123,15 +126,10 @@ class BanManage:
|
|||||||
if ban_data.ban_level > user_level:
|
if ban_data.ban_level > user_level:
|
||||||
return False, "unBan权限等级不足捏..."
|
return False, "unBan权限等级不足捏..."
|
||||||
await ban_data.delete()
|
await ban_data.delete()
|
||||||
return (
|
return True, ban_data.user_id or ban_data.group_id
|
||||||
True,
|
|
||||||
f"用户 {ban_data.user_id}"
|
|
||||||
if ban_data.user_id
|
|
||||||
else f"群组 {ban_data.group_id}",
|
|
||||||
)
|
|
||||||
elif await BanConsole.check_ban_level(user_id, group_id, user_level):
|
elif await BanConsole.check_ban_level(user_id, group_id, user_level):
|
||||||
await BanConsole.unban(user_id, group_id)
|
await BanConsole.unban(user_id, group_id)
|
||||||
return True, f"群组 {group_id}"
|
return True, group_id or ""
|
||||||
return False, "该用户/群组不在黑名单中不足捏..."
|
return False, "该用户/群组不在黑名单中不足捏..."
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
|
|||||||
@ -110,7 +110,7 @@ class BanConsole(Model):
|
|||||||
return -1
|
return -1
|
||||||
_time = time.time() - (user.ban_time + user.duration)
|
_time = time.time() - (user.ban_time + user.duration)
|
||||||
if _time < 0:
|
if _time < 0:
|
||||||
return int(time.time() - user.ban_time - user.duration)
|
return int(abs(_time))
|
||||||
await user.delete()
|
await user.delete()
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user