#!/usr/bin/env python3
import requests
import json
from datetime import datetime, timedelta
def get_chatlog(talker, start_date, end_date):
"""获取指定时间范围的聊天记录"""
url = "http://127.0.0.1:5030/api/chatlog"
params = {
"talker": talker,
"start_date": start_date,
"end_date": end_date
}
try:
response = requests.get(url, params=params)
response.raise_for_status()
return response.json()
except Exception as e:
print(f"获取数据失败: {e}")
return None
def main():
# 群聊ID
talker = "44156635321@chatroom"
# 获取今天的数据
today = datetime.now().strftime('%Y-%m-%d')
print(f"正在获取 {talker} 今日({today})的聊天记录...")
# 方法1: 直接查询今天
data = get_chatlog(talker, today, today)
if data and len(data) > 0:
print(f"✅ 找到今日消息 {len(data)} 条")
# 保存到文件
output_file = f"风变编程社团_今日_{today}.json"
with open(output_file, 'w', encoding='utf-8') as f:
json.dump(data, f, ensure_ascii=False, indent=2)
print(f"数据已保存到: {output_file}")
# 显示前几条消息
print("\n=== 今日消息预览 ===")
for msg in data[:5]:
print(f"{msg.get('time', '无时间')} - {msg.get('senderName', '匿名')}: {msg.get('content', '')[:50]}...")
else:
print(f"❌ 今日({today})无消息")
# 如果今天没消息,尝试获取最近几天的数据
print("\n尝试获取最近3天的数据...")
for i in range(3):
date = (datetime.now() - timedelta(days=i)).strftime('%Y-%m-%d')
data = get_chatlog(talker, date, date)
if data and len(data) > 0:
print(f"✅ {date}: {len(data)} 条消息")
break
else:
print("最近3天都无消息")
if __name__ == "__main__":
main()