lightpdf-aipdf-mcp 0.1.121__py3-none-any.whl → 0.1.123__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -99,8 +99,7 @@ class Editor(BaseApiClient):
99
99
  if split_type == "page":
100
100
  extra_params["pages"] = pages
101
101
  extra_params["merge_all"] = merge_all
102
- # outline模式无需pages和merge_all
103
-
102
+
104
103
  # 记录操作描述
105
104
  operation_details = f"类型: {split_type}"
106
105
  if split_type == "page":
@@ -196,7 +196,6 @@ async def process_edit_file(
196
196
  original_name=original_name
197
197
  )
198
198
  elif edit_type == "split":
199
- # 支持split_type: every(每页)、page(按页范围)、outline(按书签/大纲/目录)
200
199
  return await editor.split_pdf(
201
200
  file_path=file_path,
202
201
  pages=extra_params.get("pages", ""),
@@ -356,25 +355,36 @@ async def process_tool_call(
356
355
  ),
357
356
  "PDF转Markdown"
358
357
  )
358
+
359
359
  report_msg = generate_result_report(results)
360
360
  elif format == "pdf":
361
361
  # 只调用一次process_batch_files,在lambda里分流
362
- results = await process_batch_files(
363
- file_objects,
364
- logger,
365
- lambda file_path, password, original_name: (
366
- editor.edit_pdf(
362
+ async def pdf_convert_dispatcher(file_path, password, original_name):
363
+ extra_params = operation_config.get("extra_params")
364
+ ext = file_handler.get_file_extension(file_path)
365
+ if ext in [".txt", ".tex"]:
366
+ if ext == ".txt":
367
+ extra_params = {"pages": [{"url": "oss://txt2pdf", "oss_file": ""}]}
368
+ else:
369
+ extra_params = {"pages": [{"url": "oss://tex2pdf", "oss_file": ""}]}
370
+ return await editor.edit_pdf(
367
371
  file_path,
368
372
  edit_type=EditType.EDIT,
369
- extra_params={"pages": [{"url": "oss://txt2pdf", "oss_file": ""}]},
373
+ extra_params=extra_params,
370
374
  password=password,
371
375
  original_name=original_name
372
- ) if file_handler.get_file_extension(file_path) == ".txt" else process_conversion_file(
376
+ )
377
+ else:
378
+ return await process_conversion_file(
373
379
  file_path, format, converter, extra_params, password, original_name
374
380
  )
375
- ),
381
+ results = await process_batch_files(
382
+ file_objects,
383
+ logger,
384
+ pdf_convert_dispatcher,
376
385
  f"转换为 {format} 格式"
377
386
  )
387
+
378
388
  report_msg = generate_result_report(results)
379
389
  else:
380
390
  # 获取操作描述
@@ -398,9 +408,7 @@ async def process_tool_call(
398
408
  )
399
409
 
400
410
  # 生成报告
401
- report_msg = generate_result_report(
402
- results
403
- )
411
+ report_msg = generate_result_report(results)
404
412
 
405
413
  # 如果全部失败,记录错误
406
414
  if not any(r.success for r in results):
@@ -420,7 +428,7 @@ async def handle_list_tools() -> list[types.Tool]:
420
428
  return [
421
429
  types.Tool(
422
430
  name="convert_document",
423
- description="Document format conversion tool.\n\nPDF can be converted to: DOCX/XLSX/PPTX/Images (including long images)/HTML/TXT (for text extraction)/CSV;\nOther formats can be converted to PDF: DOCX/XLSX/PPTX/Images/CAD/CAJ/OFD/HTML.\nOnly whole-file conversion is supported.\nDoes not support creating files from content.",
431
+ description="Document format conversion tool.\n\nPDF can be converted to: DOCX/XLSX/PPTX/Images (including long images)/HTML/TXT (for text extraction)/CSV;\nOther formats can be converted to PDF: DOCX/XLSX/PPTX/Images/CAD/CAJ/OFD/HTML/TEX (LaTeX).\nOnly whole-file conversion is supported. Does not support creating files from content.",
424
432
  inputSchema={
425
433
  "type": "object",
426
434
  "properties": {
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: lightpdf-aipdf-mcp
3
- Version: 0.1.121
3
+ Version: 0.1.123
4
4
  Summary: MCP Server for LightPDF AI-PDF
5
5
  Author: LightPDF Team
6
6
  License: Proprietary
@@ -2,10 +2,10 @@ lightpdf_aipdf_mcp/__init__.py,sha256=PPnAgpvJLYLVOTxnHDmJAulFnHJD6wuTwS6tRGjqq6
2
2
  lightpdf_aipdf_mcp/common.py,sha256=PhTf7Zg6mEgn1rTmJDHotXp-4xb2gWFf-Dy_t25qNdY,6660
3
3
  lightpdf_aipdf_mcp/converter.py,sha256=vAFB6XtDFt9NPS9yygKBuL4t43nZU--RqqKPC06Mvkg,16761
4
4
  lightpdf_aipdf_mcp/create_pdf.py,sha256=oALIhOBo60D3Gu_li7d7FF0COhFfSTM-BJpc63r9iAs,2465
5
- lightpdf_aipdf_mcp/editor.py,sha256=5YapqjYegnD1AIRvffLqeREkrgx-cdqlRrPc-aBtS-s,30124
6
- lightpdf_aipdf_mcp/server.py,sha256=eVTsc7oGoFmKnb7TDpkZresAmsJtTWsnxPGP54YBAmo,65742
5
+ lightpdf_aipdf_mcp/editor.py,sha256=cYJ6NlS9q_HJwL-Aw7mVwCT5CECMLWYlmR_ePhw_Ja4,30081
6
+ lightpdf_aipdf_mcp/server.py,sha256=88Bj0N5G6O2QVErAChp4Dqkxm2gDjp-06DjISFA2u0Y,66050
7
7
  lightpdf_aipdf_mcp/translator.py,sha256=NbFDz-mZSD4qCNQVyV0W_0x6xXwbqs_7FiBU13JAxZs,4243
8
- lightpdf_aipdf_mcp-0.1.121.dist-info/METADATA,sha256=S2-6OqheIjLbuqMijHValcr7agThiXQGAknZBftfJxs,8120
9
- lightpdf_aipdf_mcp-0.1.121.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
10
- lightpdf_aipdf_mcp-0.1.121.dist-info/entry_points.txt,sha256=X7TGUe52N4sYH-tYt0YUGApeJgw-efQlZA6uAZmlmr4,63
11
- lightpdf_aipdf_mcp-0.1.121.dist-info/RECORD,,
8
+ lightpdf_aipdf_mcp-0.1.123.dist-info/METADATA,sha256=Ag7iaAIyhL9-GVPH_VyoeK1-xKEMP5g1DxqVRCJ3R68,8120
9
+ lightpdf_aipdf_mcp-0.1.123.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
10
+ lightpdf_aipdf_mcp-0.1.123.dist-info/entry_points.txt,sha256=X7TGUe52N4sYH-tYt0YUGApeJgw-efQlZA6uAZmlmr4,63
11
+ lightpdf_aipdf_mcp-0.1.123.dist-info/RECORD,,