source file: irc/lusers.py
file stats: 39 lines, 39 executed: 100.0% covered
1. #!/usr/bin/env python
2.
3. class lusers:
4.
5. _state = None
6.
7. def __init__(self, state):
8. self._state = state
9. state.registerCallback(state.CALLBACK_REQUESTLUSERS, self.callbackLusers)
10.
11. def callbackLusers(self, (origin, target, dummy)):
12. if target[0] == self._state.getServerID():
13. infostr = "There "
14. if len(self._state.users) == 1:
15. infostr += "is 1 user on "
16. else:
17. infostr += "are " + str(len(self._state.users)) + " users on "
18. if len(self._state.servers) == 1:
19. infostr += "1 server."
20. else:
21. infostr += str(len(self._state.servers)) + " servers."
22. self._state.oobmsg((self._state.getServerID(), None), origin, "251", [infostr])
23.
24. operators = 0
25. for user in self._state.users:
26. if self._state.users[user].hasMode("o"):
27. operators += 1
28. if operators == 1:
29. infostr = "operator online."
30. else:
31. infostr = "operators online."
32. self._state.oobmsg((self._state.getServerID(), None), origin, "252", [str(operators), infostr])
33.
34. if len(self._state.channels) == 1:
35. infostr = "channel formed."
36. else:
37. infostr = "channels formed."
38. self._state.oobmsg((self._state.getServerID(), None), origin, "254", [str(len(self._state.channels)), infostr])
39.
40. local = 0
41. for user in self._state.users:
42. if user[0] == self._state.getServerID():
43. local += 1
44. infostr = "I have "
45. if local == 1:
46. infostr += "1 client and "
47. else:
48. infostr += str(local) + " clients and "
49. if len(self._state.servers[self._state.getServerID()].children) == 1:
50. infostr += "1 server."
51. else:
52. infostr += str(len(self._state.servers[self._state.getServerID()].children)) + " servers."
53. self._state.oobmsg((self._state.getServerID(), None), origin, "255", [infostr])