From a158e44b29a015ff6bfc273d54b6f11842927e35 Mon Sep 17 00:00:00 2001 From: HexatomicRing <54496918+HexatomicRing@users.noreply.github.com> Date: Mon, 24 Mar 2025 16:17:37 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E8=A1=A5=E5=85=85=E8=A1=A8=E6=83=85?= =?UTF-8?q?=E5=8C=85jpeg=E7=B1=BB=E5=9E=8B=E5=B9=B6=E5=85=BC=E5=AE=B9?= =?UTF-8?q?=E5=85=B6=E5=AE=83=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- emoji_reviewer.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/emoji_reviewer.py b/emoji_reviewer.py index 96da18ea8..efef1890a 100644 --- a/emoji_reviewer.py +++ b/emoji_reviewer.py @@ -61,7 +61,7 @@ tags = { "blacklist": ("黑名单", "排除"), } format_choices = ["包括", "无"] -formats = ["jpg", "png", "gif"] +formats = ["jpg", "jpeg", "png", "gif", "其它"] def signal_handler(signum, frame): @@ -133,7 +133,13 @@ def filter_emojis(tag_filters, format_filters): elif value == "排除": e_filtered = [d for d in e_filtered if tag not in d] - if len(format_include) > 0: + if '其它' in format_include: + exclude = [f for f in formats if f not in format_include] + if exclude: + ff = '|'.join(exclude) + pattern = rf"\.({ff})$" + e_filtered = [d for d in e_filtered if not re.search(pattern, d.get("path", ""), re.IGNORECASE)] + else: ff = '|'.join(format_include) pattern = rf"\.({ff})$" e_filtered = [d for d in e_filtered if re.search(pattern, d.get("path", ""), re.IGNORECASE)] From c141ac8e78bb58281803aa0c5a3f5f77878a71ce Mon Sep 17 00:00:00 2001 From: HexatomicRing <54496918+HexatomicRing@users.noreply.github.com> Date: Mon, 24 Mar 2025 16:38:48 +0800 Subject: [PATCH 2/4] Update emoji_reviewer.py MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ai大人我错了 --- emoji_reviewer.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/emoji_reviewer.py b/emoji_reviewer.py index efef1890a..2cdb87c17 100644 --- a/emoji_reviewer.py +++ b/emoji_reviewer.py @@ -137,12 +137,12 @@ def filter_emojis(tag_filters, format_filters): exclude = [f for f in formats if f not in format_include] if exclude: ff = '|'.join(exclude) - pattern = rf"\.({ff})$" - e_filtered = [d for d in e_filtered if not re.search(pattern, d.get("path", ""), re.IGNORECASE)] + 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: ff = '|'.join(format_include) - pattern = rf"\.({ff})$" - e_filtered = [d for d in e_filtered if re.search(pattern, d.get("path", ""), re.IGNORECASE)] + 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)] emoji_filtered = e_filtered From 3f9cb7d0d8edbd39bf9e8461ef5a88cf0d413bad Mon Sep 17 00:00:00 2001 From: HexatomicRing <54496918+HexatomicRing@users.noreply.github.com> Date: Mon, 24 Mar 2025 19:24:33 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E9=A3=8E=E6=A0=BC?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- emoji_reviewer.py | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/emoji_reviewer.py b/emoji_reviewer.py index 2cdb87c17..f68e50cf2 100644 --- a/emoji_reviewer.py +++ b/emoji_reviewer.py @@ -25,7 +25,11 @@ 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 版本警告 @@ -40,11 +44,11 @@ if os.path.exists(bot_config_path): embedding_config = toml_dict['model']['embedding'] embedding_name = embedding_config["name"] embedding_provider = embedding_config["provider"] - except tomli.TOMLDecodeError as e: + except tomli.TOMLDecodeError: logger.critical(f"配置文件bot_config.toml填写有误,请检查第{e.lineno}行第{e.colno}处:{e.msg}") exit(1) except KeyError as e: - logger.critical(f"配置文件bot_config.toml缺少model.embedding设置,请补充后再编辑表情包") + logger.critical("配置文件bot_config.toml缺少model.embedding设置,请补充后再编辑表情包") exit(1) else: logger.critical(f"没有找到配置文件{bot_config_path}") @@ -106,7 +110,7 @@ async def get_embedding(text): return embedding else: return f"网络错误{response.status_code}" - except: + except Exception: return None @@ -176,7 +180,7 @@ def on_select(evt: gr.SelectData, *tag_values): if new_index is None: emoji_show = None targets = [] - for current_value, tag in zip(tag_values, tags.keys()): + for current_value in tag_values: if current_value: neglect_update += 1 targets.append(False) @@ -230,7 +234,11 @@ 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}} @@ -349,8 +357,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 k, v in tag_boxes.items(): - v.change(fn=change_tag, inputs=list(tag_boxes.values()), outputs=description_label) + for box in tag_boxes.values(): + box.change(fn=change_tag, inputs=list(tag_boxes.values()), outputs=description_label) app.load( fn=update_gallery, inputs=[check_from_latest, *filters], From 94e2488fe963fcda07a5938647cdc9939e39efe4 Mon Sep 17 00:00:00 2001 From: HexatomicRing <54496918+HexatomicRing@users.noreply.github.com> Date: Mon, 24 Mar 2025 19:27:31 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E7=BB=99AI=E5=A4=A7=E4=BA=BA=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3=E4=BB=A3=E7=A0=81=E9=A3=8E=E6=A0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- emoji_reviewer.py | 10 +++++++--- src/plugins/chat/emoji_manager.py | 4 +++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/emoji_reviewer.py b/emoji_reviewer.py index f68e50cf2..796cb8ef2 100644 --- a/emoji_reviewer.py +++ b/emoji_reviewer.py @@ -44,10 +44,10 @@ if os.path.exists(bot_config_path): embedding_config = toml_dict['model']['embedding'] embedding_name = embedding_config["name"] embedding_provider = embedding_config["provider"] - except tomli.TOMLDecodeError: + except tomli.TOMLDecodeError as e: logger.critical(f"配置文件bot_config.toml填写有误,请检查第{e.lineno}行第{e.colno}处:{e.msg}") exit(1) - except KeyError as e: + except KeyError: logger.critical("配置文件bot_config.toml缺少model.embedding设置,请补充后再编辑表情包") exit(1) else: @@ -253,7 +253,11 @@ 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()] diff --git a/src/plugins/chat/emoji_manager.py b/src/plugins/chat/emoji_manager.py index 8dea30b60..683a37736 100644 --- a/src/plugins/chat/emoji_manager.py +++ b/src/plugins/chat/emoji_manager.py @@ -398,7 +398,9 @@ 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)}")