media-agent-mcp 2.6.2__tar.gz → 2.6.3__tar.gz

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.
Files changed (56) hide show
  1. {media_agent_mcp-2.6.2 → media_agent_mcp-2.6.3}/PKG-INFO +1 -1
  2. {media_agent_mcp-2.6.2 → media_agent_mcp-2.6.3}/pyproject.toml +1 -1
  3. {media_agent_mcp-2.6.2 → media_agent_mcp-2.6.3}/src/media_agent_mcp/ai_models/openaiedit.py +35 -21
  4. {media_agent_mcp-2.6.2 → media_agent_mcp-2.6.3}/src/media_agent_mcp.egg-info/PKG-INFO +1 -1
  5. {media_agent_mcp-2.6.2 → media_agent_mcp-2.6.3}/README.md +0 -0
  6. {media_agent_mcp-2.6.2 → media_agent_mcp-2.6.3}/setup.cfg +0 -0
  7. {media_agent_mcp-2.6.2 → media_agent_mcp-2.6.3}/src/media_agent_mcp/__init__.py +0 -0
  8. {media_agent_mcp-2.6.2 → media_agent_mcp-2.6.3}/src/media_agent_mcp/ai_models/__init__.py +0 -0
  9. {media_agent_mcp-2.6.2 → media_agent_mcp-2.6.3}/src/media_agent_mcp/ai_models/omni_human.py +0 -0
  10. {media_agent_mcp-2.6.2 → media_agent_mcp-2.6.3}/src/media_agent_mcp/ai_models/seed16.py +0 -0
  11. {media_agent_mcp-2.6.2 → media_agent_mcp-2.6.3}/src/media_agent_mcp/ai_models/seedance.py +0 -0
  12. {media_agent_mcp-2.6.2 → media_agent_mcp-2.6.3}/src/media_agent_mcp/ai_models/seededit.py +0 -0
  13. {media_agent_mcp-2.6.2 → media_agent_mcp-2.6.3}/src/media_agent_mcp/ai_models/seedream.py +0 -0
  14. {media_agent_mcp-2.6.2 → media_agent_mcp-2.6.3}/src/media_agent_mcp/ai_models/tts.py +0 -0
  15. {media_agent_mcp-2.6.2 → media_agent_mcp-2.6.3}/src/media_agent_mcp/async_server.py +0 -0
  16. {media_agent_mcp-2.6.2 → media_agent_mcp-2.6.3}/src/media_agent_mcp/async_wrapper.py +0 -0
  17. {media_agent_mcp-2.6.2 → media_agent_mcp-2.6.3}/src/media_agent_mcp/audio/combiner.py +0 -0
  18. {media_agent_mcp-2.6.2 → media_agent_mcp-2.6.3}/src/media_agent_mcp/audio/speed_controller.py +0 -0
  19. {media_agent_mcp-2.6.2 → media_agent_mcp-2.6.3}/src/media_agent_mcp/audio/tts.py +0 -0
  20. {media_agent_mcp-2.6.2 → media_agent_mcp-2.6.3}/src/media_agent_mcp/be/README.md +0 -0
  21. {media_agent_mcp-2.6.2 → media_agent_mcp-2.6.3}/src/media_agent_mcp/be/__init__.py +0 -0
  22. {media_agent_mcp-2.6.2 → media_agent_mcp-2.6.3}/src/media_agent_mcp/be/__pycache__/__init__.cpython-312.pyc +0 -0
  23. {media_agent_mcp-2.6.2 → media_agent_mcp-2.6.3}/src/media_agent_mcp/be/__pycache__/app.cpython-312.pyc +0 -0
  24. {media_agent_mcp-2.6.2 → media_agent_mcp-2.6.3}/src/media_agent_mcp/be/__pycache__/routes_media.cpython-312.pyc +0 -0
  25. {media_agent_mcp-2.6.2 → media_agent_mcp-2.6.3}/src/media_agent_mcp/be/__pycache__/routes_omni.cpython-312.pyc +0 -0
  26. {media_agent_mcp-2.6.2 → media_agent_mcp-2.6.3}/src/media_agent_mcp/be/__pycache__/routes_subtitles.cpython-312.pyc +0 -0
  27. {media_agent_mcp-2.6.2 → media_agent_mcp-2.6.3}/src/media_agent_mcp/be/__pycache__/utils.cpython-312.pyc +0 -0
  28. {media_agent_mcp-2.6.2 → media_agent_mcp-2.6.3}/src/media_agent_mcp/be/app.py +0 -0
  29. {media_agent_mcp-2.6.2 → media_agent_mcp-2.6.3}/src/media_agent_mcp/be/fonts/en/EduNSWACTCursive-VariableFont_wght.ttf +0 -0
  30. {media_agent_mcp-2.6.2 → media_agent_mcp-2.6.3}/src/media_agent_mcp/be/fonts/en/MozillaText-VariableFont_wght.ttf +0 -0
  31. {media_agent_mcp-2.6.2 → media_agent_mcp-2.6.3}/src/media_agent_mcp/be/fonts/en/Roboto_Condensed-Regular.ttf +0 -0
  32. {media_agent_mcp-2.6.2 → media_agent_mcp-2.6.3}/src/media_agent_mcp/be/fonts/zh/MaShanZheng-Regular.ttf +0 -0
  33. {media_agent_mcp-2.6.2 → media_agent_mcp-2.6.3}/src/media_agent_mcp/be/fonts/zh/NotoSerifSC-VariableFont_wght.ttf +0 -0
  34. {media_agent_mcp-2.6.2 → media_agent_mcp-2.6.3}/src/media_agent_mcp/be/fonts/zh/ZCOOLXiaoWei-Regular.ttf +0 -0
  35. {media_agent_mcp-2.6.2 → media_agent_mcp-2.6.3}/src/media_agent_mcp/be/pyproject.toml +0 -0
  36. {media_agent_mcp-2.6.2 → media_agent_mcp-2.6.3}/src/media_agent_mcp/be/routes_media.py +0 -0
  37. {media_agent_mcp-2.6.2 → media_agent_mcp-2.6.3}/src/media_agent_mcp/be/routes_subtitles.py +0 -0
  38. {media_agent_mcp-2.6.2 → media_agent_mcp-2.6.3}/src/media_agent_mcp/be/utils.py +0 -0
  39. {media_agent_mcp-2.6.2 → media_agent_mcp-2.6.3}/src/media_agent_mcp/be/uv.lock +0 -0
  40. {media_agent_mcp-2.6.2 → media_agent_mcp-2.6.3}/src/media_agent_mcp/install_tools/__init__.py +0 -0
  41. {media_agent_mcp-2.6.2 → media_agent_mcp-2.6.3}/src/media_agent_mcp/install_tools/installer.py +0 -0
  42. {media_agent_mcp-2.6.2 → media_agent_mcp-2.6.3}/src/media_agent_mcp/media_selectors/__init__.py +0 -0
  43. {media_agent_mcp-2.6.2 → media_agent_mcp-2.6.3}/src/media_agent_mcp/media_selectors/image_selector.py +0 -0
  44. {media_agent_mcp-2.6.2 → media_agent_mcp-2.6.3}/src/media_agent_mcp/media_selectors/video_selector.py +0 -0
  45. {media_agent_mcp-2.6.2 → media_agent_mcp-2.6.3}/src/media_agent_mcp/server.py +0 -0
  46. {media_agent_mcp-2.6.2 → media_agent_mcp-2.6.3}/src/media_agent_mcp/storage/__init__.py +0 -0
  47. {media_agent_mcp-2.6.2 → media_agent_mcp-2.6.3}/src/media_agent_mcp/storage/tos_client.py +0 -0
  48. {media_agent_mcp-2.6.2 → media_agent_mcp-2.6.3}/src/media_agent_mcp/video/__init__.py +0 -0
  49. {media_agent_mcp-2.6.2 → media_agent_mcp-2.6.3}/src/media_agent_mcp/video/processor.py +0 -0
  50. {media_agent_mcp-2.6.2 → media_agent_mcp-2.6.3}/src/media_agent_mcp/video/stack.py +0 -0
  51. {media_agent_mcp-2.6.2 → media_agent_mcp-2.6.3}/src/media_agent_mcp/video/subtitle.py +0 -0
  52. {media_agent_mcp-2.6.2 → media_agent_mcp-2.6.3}/src/media_agent_mcp.egg-info/SOURCES.txt +0 -0
  53. {media_agent_mcp-2.6.2 → media_agent_mcp-2.6.3}/src/media_agent_mcp.egg-info/dependency_links.txt +0 -0
  54. {media_agent_mcp-2.6.2 → media_agent_mcp-2.6.3}/src/media_agent_mcp.egg-info/entry_points.txt +0 -0
  55. {media_agent_mcp-2.6.2 → media_agent_mcp-2.6.3}/src/media_agent_mcp.egg-info/requires.txt +0 -0
  56. {media_agent_mcp-2.6.2 → media_agent_mcp-2.6.3}/src/media_agent_mcp.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: media-agent-mcp
