增加对多次禁言的兼容

pull/53/head
UnCLAS-Prommer 2025-07-22 22:10:00 +08:00
parent 7b255269d1
commit 81fa3aa4df
2 changed files with 18 additions and 6 deletions

View File

@ -1,6 +1,6 @@
[project] [project]
name = "MaiBotNapcatAdapter" name = "MaiBotNapcatAdapter"
version = "0.4.5" version = "0.4.6"
description = "A MaiBot adapter for Napcat" description = "A MaiBot adapter for Napcat"
[tool.ruff] [tool.ruff]

View File

@ -123,14 +123,26 @@ class DatabaseManager:
其同时还是简化版的更新方式 其同时还是简化版的更新方式
""" """
with Session(self.engine) as session: with Session(self.engine) as session:
db_record = DB_BanUser( # 检查记录是否已存在
user_id=ban_record.user_id, group_id=ban_record.group_id, lift_time=ban_record.lift_time statement = select(DB_BanUser).where(
DB_BanUser.user_id == ban_record.user_id, DB_BanUser.group_id == ban_record.group_id
) )
session.add(db_record) existing_record = session.exec(statement).first()
if existing_record:
# 如果记录已存在,更新 lift_time
existing_record.lift_time = ban_record.lift_time
session.add(existing_record)
logger.debug(f"更新禁言记录: {ban_record}")
else:
# 如果记录不存在,创建新记录
db_record = DB_BanUser(
user_id=ban_record.user_id, group_id=ban_record.group_id, lift_time=ban_record.lift_time
)
session.add(db_record)
logger.debug(f"创建新禁言记录: {ban_record}")
session.commit() session.commit()
logger.debug(f"创建/更新禁言记录: {ban_record}")
def delete_ban_record(self, ban_record: BanUser) -> bool: def delete_ban_record(self, ban_record: BanUser):
""" """
删除特定用户在特定群组中的禁言记录 删除特定用户在特定群组中的禁言记录
一个简化版本的删除方式防止 update_ban_record 方法的复杂性 一个简化版本的删除方式防止 update_ban_record 方法的复杂性