on_pubmsg.py 1.5 KB

12345678910111213141516171819202122232425262728
  1. import datetime
  2. from events.common import Replyto
  3. def process_event(self, connection, event):
  4. if connection.get_nickname().lower() in event.arguments[0].lower() and event.source.nick is not connection.get_nickname(): # Bot's name was mentioned
  5. if event.arguments[0].startswith(self.cmdchar):
  6. return # Stop if it's a command.
  7. if not self.db.one("SELECT chat FROM channels WHERE name='" + event.target + "' AND network='" + self.network + "'"):
  8. return # Stop if channelfunction chat if off.
  9. Replyto.name(connection, event)
  10. # Character lame.
  11. elif event.arguments[0] == len(event.arguments[0]) * event.arguments[0][0]: # Trigger exclusively same character.
  12. # Stop if chat channel function is off.
  13. if not self.db.one("SELECT chat FROM channels WHERE name='" + event.target + "' AND network='" + self.network + "'"):
  14. return
  15. # Stop if lamed recently.
  16. lastlame = self.db.one("SELECT last_lame FROM channels WHERE name='" + event.target + "' AND network='" + self.network + "'")
  17. if lastlame and lastlame > datetime.datetime.now() - datetime.timedelta(minutes=2): # In the last 2 minutes.
  18. return
  19. # Update lastlame.
  20. self.db.run("UPDATE channels SET last_lame='" + str(datetime.datetime.now()) + "' WHERE name='" + event.target + "' AND network='" + self.network + "'")
  21. connection.privmsg(event.target, event.arguments[0] + event.arguments[0][:1])