#!/usr/bin/env python3
"""Lihat riwayat pesan user terakhir di state.db Hermes (semua profil) untuk konteks chat."""
import sqlite3, sys, datetime
db = "/home/mantapman/.hermes/state.db"
c = sqlite3.connect(f"file:{db}?mode=ro", uri=True)
cols = [r[1] for r in c.execute("PRAGMA table_info(messages)")]
scols = [r[1] for r in c.execute("PRAGMA table_info(sessions)")]
print("messages:", cols)
print("sessions:", scols)

def ts(v):
    try:
        return datetime.datetime.fromtimestamp(float(v)).strftime("%d %b %H:%M")
    except Exception:
        return str(v)

mode = sys.argv[1] if len(sys.argv) > 1 else "last"
if mode == "find":
    pola = sys.argv[2]
    for row in c.execute("""SELECT id, session_id, substr(content,1,200), timestamp FROM messages
                            WHERE role='user' AND content LIKE ? ORDER BY id DESC LIMIT 10""", (f"%{pola}%",)):
        print("-" * 70)
        print(row[0], row[1], ts(row[3]))
        print(row[2].replace("\n", " "))
else:
    for row in c.execute("""SELECT m.id, m.session_id, s.title, substr(m.content,1,180), m.timestamp
                            FROM messages m LEFT JOIN sessions s ON s.id=m.session_id
                            WHERE m.role='user' ORDER BY m.id DESC LIMIT 40"""):
        print("-" * 70)
        print(row[0], "|", row[1], "|", row[2], "|", ts(row[4]))
        print(row[3].replace("\n", " "))
