diff --git a/code/backend/api/views.py b/code/backend/api/views.py index b81517b..cd13bd8 100644 --- a/code/backend/api/views.py +++ b/code/backend/api/views.py @@ -75,49 +75,44 @@ def tools_list(request): @api_view(['GET']) def lobster_memory_dates(request, lobster_id): - """获取龙虾有日记的日期列表""" - # 获取龙虾工作区 - lobster_map = { - 1: 'flying-hero', - 2: 'daotong', - 3: 'coder', - 4: 'web', - 5: 'physics', - 6: 'watcher', - } - - lobster_name = lobster_map.get(lobster_id) - if not lobster_name: + """获取龙虾有工作记忆的日期列表 - 从数据库读取""" + try: + lobster = Lobster.objects.get(id=lobster_id) + except Lobster.DoesNotExist: return Response({'error': '龙虾不存在'}, status=404) - # 记忆文件目录 - memory_dir = Path(f'/home/node/.openclaw/workspace/flying-hero/memory') + # 从数据库查询工作记忆 + diaries = LobsterDiary.objects.filter( + lobster=lobster, + category='memory' + ).values_list('date', flat=True).distinct() - # 获取所有日记文件 - dates = [] - if memory_dir.exists(): - for file in memory_dir.glob('*.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.sort(reverse=True) + dates = [str(date) for date in sorted(diaries, reverse=True)] return Response({'dates': dates}) @api_view(['GET']) def lobster_memory_detail(request, lobster_id, date): - """获取指定日期的日记内容""" - memory_file = Path(f'/home/node/.openclaw/workspace/flying-hero/memory/{date}.md') + """获取指定日期的工作记忆内容 - 从数据库读取""" + try: + lobster = Lobster.objects.get(id=lobster_id) + except Lobster.DoesNotExist: + return Response({'error': '龙虾不存在'}, status=404) - if not memory_file.exists(): - return Response({'error': '该日期没有日记'}, status=404) - - content = memory_file.read_text(encoding='utf-8') - return Response({ - 'date': date, - 'content': content - }) + # 从数据库查询工作记忆 + try: + diary = LobsterDiary.objects.get( + lobster=lobster, + date=date, + category='memory' + ) + return Response({ + 'date': str(diary.date), + 'content': diary.content, + 'title': diary.title, + 'tags': diary.tags, + }) + except LobsterDiary.DoesNotExist: + return Response({'error': '该日期没有工作记忆'}, status=404) @api_view(['GET']) def lobster_diary_dates(request, lobster_id):