perf(mtproto): fast tg link; logs via separate endpoint

/api/mtproto/status skips docker logs. /api/mtproto/logs loads tail async. Install response sets link card immediately. v1.2.23.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Андрей Бобырев
2026-05-15 04:14:35 +03:00
parent c72a7b9c02
commit 3c2866818a
5 changed files with 53 additions and 30 deletions

View File

@@ -2246,12 +2246,19 @@ app.get("/api/mtproto/status", requireAuth, (req, res) => {
return res.status(403).json({ error: MSG_UI_MTProto_OFF });
}
const snap = mtprotoSnapshot(hostFromRequest(req));
let logsTail = "";
if (snap.exists && snap.running) {
const l = dockerSpawnSync(["logs", "--tail", "100", MTPRO_CONTAINER], 12_000);
if (l.code === 0) logsTail = l.stdout.trim().slice(-4500);
res.json({ ...snap });
});
app.get("/api/mtproto/logs", requireAuth, (req, res) => {
if (effectiveUiHidden().mtproto) {
return res.status(403).json({ error: MSG_UI_MTProto_OFF });
}
res.json({ ...snap, logsTail });
const snap = mtprotoSnapshot(hostFromRequest(req));
if (!snap.exists || !snap.running) return res.json({ logsTail: "" });
const l = dockerSpawnSync(["logs", "--tail", "100", MTPRO_CONTAINER], 12_000);
let logsTail = "";
if (l.code === 0) logsTail = l.stdout.trim().slice(-4500);
res.json({ logsTail });
});
app.post("/api/mtproto/install", requireAuth, (req, res) => {