|
|
@@ -5362,17 +5362,39 @@ def generate_combined_html(all_graph_data: List[Dict], persona_tree_data: Dict,
|
|
|
persona_tree_data: 完整的人设树数据(节点和边)
|
|
|
output_file: 输出文件路径
|
|
|
"""
|
|
|
+ # 按发布日期降序排序
|
|
|
+ def get_publish_date(data):
|
|
|
+ post_detail = data.get("postDetail", {})
|
|
|
+ publish_time = post_detail.get("publish_time", "")
|
|
|
+ # 提取日期部分(假设格式为 "YYYY-MM-DD" 或 "YYYY-MM-DD HH:MM:SS")
|
|
|
+ if publish_time:
|
|
|
+ return publish_time[:10]
|
|
|
+ return "0000-00-00"
|
|
|
+
|
|
|
+ all_graph_data.sort(key=get_publish_date, reverse=True)
|
|
|
+
|
|
|
# 生成帖子选项HTML
|
|
|
tabs_html = ""
|
|
|
for i, data in enumerate(all_graph_data):
|
|
|
post_title = data.get("postTitle", "")
|
|
|
- # 使用帖子标题,如果太长则截断
|
|
|
+ post_detail = data.get("postDetail", {})
|
|
|
+ publish_time = post_detail.get("publish_time", "")
|
|
|
+ # 提取日期部分
|
|
|
+ date_str = publish_time[:10] if publish_time else ""
|
|
|
+
|
|
|
+ # 使用"日期+标题"格式
|
|
|
if post_title:
|
|
|
- option_name = post_title[:30] + "..." if len(post_title) > 30 else post_title
|
|
|
+ title_part = post_title[:25] + "..." if len(post_title) > 25 else post_title
|
|
|
else:
|
|
|
- option_name = f"帖子 {i+1}"
|
|
|
+ title_part = f"帖子 {i+1}"
|
|
|
+
|
|
|
+ if date_str:
|
|
|
+ option_name = f"{date_str} {title_part}"
|
|
|
+ else:
|
|
|
+ option_name = title_part
|
|
|
+
|
|
|
selected = "selected" if i == 0 else ""
|
|
|
- tabs_html += f'<option value="{i}" {selected}>{i+1}. {option_name}</option>\n'
|
|
|
+ tabs_html += f'<option value="{i}" {selected}>{option_name}</option>\n'
|
|
|
|
|
|
# 生成HTML
|
|
|
html_content = HTML_TEMPLATE.format(
|