EchoBot.py 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import logging
  2. import slixmpp
  3. import config
  4. from datetime import datetime
  5. class JabberBot(slixmpp.ClientXMPP):
  6. """
  7. JabberBot
  8. """
  9. def __init__(self, jid, password):
  10. slixmpp.ClientXMPP.__init__(self, jid, password)
  11. # Register plugins
  12. self.register_plugin('xep_0030') # Service Discovery
  13. self.register_plugin('xep_0004') # Data Forms
  14. self.register_plugin('xep_0060') # PubSub
  15. self.register_plugin('xep_0199') # XMPP Ping
  16. def register_handler(self, name, handler):
  17. self.add_event_handler(name, handler)
  18. async def start(self, event):
  19. # TODO: Нужно ли
  20. # self.send_presence()
  21. # await self.get_roster()
  22. logging.info("Bot started!")
  23. # Connect to the XMPP server and start processing XMPP stanzas.
  24. self.connect()
  25. def log(self, message):
  26. # надо строчку лога сделать более информативной
  27. logfile = open("logs/" + datetime.now().strftime('%Y-%m-%d') + "-" + self.user + ".log", "a")
  28. logfile.write(message)
  29. logfile.close()
  30. print(message)
  31. def stop(self):
  32. self.disconnect()