aboutsummaryrefslogtreecommitdiff
path: root/IRCUser.py
diff options
context:
space:
mode:
Diffstat (limited to 'IRCUser.py')
-rw-r--r--IRCUser.py41
1 files changed, 41 insertions, 0 deletions
diff --git a/IRCUser.py b/IRCUser.py
new file mode 100644
index 00000000..204ca85a
--- /dev/null
+++ b/IRCUser.py
@@ -0,0 +1,41 @@
+import uuid
+
+class User(object):
+ def __init__(self, nickname, server, bot):
+ self.set_nickname(nickname)
+ self.username = None
+ self.realname = None
+ self.hostname = None
+ self.server = server
+ self.bot = bot
+ self.channels = set([])
+ self.id = None
+ while self.id == None or self.id in server.users:
+ self.id = uuid.uuid1().hex
+ def set_nickname(self, nickname):
+ self.nickname = nickname
+ self.nickname_lower = nickname.lower()
+ self.name = self.nickname_lower
+ def join_channel(self, channel):
+ self.channels.add(channel)
+ def part_channel(self, channel):
+ self.channels.remove(channel)
+ def set_setting(self, setting, value):
+ self.bot.database.set_user_setting(self.server.id, self.nickname,
+ setting, value)
+ def get_setting(self, setting, default=None):
+ return self.bot.database.get_user_setting(self.server.id,
+ self.nickname, setting, default)
+ def find_settings(self, pattern, default=[]):
+ return self.bot.database.find_user_settings(self.server.id,
+ self.nickname, pattern, default)
+ def del_setting(self, setting):
+ self.bot.database.del_user_setting(self.server.id, self.nickname,
+ setting)
+
+ def send_message(self, message):
+ self.server.send_message(self.nickname, message)
+ def send_notice(self, message):
+ self.server.send_notice(self.nickname, message)
+ def send_ctcp_response(self, command, args):
+ self.send_notice("\x01%s %s\x01" % (command, args))