Files
xiaoli-cli/operit_py/tasker.py
T
shuiyu1123 dc77dfd304 feat: 将 47 个 Operit TypeScript 脚本全面翻译为 Python
- 新增 operit_runtime.py: 跨平台 Python 运行时
  - 实现 Tools.System/Files/Net/UI/Memory/FFmpeg/Workflow/Chat/SoftwareSettings/Tasker
  - 实现 OkHttp 链式 HTTP 客户端兼容层
  - 实现 complete()/exports/console 全局对象
  - 实现 OperitScriptLoader 脚本加载器
  - 支持 Windows/macOS/Linux 三平台

- 新增 operit_py/ 目录: 47 个 Python 翻译脚本
  - 搜索类: duckduckgo, google_search, tavily, zhipu_search, various_search, crossref
  - 绘图类: openai_draw, qwen_draw, xai_draw, minimax_draw, siliconflow_draw, zhipu_draw, nanobanana_draw
  - 媒体类: ffmpeg, file_converter, douyin_download, bilibili_tools, jmcomic
  - 文件类: extended_file_tools, hex_editor, reader, beeimg_image_uploader
  - 网络类: extended_http_tools, network_test
  - 自动化类: browser, automatic_ui_base, automatic_ui_subagent, automatic_bilibili_assistant, automatic_xiaohongshu_assistant, automatic_baidu_map_assistant
  - 系统类: system_tools, super_admin, daily_life, operit_editor
  - 对话类: ai_chat, extended_chat, qq_intelligent
  - 工作流类: workflow, vflow_trigger, tasker
  - 工具类: time, code_runner, quick_start, extended_memory_tools, baidu_map, 12306, pdf_vision_parser

- 测试结果: 47/47 语法检查通过, 38 脚本加载成功, 280 个工具注册
- Android 专属功能已降级处理(保留接口,返回不支持提示)
2026-06-23 12:27:18 +00:00

60 lines
2.5 KiB
Python

# METADATA
# {
# "name": "tasker",
#
# "display_name": {
# "zh": "Tasker 触发器",
# "en": "Tasker Trigger"
# },
# "description": {
# "zh": "集成 Tasker 插件事件触发工具,通过本包可向 Tasker 发送事件。",
# "en": "Integration for triggering Tasker plugin events. This package lets you send events to Tasker."
# },
# "enabledByDefault": false,
# "category": "Workflow",
# "tools": [
# {
# "name": "trigger_tasker_event",
# "description": {
# "zh": "触发一个 Tasker 事件。使用 task_type 指定事件类型,可传 arg1..arg5 或 args_json。",
# "en": "Trigger a Tasker event. Use task_type to specify the event type. You can pass arg1..arg5 or args_json."
# },
# "parameters": [
# { "name": "task_type", "description": { "zh": "事件类型标识", "en": "Event type identifier" }, "type": "string", "required": true },
# { "name": "arg1", "description": { "zh": "可选参数1", "en": "Optional argument 1" }, "type": "string", "required": false },
# { "name": "arg2", "description": { "zh": "可选参数2", "en": "Optional argument 2" }, "type": "string", "required": false },
# { "name": "arg3", "description": { "zh": "可选参数3", "en": "Optional argument 3" }, "type": "string", "required": false },
# { "name": "arg4", "description": { "zh": "可选参数4", "en": "Optional argument 4" }, "type": "string", "required": false },
# { "name": "arg5", "description": { "zh": "可选参数5", "en": "Optional argument 5" }, "type": "string", "required": false },
# { "name": "args_json", "description": { "zh": "以JSON形式传递任意参数", "en": "Pass arbitrary parameters as a JSON string" }, "type": "string", "required": false }
# ]
# }
# ]
# }
async def trigger_tasker_event(params):
data = await Tools.Tasker.triggerEvent(params)
return {
"success": True,
"message": "Tasker 事件已触发",
"data": data
}
async def wrapToolExecution(func, params=None):
try:
result = await func(params if params is not None else {})
complete(result)
except Exception as error:
console.error(f"Tool {func.__name__} failed unexpectedly", error)
msg = str(getattr(error, "message", error))
complete({"success": False, "message": msg})
async def trigger_tasker_event_wrapper(params=None):
await wrapToolExecution(trigger_tasker_event, params)
exports.trigger_tasker_event = trigger_tasker_event_wrapper