Kumi
202bed25c6
Replace bunch of globals with single dictionary Move commands to subdirectory Add coin toss command (because) Add command to ignore previous messages in a room as context
23 lines
No EOL
998 B
Python
23 lines
No EOL
998 B
Python
from nio.events.room_events import RoomMessageText
|
|
from nio.rooms import MatrixRoom
|
|
|
|
async def command_stats(room: MatrixRoom, event: RoomMessageText, context: dict):
|
|
context["logger"]("Showing stats...")
|
|
|
|
if not (database := context.get("database")):
|
|
context["logger"]("No database connection - cannot show stats")
|
|
context["client"].room_send(
|
|
room.room_id, "m.room.message", {"msgtype": "m.notice",
|
|
"body": "Sorry, I'm not connected to a database, so I don't have any statistics on your usage."}
|
|
)
|
|
return
|
|
|
|
with database.cursor() as cursor:
|
|
cursor.execute(
|
|
"SELECT SUM(tokens) FROM token_usage WHERE room_id = ?", (room.room_id,))
|
|
total_tokens = cursor.fetchone()[0] or 0
|
|
|
|
await context["client"].room_send(
|
|
room.room_id, "m.room.message", {"msgtype": "m.notice",
|
|
"body": f"Total tokens used: {total_tokens}"}
|
|
) |