| | |
| | | return None |
| | | |
| | | |
| | | async def close_parent_immediate_tasks(payload: Dict) -> Optional[Dict]: |
| | | """关闭家长即时任务。失败返回 None,不抛给语音热路径。未配置管理端视为成功。""" |
| | | if not payload or not ManageApiClient._instance: |
| | | return {"skipped": True} |
| | | try: |
| | | return await ManageApiClient._instance._async_request( |
| | | "POST", |
| | | "/task/instance/close-parent-immediate", |
| | | json=payload, |
| | | ) |
| | | except Exception as e: |
| | | print(f"关闭家长即时任务失败: {e}") |
| | | return None |
| | | |
| | | |
| | | async def sync_lesson_audio(payload: Dict) -> Optional[Dict]: |
| | | """请 manager-api 向设备发 UPDATE_MANIFEST。失败返回 None,不抛给热路径。""" |
| | | if not payload or not ManageApiClient._instance: |
| | | return {"skipped": True} |
| | | try: |
| | | return await ManageApiClient._instance._async_request( |
| | | "POST", |
| | | "/task/lesson-sync", |
| | | json=payload, |
| | | ) |
| | | except Exception as e: |
| | | print(f"课文同步下发失败: {e}") |
| | | return None |
| | | |
| | | |
| | | def init_service(config): |
| | | ManageApiClient(config) |
| | | |