3
- Version: 2.6.2
3
+ Version: 2.6.3
4
4
  Summary: A Model Context Protocol server for media processing with AI tools
5
5
  Author-email: Media Agent Team <team@mediaagent.com>
6
6
  Keywords: mcp,ai,media,video,image,processing
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "media-agent-mcp"
3
- version = "2.6.2"
3
+ version = "2.6.3"
4
4
  description = "A Model Context Protocol server for media processing with AI tools"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.12"
@@ -183,33 +183,47 @@ def google_edit(image_urls: List[str], prompt: str) -> Dict[str, Any]:
183
183
 
184
184
  contents = pil_images + [prompt]
185
185
 
186
- # model = genai.GenerativeModel("gemini-1.5-flash-latest")
187
- # response = model.generate_content(contents)
188
186
  client = genai.Client(
189
187
  api_key=api_key,
190
188
  )
191
189
 
192
- response = client.models.generate_content(
193
- model="gemini-2.5-flash-image-preview",
194
- contents=contents
195
- )
190
+ # 最多尝试3次
191
+ max_retries = 3
192
+ for attempt in range(max_retries):
193
+ try:
194
+ response = client.models.generate_content(
195
+ model="gemini-2.5-flash-image-preview",
196
+ contents=contents
197
+ )
196
198
 
