fix: /response с фильтром device_id

This commit is contained in:
Repinoid
2026-07-10 12:56:40 +04:00
parent 15caff3204
commit ba48cd2daf
+13
View File
@@ -236,11 +236,18 @@ def raw_get_response():
"""Copilot: прочитать последний ответ.""" """Copilot: прочитать последний ответ."""
seq = int(request.args.get("seq", 0)) seq = int(request.args.get("seq", 0))
wait_s = int(request.args.get("wait", 0)) wait_s = int(request.args.get("wait", 0))
device_id = request.args.get("device_id", "")
if wait_s > 0: if wait_s > 0:
dl = time.time() + wait_s dl = time.time() + wait_s
while time.time() < dl: while time.time() < dl:
with Database() as db: with Database() as db:
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( 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", "SELECT seq, cmd, raw_response, elapsed_ms, prompt, error FROM command_queue WHERE seq > ? AND status='done' ORDER BY seq DESC LIMIT 1",
(seq,) (seq,)
@@ -251,6 +258,12 @@ def raw_get_response():
time.sleep(0.5) time.sleep(0.5)
with Database() as db: with Database() as db:
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( 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" "SELECT seq, cmd, raw_response, elapsed_ms, prompt, error FROM command_queue WHERE status='done' ORDER BY seq DESC LIMIT 1"
).fetchone() ).fetchone()