""" 测试世界书读取功能 """ import sys from pathlib import Path # 添加backend目录到Python路径 backend_dir = Path(__file__).parent / "backend" sys.path.insert(0, str(backend_dir)) from core.config import settings from services.worldbook_service import WorldBookService print("=" * 60) print("世界书读取功能测试") print("=" * 60) print(f"\n1. 配置检查:") print(f" 世界书目录: {settings.WORLDBOOKS_PATH}") print(f" 目录存在: {settings.WORLDBOOKS_PATH.exists()}") # 列出所有JSON文件 json_files = list(settings.WORLDBOOKS_PATH.glob("*.json")) print(f" JSON文件数量: {len(json_files)}") for f in json_files: print(f" - {f.name}") print(f"\n2. 测试读取世界书列表:") try: worldbooks = WorldBookService.list_worldbooks() print(f" ✓ 成功读取世界书列表") print(f" 世界书数量: {len(worldbooks)}") for wb in worldbooks: print(f" - {wb['name']} (条目数: {wb['entries_count']})") except Exception as e: print(f" ❌ 读取失败: {e}") import traceback traceback.print_exc() if worldbooks: # 测试读取第一个世界书的详细信息 first_book = worldbooks[0] book_name = first_book['name'] print(f"\n3. 测试读取世界书详情: {book_name}") try: book_detail = WorldBookService.get_worldbook(book_name) print(f" ✓ 成功读取世界书详情") print(f" 名称: {book_detail.get('name')}") print(f" 描述: {book_detail.get('description', '无')}") print(f" 条目数: {len(book_detail.get('entries', []))}") except Exception as e: print(f" ❌ 读取失败: {e}") import traceback traceback.print_exc() # 测试分页功能 print(f"\n4. 测试分页功能:") try: result = WorldBookService.list_entries(book_name, page=1, page_size=5) print(f" ✓ 分页查询成功") print(f" 总条目数: {result['total']}") print(f" 当前页: {result['page']}") print(f" 每页数量: {result['page_size']}") print(f" 总页数: {result['total_pages']}") print(f" 返回条目数: {len(result['entries'])}") if result['entries']: print(f" 第一条目预览:") first_entry = result['entries'][0] print(f" UID: {first_entry.get('uid')}") print(f" 内容长度: {len(first_entry.get('content', ''))}") except Exception as e: print(f" ❌ 分页查询失败: {e}") import traceback traceback.print_exc() print("\n" + "=" * 60) print("测试完成") print("=" * 60)