正确删除表情包
This commit is contained in:
@@ -601,13 +601,10 @@ class EmojiManager:
|
|||||||
返回:
|
返回:
|
||||||
list[str]: 可读的表情包信息字符串列表
|
list[str]: 可读的表情包信息字符串列表
|
||||||
"""
|
"""
|
||||||
# 按使用次数升序排序表情包对象
|
|
||||||
sorted_emojis = sorted(emoji_objects, key=lambda emoji: emoji.usage_count)
|
|
||||||
|
|
||||||
# 使用概率分布选择20个表情包
|
# 使用概率分布选择20个表情包
|
||||||
selected_emojis = []
|
selected_emojis = []
|
||||||
while len(selected_emojis) < 20 and sorted_emojis:
|
while len(selected_emojis) < 20 and emoji_objects:
|
||||||
for emoji in sorted_emojis:
|
for emoji in emoji_objects:
|
||||||
# 计算选择该表情包的概率,使用次数越少概率越大
|
# 计算选择该表情包的概率,使用次数越少概率越大
|
||||||
probability = 1 / (emoji.usage_count + 1)
|
probability = 1 / (emoji.usage_count + 1)
|
||||||
if random.random() < probability:
|
if random.random() < probability:
|
||||||
@@ -615,7 +612,7 @@ class EmojiManager:
|
|||||||
if len(selected_emojis) == 20:
|
if len(selected_emojis) == 20:
|
||||||
break
|
break
|
||||||
# 从排序列表中移除已选择的表情包
|
# 从排序列表中移除已选择的表情包
|
||||||
sorted_emojis = [emoji for emoji in sorted_emojis if emoji not in selected_emojis]
|
emoji_objects = [emoji for emoji in emoji_objects if emoji not in selected_emojis]
|
||||||
|
|
||||||
emoji_info_list = []
|
emoji_info_list = []
|
||||||
for i, emoji in enumerate(selected_emojis):
|
for i, emoji in enumerate(selected_emojis):
|
||||||
@@ -642,9 +639,9 @@ class EmojiManager:
|
|||||||
|
|
||||||
# 获取所有表情包对象
|
# 获取所有表情包对象
|
||||||
all_emojis = self.emoji_objects
|
all_emojis = self.emoji_objects
|
||||||
|
sorted_emojis = sorted(all_emojis, key=lambda emoji: emoji.usage_count)
|
||||||
# 将表情包信息转换为可读的字符串
|
# 将表情包信息转换为可读的字符串
|
||||||
emoji_info_list = self._emoji_objects_to_readable_list(all_emojis)
|
emoji_info_list = self._emoji_objects_to_readable_list(sorted_emojis)
|
||||||
|
|
||||||
# 构建提示词
|
# 构建提示词
|
||||||
prompt = (
|
prompt = (
|
||||||
@@ -674,9 +671,9 @@ class EmojiManager:
|
|||||||
emoji_index = int(match.group(1)) - 1 # 转换为0-based索引
|
emoji_index = int(match.group(1)) - 1 # 转换为0-based索引
|
||||||
|
|
||||||
# 检查索引是否有效
|
# 检查索引是否有效
|
||||||
if 0 <= emoji_index < len(all_emojis):
|
if 0 <= emoji_index < len(sorted_emojis):
|
||||||
emoji_to_delete = all_emojis[emoji_index]
|
emoji_to_delete = sorted_emojis[emoji_index]
|
||||||
|
print(emoji_to_delete.hash)
|
||||||
# 删除选定的表情包
|
# 删除选定的表情包
|
||||||
logger.info(f"[决策] 决定删除表情包: {emoji_to_delete.description}")
|
logger.info(f"[决策] 决定删除表情包: {emoji_to_delete.description}")
|
||||||
delete_success = await self.delete_emoji(emoji_to_delete.hash)
|
delete_success = await self.delete_emoji(emoji_to_delete.hash)
|
||||||
|
|||||||
Reference in New Issue
Block a user