Merge pull request #563 from HexatomicRing/emiji-reviewer
补充表情包审查器中的jpeg类型并兼容其它类型
This commit is contained in:
@@ -25,7 +25,11 @@ except ImportError:
|
|||||||
# 配置控制台输出格式
|
# 配置控制台输出格式
|
||||||
logger.remove() # 移除默认的处理器
|
logger.remove() # 移除默认的处理器
|
||||||
logger.add(sys.stderr, format="{time:MM-DD HH:mm} | emoji_reviewer | {message}") # 添加控制台输出
|
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("检测到src.common.logger并未导入,将使用默认loguru作为日志记录器")
|
||||||
logger.warning("如果你是用的是低版本(0.5.13)麦麦,请忽略此警告")
|
logger.warning("如果你是用的是低版本(0.5.13)麦麦,请忽略此警告")
|
||||||
# 忽略 gradio 版本警告
|
# 忽略 gradio 版本警告
|
||||||
@@ -43,8 +47,8 @@ if os.path.exists(bot_config_path):
|
|||||||
except tomli.TOMLDecodeError as e:
|
except tomli.TOMLDecodeError as e:
|
||||||
logger.critical(f"配置文件bot_config.toml填写有误,请检查第{e.lineno}行第{e.colno}处:{e.msg}")
|
logger.critical(f"配置文件bot_config.toml填写有误,请检查第{e.lineno}行第{e.colno}处:{e.msg}")
|
||||||
exit(1)
|
exit(1)
|
||||||
except KeyError as e:
|
except KeyError:
|
||||||
logger.critical(f"配置文件bot_config.toml缺少model.embedding设置,请补充后再编辑表情包")
|
logger.critical("配置文件bot_config.toml缺少model.embedding设置,请补充后再编辑表情包")
|
||||||
exit(1)
|
exit(1)
|
||||||
else:
|
else:
|
||||||
logger.critical(f"没有找到配置文件{bot_config_path}")
|
logger.critical(f"没有找到配置文件{bot_config_path}")
|
||||||
@@ -61,7 +65,7 @@ tags = {
|
|||||||
"blacklist": ("黑名单", "排除"),
|
"blacklist": ("黑名单", "排除"),
|
||||||
}
|
}
|
||||||
format_choices = ["包括", "无"]
|
format_choices = ["包括", "无"]
|
||||||
formats = ["jpg", "png", "gif"]
|
formats = ["jpg", "jpeg", "png", "gif", "其它"]
|
||||||
|
|
||||||
|
|
||||||
def signal_handler(signum, frame):
|
def signal_handler(signum, frame):
|
||||||
@@ -106,7 +110,7 @@ async def get_embedding(text):
|
|||||||
return embedding
|
return embedding
|
||||||
else:
|
else:
|
||||||
return f"网络错误{response.status_code}"
|
return f"网络错误{response.status_code}"
|
||||||
except:
|
except Exception:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
@@ -133,10 +137,16 @@ def filter_emojis(tag_filters, format_filters):
|
|||||||
elif value == "排除":
|
elif value == "排除":
|
||||||
e_filtered = [d for d in e_filtered if tag not in d]
|
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)
|
||||||
|
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)
|
ff = '|'.join(format_include)
|
||||||
pattern = rf"\.({ff})$"
|
compiled_pattern = re.compile(rf"\.({ff})$", re.IGNORECASE)
|
||||||
e_filtered = [d for d in e_filtered if re.search(pattern, d.get("path", ""), re.IGNORECASE)]
|
e_filtered = [d for d in e_filtered if compiled_pattern.search(d.get("path", ""), re.IGNORECASE)]
|
||||||
|
|
||||||
emoji_filtered = e_filtered
|
emoji_filtered = e_filtered
|
||||||
|
|
||||||
@@ -170,7 +180,7 @@ def on_select(evt: gr.SelectData, *tag_values):
|
|||||||
if new_index is None:
|
if new_index is None:
|
||||||
emoji_show = None
|
emoji_show = None
|
||||||
targets = []
|
targets = []
|
||||||
for current_value, tag in zip(tag_values, tags.keys()):
|
for current_value in tag_values:
|
||||||
if current_value:
|
if current_value:
|
||||||
neglect_update += 1
|
neglect_update += 1
|
||||||
targets.append(False)
|
targets.append(False)
|
||||||
@@ -224,7 +234,11 @@ async def save_desc(desc):
|
|||||||
yield ["正在构建embedding,请勿关闭页面...", gr.update(interactive=False), gr.update(interactive=False)]
|
yield ["正在构建embedding,请勿关闭页面...", gr.update(interactive=False), gr.update(interactive=False)]
|
||||||
embedding = await get_embedding(desc)
|
embedding = await get_embedding(desc)
|
||||||
if embedding is None or isinstance(embedding, str):
|
if embedding is None or isinstance(embedding, str):
|
||||||
yield [f"<span style='color: red;'>获取embeddings失败!{embedding}</span>", gr.update(interactive=True), gr.update(interactive=True)]
|
yield [
|
||||||
|
f"<span style='color: red;'>获取embeddings失败!{embedding}</span>",
|
||||||
|
gr.update(interactive=True),
|
||||||
|
gr.update(interactive=True)
|
||||||
|
]
|
||||||
else:
|
else:
|
||||||
e_id = emoji_show["_id"]
|
e_id = emoji_show["_id"]
|
||||||
update_dict = {"$set": {"embedding": embedding, "description": desc}}
|
update_dict = {"$set": {"embedding": embedding, "description": desc}}
|
||||||
@@ -239,7 +253,11 @@ async def save_desc(desc):
|
|||||||
logger.info(f'Update description and embeddings: {e_id}(hash={hash})')
|
logger.info(f'Update description and embeddings: {e_id}(hash={hash})')
|
||||||
yield ["保存完成", gr.update(value=desc, interactive=True), gr.update(interactive=True)]
|
yield ["保存完成", gr.update(value=desc, interactive=True), gr.update(interactive=True)]
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
yield [f"<span style='color: red;'>出现异常: {e}</span>", gr.update(interactive=True), gr.update(interactive=True)]
|
yield [
|
||||||
|
f"<span style='color: red;'>出现异常: {e}</span>",
|
||||||
|
gr.update(interactive=True),
|
||||||
|
gr.update(interactive=True)
|
||||||
|
]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
yield ["没有选中表情包", gr.update()]
|
yield ["没有选中表情包", gr.update()]
|
||||||
@@ -343,8 +361,8 @@ with gr.Blocks(title="MaimBot表情包审查器") as app:
|
|||||||
gallery.select(fn=on_select, inputs=list(tag_boxes.values()), outputs=[gallery, description, *tag_boxes.values()])
|
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)
|
revert_btn.click(fn=revert_desc, inputs=None, outputs=description)
|
||||||
save_btn.click(fn=save_desc, inputs=description, outputs=[description_label, description, save_btn])
|
save_btn.click(fn=save_desc, inputs=description, outputs=[description_label, description, save_btn])
|
||||||
for k, v in tag_boxes.items():
|
for box in tag_boxes.values():
|
||||||
v.change(fn=change_tag, inputs=list(tag_boxes.values()), outputs=description_label)
|
box.change(fn=change_tag, inputs=list(tag_boxes.values()), outputs=description_label)
|
||||||
app.load(
|
app.load(
|
||||||
fn=update_gallery,
|
fn=update_gallery,
|
||||||
inputs=[check_from_latest, *filters],
|
inputs=[check_from_latest, *filters],
|
||||||
|
|||||||
@@ -398,7 +398,9 @@ class EmojiManager:
|
|||||||
# 修复拼写错误
|
# 修复拼写错误
|
||||||
if "discription" in emoji:
|
if "discription" in emoji:
|
||||||
desc = emoji["discription"]
|
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:
|
except Exception as item_error:
|
||||||
logger.error(f"[错误] 处理表情包记录时出错: {str(item_error)}")
|
logger.error(f"[错误] 处理表情包记录时出错: {str(item_error)}")
|
||||||
|
|||||||
Reference in New Issue
Block a user