PyWxDump/微信聊天记录可视化prompt.md

762 lines
25 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

任务:根据 提供的微信群聊天记录json格式生成今日群/好友日报输出为风格固定、一致的HTML页面适合截图分享
## 日报模式选择
- 日报模式:[完整版/简化版] (默认为完整版)
- 如果需要简化版,请在提交时注明"生成简化版"
## 简化版说明
如选择"简化版",将只生成以下核心部分:
- 今日讨论热点最多3个
- 重要消息汇总
- 话唠榜仅前3名
- 简化版词云
日报内容更精简,适合快速浏览和分享。
## 聊天记录格式
``` json
[
{
"nickname": "昏沉沉的", # 发消息人昵称
"message": "XXX", # 消息内容
"time": "2025-04-27 11:33:20" #发消息时间
},
]
```
如未能识别消息格式或未找到有效记录,将显示提示信息并尝试按最佳猜测处理。
## 输出要求
必须使用以下固定的HTML模板和CSS样式仅更新内容部分确保每次生成的页面风格完全一致。使用严格定义的深色科技风格。
## HTML结构模板
```html
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>[群名称]报告 - [日期]</title>
<style>
/* 严格定义的CSS样式确保风格一致性 */
:root {
--bg-primary: #0f0e17;
--bg-secondary: #1a1925;
--bg-tertiary: #252336;
--text-primary: #fffffe;
--text-secondary: #a7a9be;
--accent-primary: #ff8906;
--accent-secondary: #f25f4c;
--accent-tertiary: #e53170;
--accent-blue: #3da9fc;
--accent-purple: #7209b7;
--accent-cyan: #00b4d8;
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: 'SF Pro Display', 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', sans-serif;
background-color: var(--bg-primary);
color: var(--text-primary);
line-height: 1.6;
font-size: 16px;
width: 1200px;
margin: 0 auto;
padding: 20px;
}
header {
text-align: center;
padding: 30px 0;
background-color: var(--bg-secondary);
margin-bottom: 30px;
}
h1 {
font-size: 36px;
font-weight: 700;
color: var(--accent-primary);
margin-bottom: 10px;
}
.date {
font-size: 18px;
color: var(--text-secondary);
margin-bottom: 20px;
}
.meta-info {
display: flex;
justify-content: center;
gap: 20px;
}
.meta-info span {
background-color: var(--bg-tertiary);
padding: 5px 15px;
border-radius: 20px;
font-size: 14px;
}
section {
background-color: var(--bg-secondary);
margin-bottom: 30px;
padding: 25px;
}
h2 {
font-size: 28px;
font-weight: 600;
color: var(--accent-blue);
margin-bottom: 20px;
padding-bottom: 10px;
border-bottom: 2px solid var(--accent-blue);
}
h3 {
font-size: 22px;
font-weight: 600;
color: var(--accent-primary);
margin: 15px 0 10px 0;
}
h4 {
font-size: 18px;
font-weight: 600;
color: var(--accent-secondary);
margin: 12px 0 8px 0;
}
p {
margin-bottom: 15px;
}
ul, ol {
margin-left: 20px;
margin-bottom: 15px;
}
li {
margin-bottom: 5px;
}
a {
color: var(--accent-blue);
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
/* 卡片容器样式 */
.topics-container, .tutorials-container, .messages-container,
.dialogues-container, .qa-container, .participants-container {
display: grid;
grid-template-columns: 1fr;
gap: 20px;
}
/* 卡片样式 */
.topic-card, .tutorial-card, .message-card,
.dialogue-card, .qa-card, .participant-item, .night-owl-item {
background-color: var(--bg-tertiary);
padding: 20px;
}
/* 话题卡片 */
.topic-category {
display: inline-block;
background-color: var(--accent-blue);
color: var(--text-primary);
padding: 3px 10px;
border-radius: 15px;
font-size: 14px;
margin-bottom: 10px;
}
.topic-keywords {
display: flex;
flex-wrap: wrap;
gap: 8px;
margin: 10px 0;
}
.keyword {
background-color: rgba(61, 169, 252, 0.2);
padding: 3px 10px;
border-radius: 12px;
font-size: 14px;
}
.topic-mentions {
color: var(--accent-cyan);
font-weight: 600;
}
/* 教程卡片 */
.tutorial-type {
display: inline-block;
background-color: var(--accent-secondary);
color: var(--text-primary);
padding: 3px 10px;
border-radius: 15px;
font-size: 14px;
margin-bottom: 10px;
}
.tutorial-meta {
color: var(--text-secondary);
margin-bottom: 10px;
font-size: 14px;
}
.tutorial-category {
margin-top: 10px;
font-style: italic;
color: var(--text-secondary);
}
/* 消息卡片 */
.message-meta {
margin-bottom: 10px;
}
.message-meta span {
margin-right: 15px;
font-size: 14px;
}
.message-type {
background-color: var(--accent-tertiary);
color: var(--text-primary);
padding: 3px 10px;
border-radius: 15px;
}
.priority {
padding: 3px 10px;
border-radius: 15px;
}
.priority-high {
background-color: var(--accent-secondary);
}
.priority-medium {
background-color: var(--accent-primary);
}
.priority-low {
background-color: var(--accent-blue);
}
/* 对话卡片 */
.dialogue-type {
display: inline-block;
background-color: var(--accent-purple);
color: var(--text-primary);
padding: 3px 10px;
border-radius: 15px;
font-size: 14px;
margin-bottom: 10px;
}
.dialogue-content {
background-color: rgba(255, 255, 255, 0.05);
padding: 15px;
margin-bottom: 15px;
}
.dialogue-highlight {
font-style: italic;
color: var(--accent-primary);
margin: 10px 0;
font-weight: 600;
}
/* 问答卡片 */
.question {
margin-bottom: 15px;
}
.question-meta, .answer-meta {
color: var(--text-secondary);
margin-bottom: 5px;
font-size: 14px;
}
.question-tags {
display: flex;
flex-wrap: wrap;
gap: 8px;
margin-top: 10px;
}
.tag {
background-color: rgba(114, 9, 183, 0.2);
padding: 3px 10px;
border-radius: 12px;
font-size: 14px;
}
.answer {
background-color: rgba(255, 255, 255, 0.05);
padding: 15px;
margin-top: 10px;
}
.accepted-badge {
background-color: var(--accent-primary);
color: var(--text-primary);
padding: 3px 10px;
border-radius: 15px;
font-size: 14px;
}
/* 热度图 */
.heatmap-container {
display: grid;
grid-template-columns: 1fr;
gap: 15px;
}
.heat-topic {
font-weight: 600;
margin-bottom: 5px;
}
.heat-bar {
height: 20px;
background-color: rgba(255, 255, 255, 0.1);
margin: 5px 0;
border-radius: 10px;
overflow: hidden;
}
.heat-fill {
height: 100%;
border-radius: 10px;
}
/* 话唠榜 */
.participant-rank {
font-size: 28px;
font-weight: 700;
color: var(--accent-primary);
margin-right: 15px;
float: left;
}
.participant-name {
font-weight: 600;
font-size: 18px;
margin-bottom: 5px;
}
.participant-count {
color: var(--accent-cyan);
margin-bottom: 10px;
}
.participant-characteristics, .participant-words {
display: flex;
flex-wrap: wrap;
gap: 8px;
margin-top: 10px;
}
.characteristic {
background-color: rgba(242, 95, 76, 0.2);
padding: 3px 10px;
border-radius: 12px;
font-size: 14px;
}
.word {
background-color: rgba(229, 49, 112, 0.2);
padding: 3px 10px;
border-radius: 12px;
font-size: 14px;
}
/* 熬夜冠军 */
.night-owl-item {
background: linear-gradient(135deg, #0f0e17 0%, #192064 100%);
padding: 20px;
display: flex;
align-items: center;
}
.owl-crown {
font-size: 40px;
margin-right: 20px;
}
.owl-name {
font-weight: 600;
font-size: 18px;
margin-bottom: 5px;
}
.owl-title {
color: var(--accent-primary);
font-style: italic;
margin-bottom: 10px;
}
.owl-time, .owl-messages {
color: var(--text-secondary);
margin-bottom: 5px;
}
.owl-note {
font-size: 14px;
color: var(--text-secondary);
margin-top: 10px;
font-style: italic;
}
/* 词云 - 云朵样式 */
.cloud-container {
position: relative;
margin: 0 auto;
padding: 20px 0;
}
.cloud-wordcloud {
position: relative;
width: 600px;
height: 400px;
margin: 0 auto;
background-color: var(--bg-tertiary);
border-radius: 50%;
box-shadow:
40px 40px 0 -5px var(--bg-tertiary),
80px 10px 0 -10px var(--bg-tertiary),
110px 35px 0 -5px var(--bg-tertiary),
-40px 50px 0 -8px var(--bg-tertiary),
-70px 20px 0 -10px var(--bg-tertiary);
overflow: visible;
}
.cloud-word {
position: absolute;
transform-origin: center;
text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
transition: all 0.3s ease;
}
.cloud-word:hover {
transform: scale(1.1);
z-index: 10;
}
.cloud-legend {
margin-top: 60px;
display: flex;
justify-content: center;
gap: 30px;
}
.legend-item {
display: flex;
align-items: center;
gap: 10px;
}
.legend-color {
width: 20px;
height: 20px;
border-radius: 50%;
}
/* 底部 */
footer {
text-align: center;
padding: 20px 0;
margin-top: 50px;
background-color: var(--bg-secondary);
color: var(--text-secondary);
font-size: 14px;
}
footer p {
margin: 5px 0;
}
.disclaimer {
margin-top: 15px;
font-style: italic;
}
</style>
</head>
<body>
<header>
<h1>[群名称]报告</h1>
<p class="date">[日期]</p>
<div class="meta-info">
<span>总消息数:[数量]</span>
<span>活跃用户:[数量]</span>
<span>时间范围:[时间范围]</span>
</div>
</header>
<!-- 1. 今日讨论热点 -->
<section class="hot-topics">
<h2>今日讨论热点</h2>
<div class="topics-container">
<!-- 在这里填充讨论热点内容严格按照以下格式保留3-5个话题 -->
<div class="topic-card">
<h3>[热点话题名称]</h3>
<div class="topic-category">[话题分类]</div>
<p class="topic-summary">[简要总结(50-100字)]</p>
<div class="topic-keywords">
<span class="keyword">[关键词1]</span>
<span class="keyword">[关键词2]</span>
<!-- 添加更多关键词 -->
</div>
<div class="topic-mentions">提及次数:[次数]</div>
</div>
<!-- 复制上述卡片结构添加更多话题 -->
</div>
</section>
<!-- 2. 实用教程与资源分享 -->
<section class="tutorials">
<h2>实用教程与资源分享</h2>
<div class="tutorials-container">
<!-- 在这里填充教程和资源内容,严格按照以下格式 -->
<div class="tutorial-card">
<div class="tutorial-type">[TUTORIAL | NEWS | RESOURCE]</div>
<h3>[分享的教程或资源标题]</h3>
<div class="tutorial-meta">
<span class="shared-by">分享者:[昵称]</span>
<span class="share-time">时间:[时间]</span>
</div>
<p class="tutorial-summary">[内容简介]</p>
<div class="key-points">
<h4>要点:</h4>
<ul>
<li>[要点1]</li>
<li>[要点2]</li>
<!-- 添加更多要点 -->
</ul>
</div>
<div class="tutorial-link">
<a href="[URL]" class="link valid">查看原文: [域名]</a>
</div>
<div class="tutorial-category">分类:[分类]</div>
</div>
<!-- 复制上述卡片结构添加更多资源 -->
</div>
</section>
<!-- 3. 重要消息汇总 -->
<section class="important-messages">
<h2>重要消息汇总</h2>
<div class="messages-container">
<!-- 在这里填充重要消息内容,严格按照以下格式 -->
<div class="message-card">
<div class="message-meta">
<span class="time">[消息时间]</span>
<span class="sender">[发送者昵称]</span>
<span class="message-type">[NOTICE | EVENT | ANNOUNCEMENT | OTHER]</span>
<span class="priority priority-high">优先级:[高|中|低]</span>
</div>
<p class="message-content">[消息内容]</p>
<div class="message-full-content">
<p>[完整通知内容]</p>
</div>
</div>
<!-- 复制上述卡片结构添加更多消息 -->
</div>
</section>
<!-- 4. 有趣对话或金句 -->
<section class="interesting-dialogues">
<h2>有趣对话或金句</h2>
<div class="dialogues-container">
<!-- 在这里填充对话内容,严格按照以下格式 -->
<div class="dialogue-card">
<div class="dialogue-type">[DIALOGUE | QUOTE]</div>
<div class="dialogue-content">
<div class="message">
<div class="message-meta">
<span class="speaker">[说话者昵称]</span>
<span class="time">[发言时间]</span>
</div>
<p class="message-content">[消息内容]</p>
</div>
<div class="message">
<div class="message-meta">
<span class="speaker">[说话者昵称]</span>
<span class="time">[发言时间]</span>
</div>
<p class="message-content">[消息内容]</p>
</div>
<!-- 添加更多对话消息 -->
</div>
<div class="dialogue-highlight">[对话中的金句或亮点]</div>
<div class="dialogue-topic">相关话题:[某某话题]</div>
</div>
<!-- 复制上述卡片结构添加更多对话 -->
</div>
</section>
<!-- 5. 问题与解答 -->
<section class="questions-answers">
<h2>问题与解答</h2>
<div class="qa-container">
<!-- 在这里填充问答内容,严格按照以下格式 -->
<div class="qa-card">
<div class="question">
<div class="question-meta">
<span class="asker">[提问者昵称]</span>
<span class="time">[提问时间]</span>
</div>
<p class="question-content">[问题内容]</p>
<div class="question-tags">
<span class="tag">[相关标签1]</span>
<span class="tag">[相关标签2]</span>
<!-- 添加更多标签 -->
</div>
</div>
<div class="answers">
<div class="answer">
<div class="answer-meta">
<span class="responder">[回答者昵称]</span>
<span class="time">[回答时间]</span>
<span class="accepted-badge">最佳回答</span>
</div>
<p class="answer-content">[回答内容]</p>
</div>
<!-- 添加更多回答 -->
</div>
</div>
<!-- 复制上述卡片结构添加更多问答 -->
</div>
</section>
<!-- 6. 群内数据可视化 -->
<section class="analytics">
<h2>群内数据可视化</h2>
<!-- 话题热度 -->
<h3>话题热度</h3>
<div class="heatmap-container">
<!-- 在这里填充话题热度数据,严格按照以下格式 -->
<div class="heat-item">
<div class="heat-topic">[话题名称]</div>
<div class="heat-percentage">[百分比]%</div>
<div class="heat-bar">
<div class="heat-fill" style="width: [百分比]%; background-color: #3da9fc;"></div>
</div>
<div class="heat-count">[数量]条消息</div>
</div>
<!-- 复制上述结构添加更多热度项,每项使用不同颜色 -->
<div class="heat-item">
<div class="heat-topic">[话题名称]</div>
<div class="heat-percentage">[百分比]%</div>
<div class="heat-bar">
<div class="heat-fill" style="width: [百分比]%; background-color: #f25f4c;"></div>
</div>
<div class="heat-count">[数量]条消息</div>
</div>
<!-- 可用的颜色: #3da9fc, #f25f4c, #7209b7, #e53170, #00b4d8, #4cc9f0 -->
</div>
<!-- 话唠榜 -->
<h3>话唠榜</h3>
<div class="participants-container">
<!-- 在这里填充话唠榜数据,严格按照以下格式 -->
<div class="participant-item">
<div class="participant-rank">1</div>
<div class="participant-info">
<div class="participant-name">[群友昵称]</div>
<div class="participant-count">[数量]条消息</div>
<div class="participant-characteristics">
<span class="characteristic">[特点1]</span>
<span class="characteristic">[特点2]</span>
<!-- 添加更多特点 -->
</div>
<div class="participant-words">
<span class="word">[常用词1]</span>
<span class="word">[常用词2]</span>
<!-- 添加更多常用词 -->
</div>
</div>
</div>
<!-- 复制上述结构添加更多参与者 -->
</div>
<!-- 熬夜冠军 -->
<h3>熬夜冠军</h3>
<div class="night-owls-container">
<!-- 在这里填充熬夜冠军数据,严格按照以下格式 -->
<div class="night-owl-item">
<div class="owl-crown" title="熬夜冠军">👑</div>
<div class="owl-info">
<div class="owl-name">[熬夜冠军昵称]</div>
<div class="owl-title">[熬夜冠军称号]</div>
<div class="owl-time">最晚活跃时间:[时间]</div>
<div class="owl-messages">深夜消息数:[数量]</div>
<div class="owl-last-message">[最后一条深夜消息内容]</div>
<div class="owl-note">熬夜时段定义为23:00-06:00已考虑不同时区</div>
</div>
</div>
</div>
</section>
<!-- 7. 词云 -->
<section class="word-cloud">
<h2>热门词云</h2>
<div class="cloud-container">
<!-- 词云容器 - 现在是云朵样式 -->
<div class="cloud-wordcloud" id="word-cloud">
<!-- 为每个词创建一个span元素使用绝对定位放置 -->
<!-- 以下是一些示例请根据实际内容生成40-60个词 -->
<span class="cloud-word" style="left: 300px; top: 120px; font-size: 38px; color: #00b4d8; transform: rotate(-15deg); font-weight: bold;">[关键词1]</span>
<span class="cloud-word" style="left: 180px; top: 150px; font-size: 32px; color: #4cc9f0; transform: rotate(5deg); font-weight: bold;">[关键词2]</span>
<span class="cloud-word" style="left: 400px; top: 180px; font-size: 28px; color: #f25f4c; transform: rotate(-5deg);">[关键词3]</span>
<span class="cloud-word" style="left: 250px; top: 220px; font-size: 24px; color: #ff8906; transform: rotate(10deg);">[关键词4]</span>
<span class="cloud-word" style="left: 350px; top: 90px; font-size: 22px; color: #e53170; transform: rotate(-10deg);">[关键词5]</span>
<!-- 继续添加更多词 -->
</div>
<div class="cloud-legend">
<div class="legend-item">
<span class="legend-color" style="background-color: #00b4d8;"></span>
<span class="legend-label">[分类1] 相关词汇</span>
</div>
<div class="legend-item">
<span class="legend-color" style="background-color: #4361ee;"></span>
<span class="legend-label">[分类2] 相关词汇</span>
</div>
<div class="legend-item">
<span class="legend-color" style="background-color: #7209b7;"></span>
<span class="legend-label">[分类3] 相关词汇</span>
</div>
</div>
</div>
</section>
<!-- 8. 页面底部 -->
<footer>
<p>数据来源:[群名称]聊天记录</p>
<p>生成时间:<span class="generation-time">[当前时间]</span></p>
<p>统计周期:[日期] [时间范围]</p>
<p class="disclaimer">免责声明:本报告内容基于群聊公开讨论,如有不当内容或侵权问题请联系管理员处理。</p>
</footer>
</body>
</html>