a549bd3b2f
- manage_scheduled_task: INSERT 加 user_id='', 检查 psql 退出码 - search_web: 用 python json.dumps 构造请求体(防止注入) - 删除 lmstudio.rs / LmStudioConfig,仅保留 DeepSeek - config.json 移除 lmstudio 段
48 lines
2.3 KiB
Bash
Executable File
48 lines
2.3 KiB
Bash
Executable File
#!/bin/bash
|
||
# 管理定时任务 → JSON 输出(参数化查询)
|
||
read -r input
|
||
ACTION=$(echo "$input" | python3 -c "import sys,json; print(json.load(sys.stdin).get('action',''))" 2>/dev/null)
|
||
NAME=$(echo "$input" | python3 -c "import sys,json; print(json.load(sys.stdin).get('name',''))" 2>/dev/null)
|
||
CMD=$(echo "$input" | python3 -c "import sys,json; print(json.load(sys.stdin).get('command',''))" 2>/dev/null)
|
||
INTERVAL=$(echo "$input" | python3 -c "import sys,json; print(json.load(sys.stdin).get('interval_seconds',3600))" 2>/dev/null)
|
||
DESC=$(echo "$input" | python3 -c "import sys,json; print(json.load(sys.stdin).get('description',''))" 2>/dev/null)
|
||
|
||
DB_URL="${DATABASE_URL}"
|
||
[ -z "$DB_URL" ] && echo '{"error":"数据库未配置"}' && exit 0
|
||
[ -z "$NAME" ] && echo '{"error":"请提供 name 参数"}' && exit 0
|
||
|
||
case "$ACTION" in
|
||
add)
|
||
[ -z "$CMD" ] && echo '{"error":"add 需要 command 参数"}' && exit 0
|
||
psql "$DB_URL" -v name="$NAME" -v desc="$DESC" -v cmd="$CMD" -v interval="$INTERVAL" << 'SQL'
|
||
INSERT INTO scheduled_tasks (id, name, description, command, interval_seconds, enabled, user_id, next_run_at)
|
||
VALUES (gen_random_uuid(), :'name', :'desc', :'cmd', :interval, true, '', NOW() + interval ':interval seconds')
|
||
ON CONFLICT (name) DO UPDATE SET command=EXCLUDED.command, interval_seconds=EXCLUDED.interval_seconds, enabled=true, description=EXCLUDED.description
|
||
SQL
|
||
if [ $? -eq 0 ]; then
|
||
echo '{"ok":true,"action":"add","name":"'"$NAME"'"}'
|
||
else
|
||
echo '{"error":"添加失败"}'
|
||
fi
|
||
;;
|
||
delete)
|
||
psql "$DB_URL" -v name="$NAME" -c "DELETE FROM scheduled_tasks WHERE name = :'name'" 2>/dev/null && \
|
||
echo '{"ok":true,"action":"delete","name":"'"$NAME"'"}' || \
|
||
echo '{"error":"删除失败"}'
|
||
;;
|
||
enable)
|
||
psql "$DB_URL" -v name="$NAME" -c "UPDATE scheduled_tasks SET enabled = true WHERE name = :'name'" 2>/dev/null && \
|
||
echo '{"ok":true,"action":"enable","name":"'"$NAME"'"}' || \
|
||
echo '{"error":"启用失败"}'
|
||
;;
|
||
disable)
|
||
psql "$DB_URL" -v name="$NAME" -c "UPDATE scheduled_tasks SET enabled = false WHERE name = :'name'" 2>/dev/null && \
|
||
echo '{"ok":true,"action":"disable","name":"'"$NAME"'"}' || \
|
||
echo '{"error":"禁用失败"}'
|
||
;;
|
||
*)
|
||
echo '{"error":"未知操作: '"$ACTION"'(支持: add, delete, enable, disable)"}'
|
||
exit 1
|
||
;;
|
||
esac
|