vyos.py 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #Created by hlmtre#
  2. """
  3. Works only in hlmtre's specifically configured environment
  4. and when his house has not burned down
  5. """
  6. import sys
  7. if sys.version_info > (3, 0, 0):
  8. try:
  9. from .basemodule import BaseModule
  10. except (ImportError, SystemError):
  11. from modules.basemodule import BaseModule
  12. else:
  13. try:
  14. from basemodule import BaseModule
  15. except (ImportError, SystemError):
  16. from modules.basemodule import BaseModule
  17. from event import Event
  18. class Vyos(BaseModule):
  19. def post_init(self):
  20. vevent = Event("__.vyos__")
  21. vevent.define(msg_definition="^\.vyos")
  22. vevent.subscribe(self)
  23. self.help = ".vyos <name of box>"
  24. self.box_to_ip = dict([('mech', '10.0.0.76'), ('bonekin', '192.168.17.40'), ('thraust', '192.168.0.126')])
  25. self.bot.register_event(vevent, self)
  26. def handle(self, event):
  27. self.event = event
  28. if event.msg.startswith(".vyos") and len(event.msg.split()) > 1:
  29. nick = event.msg.split()[-1]
  30. if not self.ping(nick):
  31. self.say(event.channel, "HEY " + nick.upper() + " UR VYOS BAWKCXZXCZX IS DOWN")
  32. else:
  33. self.say(event.channel, "HEY " + nick.upper() + " U KEPT SOMETHING ALIVE 4 ONCE")
  34. def ping(self, nick):
  35. import subprocess
  36. try:
  37. resp = subprocess.call(["ping", "-c 1", self.box_to_ip[nick.lower()]])
  38. except KeyError:
  39. self.say(self.event.channel, "BAD NAME IDIOT")
  40. return False
  41. if resp == 0:
  42. return True
  43. else:
  44. return False