roomsettings.py 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. from nio.events.room_events import RoomMessageText
  2. from nio.rooms import MatrixRoom
  3. async def command_roomsettings(room: MatrixRoom, event: RoomMessageText, bot):
  4. setting = event.body.split()[2]
  5. value = " ".join(event.body.split()[3:]) if len(
  6. event.body.split()) > 3 else None
  7. if setting == "system_message":
  8. if value:
  9. bot.logger.log("Adding system message...")
  10. with bot.database.cursor() as cur:
  11. cur.execute(
  12. """INSERT INTO room_settings (room_id, setting, value) VALUES (?, ?, ?)
  13. ON CONFLICT (room_id, setting) DO UPDATE SET value = ?;""",
  14. (room.room_id, "system_message", value, value)
  15. )
  16. await bot.send_message(room, f"Alright, I've stored the system message: '{value}'.", True)
  17. return
  18. bot.logger.log("Retrieving system message...")
  19. system_message = bot.get_system_message(room)
  20. await bot.send_message(room, f"The current system message is: '{system_message}'.", True)
  21. return
  22. if setting == "classification":
  23. if value:
  24. if value.lower() in ["true", "false"]:
  25. value = value.lower() == "true"
  26. bot.logger.log("Setting classification status...")
  27. with bot.database.cursor() as cur:
  28. cur.execute(
  29. """INSERT INTO room_settings (room_id, setting, value) VALUES (?, ?, ?)
  30. ON CONFLICT (room_id, setting) DO UPDATE SET value = ?;""",
  31. (room.room_id, "use_classification", "1" if value else "0", "1" if value else "0")
  32. )
  33. await bot.send_message(room, f"Alright, I've set use_classification to: '{value}'.", True)
  34. return
  35. await bot.send_message(room, "You need to provide a boolean value (true/false).", True)
  36. return
  37. bot.logger.log("Retrieving classification status...")
  38. use_classification = await bot.room_uses_classification(room)
  39. await bot.send_message(room, f"The current classification status is: '{use_classification}'.", True)
  40. return
  41. message = f"""
  42. The following settings are available:
  43. - system_message [message]: Get or set the system message to be sent to the chat model
  44. - classification [true/false]: Get or set whether the room uses classification
  45. """
  46. await bot.send_message(room, message, True)