diff --git a/models/emoji_db.py b/models/emoji_db.py index 1b71f1d..536b2c5 100644 --- a/models/emoji_db.py +++ b/models/emoji_db.py @@ -2,15 +2,15 @@ from models.connect_db import connect_db from models.logger import setup_logger logger = setup_logger() -connection = connect_db() -def update_description(emoji_uuid: str, description: str) -> bool: +def update_description(emoji_uuid: str, description: str, connection = connect_db()) -> bool: """ 更新表情包描述词 Args: emoji_uuid: 表情包UUID description: 新的描述词 + connection: 数据库socket Returns: 成功返回True,失败返回False @@ -40,12 +40,13 @@ def update_description(emoji_uuid: str, description: str) -> bool: return False -def check_emoji(uuid: str) -> bool: +def check_emoji(uuid: str, connection = connect_db()) -> bool: """ 检查UUID是否存在于emoji表中 Args: uuid: 要检查的UUID字符串 + connection: 数据库socket Returns: uuid 在数据库中存在则为 True,否则 False @@ -58,10 +59,10 @@ def check_emoji(uuid: str) -> bool: try: with connection.cursor() as cursor: # 执行查询 - sql = "SELECT 1 FROM emoji WHERE uuid = %s LIMIT 1" + sql = "SELECT approved FROM approved WHERE uuid = %s LIMIT 1" cursor.execute(sql, (uuid,)) - # 如果查询到结果则返回True + # 如果查询到结果为1 result = cursor.fetchone() return result is not None @@ -69,6 +70,41 @@ def check_emoji(uuid: str) -> bool: logger.error(f"检查UUID失败: {uuid}, 错误: {e}") return False +def get_emoji_content(uuid: str, content_index: str = 'url', connection = connect_db()) -> tuple | None: + """ + 获取图片信息,检查图片在 approved 库中检索 approved 是否为 1,为 1 则返回获取到的索引内容 + + Args: + uuid: emoji的UUID + content_index: 内容检索索引 + connection: 数据库socket + + Returns: + content: 获取到的内容,比如 url + """ + # 参数验证 + if not uuid or not isinstance(uuid, str): + logger.warning(f"无效的UUID参数: {uuid}") + return None + + try: + with connection.cursor() as cursor: + sql1 = "SELECT approved FROM approved WHERE uuid = %s LIMIT 1" + cursor.execute(sql1, (uuid,)) + + result = cursor.fetchone() + if result['approved'] == 1: + sql2 = f"SELECT {content_index} FROM emoji WHERE uuid = %s LIMIT 1" + cursor.execute(sql2, (uuid,)) + contents = cursor.fetchone() + return contents[content_index] + + return None + + except Exception as e: + logger.error(f"获取失败: {uuid}, 错误: {e}") + return None + if __name__ == "__main__": record = check_emoji("ffe1663c-44e1-4719-a5ba-01485f70a87e") print(record) \ No newline at end of file