197
- image_data = None
198
- if response.candidates and response.candidates[0].content and response.candidates[0].content.parts:
199
- image_parts = [
200
- part.inline_data.data
201
- for part in response.candidates[0].content.parts
202
- if part.inline_data
203
- ]
204
- if image_parts:
205
- image_data = image_parts[0]
199
+ image_data = None
200
+ if response.candidates and response.candidates[0].content and response.candidates[0].content.parts:
201
+ image_parts = [
202
+ part.inline_data.data
203
+ for part in response.candidates[0].content.parts
204
+ if part.inline_data
205
+ ]
206
+ if image_parts:
207
+ image_data = image_parts[0]
206
208
 
207
- if not image_data:
208
- return {
209
- "status": "error",
210
- "data": None,
211
- "message": "Google API response did not contain image data."
212
- }
209
+ # 如果获取到了图片数据,跳出重试循环
210
+ if image_data:
211
+ break
212
+
213
+ # 如果是最后一次尝试且仍然没有图片数据,返回错误
214
+ if attempt == max_retries - 1:
215
+ return {
216
+ "status": "error",
217
+ "data": None,
218
+ "message": f"Google API response did not contain image data after {max_retries} attempts."
219
+ }
220
+
221
+ except Exception as api_error:
222
+ # 如果是最后一次尝试,抛出异常
223
+ if attempt == max_retries - 1:
224
+ raise api_error
225
+ # 否则继续下一次尝试
226
+ continue
213
227
 
214
228
  with tempfile.NamedTemporaryFile(delete=False, suffix='.png') as temp_edited_file:
215
229
  temp_edited_file.write(image_data)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: media-agent-mcp
3
- Version: 2.6.2
3
+ Version: 2.6.3
4
4
  Summary: A Model Context Protocol server for media processing with AI tools
5
5
  Author-email: Media Agent Team <team@mediaagent.com>
6
6
  Keywords: mcp,ai,media,video,image,processing