feat: 添加日记(成才之路)功能
- 前端 MemoryModal 添加标签切换(成才之路/工作记忆) - Dashboard 按钮更名为'日新'(📖) - 后端添加日记 API: * /api/lobsters/<id>/diary/dates/ - 获取日记日期 * /api/lobsters/<id>/diary/<date>/ - 获取日记内容 - 日记优先显示故事版,其次技术版 - 日历显示本月日记统计 - 优化 UI 样式和加载状态 📖 苟日新,日日新,又日新
This commit is contained in:
@@ -10,5 +10,7 @@ urlpatterns = [
|
||||
path('lobsters/<int:lobster_id>/memory/', views.lobster_memory, name='lobster-memory'),
|
||||
path('lobsters/<int:lobster_id>/memory/dates/', views.lobster_memory_dates, name='lobster-memory-dates'),
|
||||
path('lobsters/<int:lobster_id>/memory/<str:date>/', views.lobster_memory_detail, name='lobster-memory-detail'),
|
||||
path('lobsters/<int:lobster_id>/diary/dates/', views.lobster_diary_dates, name='lobster-diary-dates'),
|
||||
path('lobsters/<int:lobster_id>/diary/<str:date>/', views.lobster_diary_detail, name='lobster-diary-detail'),
|
||||
path('tools/', views.tools_list, name='tools-list'),
|
||||
]
|
||||
|
||||
@@ -113,3 +113,41 @@ def lobster_memory_detail(request, lobster_id, date):
|
||||
'date': date,
|
||||
'content': content
|
||||
})
|
||||
|
||||
@api_view(['GET'])
|
||||
def lobster_diary_dates(request, lobster_id):
|
||||
"""获取龙虾有日记(成才之路)的日期列表"""
|
||||
# 日记文件目录
|
||||
diary_dir = Path(f'/home/node/.openclaw/workspace/flying-hero/memory/成才之路')
|
||||
|
||||
# 获取所有日记文件
|
||||
dates = []
|
||||
if diary_dir.exists():
|
||||
for file in diary_dir.glob('*.md'):
|
||||
# 提取日期 (YYYY-MM-DD.md 或 YYYY-MM-DD-*.md)
|
||||
match = re.match(r'(\d{4}-\d{2}-\d{2})(?:-.*)?\.md', file.name)
|
||||
if match:
|
||||
dates.append(match.group(1))
|
||||
|
||||
dates = list(set(dates)) # 去重
|
||||
dates.sort(reverse=True)
|
||||
return Response({'dates': dates})
|
||||
|
||||
@api_view(['GET'])
|
||||
def lobster_diary_detail(request, lobster_id, date):
|
||||
"""获取指定日期的日记内容(成才之路)"""
|
||||
# 优先查找故事版,其次技术版,再其次普通版
|
||||
diary_file = Path(f'/home/node/.openclaw/workspace/flying-hero/memory/成才之路/{date}-故事版.md')
|
||||
if not diary_file.exists():
|
||||
diary_file = Path(f'/home/node/.openclaw/workspace/flying-hero/memory/成才之路/{date}-技术版.md')
|
||||
if not diary_file.exists():
|
||||
diary_file = Path(f'/home/node/.openclaw/workspace/flying-hero/memory/成才之路/{date}.md')
|
||||
|
||||
if not diary_file.exists():
|
||||
return Response({'error': '该日期没有日记'}, status=404)
|
||||
|
||||
content = diary_file.read_text(encoding='utf-8')
|
||||
return Response({
|
||||
'date': date,
|
||||
'content': content
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user