fix: /response с фильтром device_id
This commit is contained in:
+20
-7
@@ -236,24 +236,37 @@ def raw_get_response():
|
||||
"""Copilot: прочитать последний ответ."""
|
||||
seq = int(request.args.get("seq", 0))
|
||||
wait_s = int(request.args.get("wait", 0))
|
||||
device_id = request.args.get("device_id", "")
|
||||
|
||||
if wait_s > 0:
|
||||
dl = time.time() + wait_s
|
||||
while time.time() < dl:
|
||||
with Database() as db:
|
||||
row = db.conn.execute(
|
||||
"SELECT seq, cmd, raw_response, elapsed_ms, prompt, error FROM command_queue WHERE seq > ? AND status='done' ORDER BY seq DESC LIMIT 1",
|
||||
(seq,)
|
||||
).fetchone()
|
||||
if device_id:
|
||||
row = db.conn.execute(
|
||||
"SELECT seq, cmd, raw_response, elapsed_ms, prompt, error FROM command_queue WHERE seq > ? AND status='done' AND device_id=? ORDER BY seq DESC LIMIT 1",
|
||||
(seq, device_id)
|
||||
).fetchone()
|
||||
else:
|
||||
row = db.conn.execute(
|
||||
"SELECT seq, cmd, raw_response, elapsed_ms, prompt, error FROM command_queue WHERE seq > ? AND status='done' ORDER BY seq DESC LIMIT 1",
|
||||
(seq,)
|
||||
).fetchone()
|
||||
if row:
|
||||
return jsonify({"seq": row["seq"], "cmd": row["cmd"], "raw": row["raw_response"],
|
||||
"elapsed_ms": row["elapsed_ms"], "prompt": bool(row["prompt"]), "error": row["error"]})
|
||||
time.sleep(0.5)
|
||||
|
||||
with Database() as db:
|
||||
row = db.conn.execute(
|
||||
"SELECT seq, cmd, raw_response, elapsed_ms, prompt, error FROM command_queue WHERE status='done' ORDER BY seq DESC LIMIT 1"
|
||||
).fetchone()
|
||||
if device_id:
|
||||
row = db.conn.execute(
|
||||
"SELECT seq, cmd, raw_response, elapsed_ms, prompt, error FROM command_queue WHERE status='done' AND device_id=? ORDER BY seq DESC LIMIT 1",
|
||||
(device_id,)
|
||||
).fetchone()
|
||||
else:
|
||||
row = db.conn.execute(
|
||||
"SELECT seq, cmd, raw_response, elapsed_ms, prompt, error FROM command_queue WHERE status='done' ORDER BY seq DESC LIMIT 1"
|
||||
).fetchone()
|
||||
if not row:
|
||||
return jsonify({"error": "no response yet", "seq": 0})
|
||||
return jsonify({"seq": row["seq"], "cmd": row["cmd"], "raw": row["raw_response"],
|
||||
|
||||
Reference in New Issue
Block a user