diff --git a/emoji_reviewer.py b/emoji_reviewer.py index 796cb8ef..96da18ea 100644 --- a/emoji_reviewer.py +++ b/emoji_reviewer.py @@ -25,11 +25,7 @@ except ImportError: # 配置控制台输出格式 logger.remove() # 移除默认的处理器 logger.add(sys.stderr, format="{time:MM-DD HH:mm} | emoji_reviewer | {message}") # 添加控制台输出 - logger.add( - "logs/emoji_reviewer/{time:YYYY-MM-DD}.log", - rotation="00:00", - format="{time:MM-DD HH:mm} | emoji_reviewer | {message}" - ) + logger.add("logs/emoji_reviewer/{time:YYYY-MM-DD}.log", rotation="00:00", format="{time:MM-DD HH:mm} | emoji_reviewer | {message}") logger.warning("检测到src.common.logger并未导入,将使用默认loguru作为日志记录器") logger.warning("如果你是用的是低版本(0.5.13)麦麦,请忽略此警告") # 忽略 gradio 版本警告 @@ -47,8 +43,8 @@ if os.path.exists(bot_config_path): except tomli.TOMLDecodeError as e: logger.critical(f"配置文件bot_config.toml填写有误,请检查第{e.lineno}行第{e.colno}处:{e.msg}") exit(1) - except KeyError: - logger.critical("配置文件bot_config.toml缺少model.embedding设置,请补充后再编辑表情包") + except KeyError as e: + logger.critical(f"配置文件bot_config.toml缺少model.embedding设置,请补充后再编辑表情包") exit(1) else: logger.critical(f"没有找到配置文件{bot_config_path}") @@ -65,7 +61,7 @@ tags = { "blacklist": ("黑名单", "排除"), } format_choices = ["包括", "无"] -formats = ["jpg", "jpeg", "png", "gif", "其它"] +formats = ["jpg", "png", "gif"] def signal_handler(signum, frame): @@ -110,7 +106,7 @@ async def get_embedding(text): return embedding else: return f"网络错误{response.status_code}" - except Exception: + except: return None @@ -137,16 +133,10 @@ def filter_emojis(tag_filters, format_filters): elif value == "排除": e_filtered = [d for d in e_filtered if tag not in d] - if '其它' in format_include: - exclude = [f for f in formats if f not in format_include] - if exclude: - ff = '|'.join(exclude) - compiled_pattern = re.compile(rf"\.({ff})$", re.IGNORECASE) - e_filtered = [d for d in e_filtered if not compiled_pattern.search(d.get("path", ""), re.IGNORECASE)] - else: + if len(format_include) > 0: ff = '|'.join(format_include) - compiled_pattern = re.compile(rf"\.({ff})$", re.IGNORECASE) - e_filtered = [d for d in e_filtered if compiled_pattern.search(d.get("path", ""), re.IGNORECASE)] + pattern = rf"\.({ff})$" + e_filtered = [d for d in e_filtered if re.search(pattern, d.get("path", ""), re.IGNORECASE)] emoji_filtered = e_filtered @@ -180,7 +170,7 @@ def on_select(evt: gr.SelectData, *tag_values): if new_index is None: emoji_show = None targets = [] - for current_value in tag_values: + for current_value, tag in zip(tag_values, tags.keys()): if current_value: neglect_update += 1 targets.append(False) @@ -234,11 +224,7 @@ async def save_desc(desc): yield ["正在构建embedding,请勿关闭页面...", gr.update(interactive=False), gr.update(interactive=False)] embedding = await get_embedding(desc) if embedding is None or isinstance(embedding, str): - yield [ - f"获取embeddings失败!{embedding}", - gr.update(interactive=True), - gr.update(interactive=True) - ] + yield [f"获取embeddings失败!{embedding}", gr.update(interactive=True), gr.update(interactive=True)] else: e_id = emoji_show["_id"] update_dict = {"$set": {"embedding": embedding, "description": desc}} @@ -253,11 +239,7 @@ async def save_desc(desc): logger.info(f'Update description and embeddings: {e_id}(hash={hash})') yield ["保存完成", gr.update(value=desc, interactive=True), gr.update(interactive=True)] except Exception as e: - yield [ - f"出现异常: {e}", - gr.update(interactive=True), - gr.update(interactive=True) - ] + yield [f"出现异常: {e}", gr.update(interactive=True), gr.update(interactive=True)] else: yield ["没有选中表情包", gr.update()] @@ -361,8 +343,8 @@ with gr.Blocks(title="MaimBot表情包审查器") as app: gallery.select(fn=on_select, inputs=list(tag_boxes.values()), outputs=[gallery, description, *tag_boxes.values()]) revert_btn.click(fn=revert_desc, inputs=None, outputs=description) save_btn.click(fn=save_desc, inputs=description, outputs=[description_label, description, save_btn]) - for box in tag_boxes.values(): - box.change(fn=change_tag, inputs=list(tag_boxes.values()), outputs=description_label) + for k, v in tag_boxes.items(): + v.change(fn=change_tag, inputs=list(tag_boxes.values()), outputs=description_label) app.load( fn=update_gallery, inputs=[check_from_latest, *filters], diff --git a/src/plugins/chat/emoji_manager.py b/src/plugins/chat/emoji_manager.py index 683a3773..8dea30b6 100644 --- a/src/plugins/chat/emoji_manager.py +++ b/src/plugins/chat/emoji_manager.py @@ -398,9 +398,7 @@ class EmojiManager: # 修复拼写错误 if "discription" in emoji: desc = emoji["discription"] - db.emoji.update_one( - {"_id": emoji["_id"]}, {"$unset": {"discription": ""}, "$set": {"description": desc}} - ) + db.emoji.update_one({"_id": emoji["_id"]}, {"$unset": {"discription": ""}, "$set": {"description": desc}}) except Exception as item_error: logger.error(f"[错误] 处理表情包记录时出错: {str(item_error)}") diff --git a/src/plugins/chat/relationship_manager.py b/src/plugins/chat/relationship_manager.py index 53cb0abb..f996d4fd 100644 --- a/src/plugins/chat/relationship_manager.py +++ b/src/plugins/chat/relationship_manager.py @@ -6,7 +6,6 @@ from ...common.database import db from .message_base import UserInfo from .chat_stream import ChatStream import math -from bson.decimal128 import Decimal128 logger = get_module_logger("rel_manager") @@ -114,19 +113,6 @@ class RelationshipManager: if relationship: for k, value in kwargs.items(): if k == "relationship_value": - # 检查relationship.relationship_value是否为double类型 - if not isinstance(relationship.relationship_value, float): - try: - # 处理 Decimal128 类型 - if isinstance(relationship.relationship_value, Decimal128): - relationship.relationship_value = float(relationship.relationship_value.to_decimal()) - else: - relationship.relationship_value = float(relationship.relationship_value) - logger.info(f"[关系管理] 用户 {user_id}({platform}) 的关系值已转换为double类型: {relationship.relationship_value}") - except (ValueError, TypeError): - # 如果不能解析/强转则将relationship.relationship_value设置为double类型的0 - relationship.relationship_value = 0.0 - logger.warning(f"[关系管理] 用户 {user_id}({platform}) 的关系值无法转换为double类型,已设置为0") relationship.relationship_value += value await self.storage_relationship(relationship) relationship.saved = True @@ -325,7 +311,7 @@ class RelationshipManager: level_num = 0 elif -227 <= relationship_value < -73: level_num = 1 - elif -73 <= relationship_value < 227: + elif -76 <= relationship_value < 227: level_num = 2 elif 227 <= relationship_value < 587: level_num = 3