aboutsummaryrefslogtreecommitdiff
path: root/IRCLineHandler.py
diff options
context:
space:
mode:
authorGravatar jesopo2018-07-22 21:46:22 +0100
committerGravatar jesopo2018-07-22 21:46:22 +0100
commit2ea2dd17da4029434023bb237aa37826e88f6cf9 (patch)
tree09bdd198009782993f51fc94f5013991d35b1865 /IRCLineHandler.py
parentremove debug print in books.py (diff)
signature
implemented handling notices in IRCLineHandler, including server notices
Diffstat (limited to 'IRCLineHandler.py')
-rw-r--r--IRCLineHandler.py23
1 files changed, 23 insertions, 0 deletions
diff --git a/IRCLineHandler.py b/IRCLineHandler.py
index de0fb134..f4cdd2ec 100644
--- a/IRCLineHandler.py
+++ b/IRCLineHandler.py
@@ -70,6 +70,7 @@ def handle_PING(data):
@handler(description="the first line sent to a registered client", default_event=True)
def handle_001(data):
server = data.server
+ server.name = Utils.remove_colon(data.prefix)
server.set_own_nickname(data.args[0])
server.send_whois(server.nickname)
@@ -309,6 +310,28 @@ def handle_PRIVMSG(data):
action=action, server=data.server)
user.log.add_line(user.nickname, message, action)
+@handler(description="we've received a notice")
+def handle_NOTICE(data):
+ nickname, username, hostname = Utils.seperate_hostmask(data.prefix)
+ message = "" if len(data.args) < 2 else data.args[1]
+ message_split = message.split(" ")
+ target = data.args[0]
+ if nickname == data.server.name or target == "*":
+ bot.events.on("received.server-notice").call(
+ message=message, message_split=message_split,
+ server=data.server)
+ else:
+ user = data.server.get_user(nickname)
+ if target[0] in data.server.channel_types:
+ channel = data.server.get_channel(target)
+ bot.events.on("received.notice.channel").call(
+ message=message, message_split=message_split,
+ user=user, server=data.server, channel=channel)
+ elif data.server.is_own_nickname(target):
+ bot.events.on("received.notice.private").call(
+ message=message, message_split=message_split,
+ user=user, server=data.server)
+
@handler(description="response to a WHO command for user information", default_event=True)
def handle_352(data):
user = data.server.get_user(data.args[5])