X-Git-Url: https://plomlompom.com/repos/?p=plomlombot-irc.git;a=blobdiff_plain;f=irclog.py;fp=irclog.py;h=a62acadef4a4a2490a47e2b5ae9098523902d95f;hp=0000000000000000000000000000000000000000;hb=cab26fc280cebb5c648fe09a6d2f2f3796ea3a81;hpb=e68573e0f640a77680bd1ab51e18f70d8011caf4 diff --git a/irclog.py b/irclog.py new file mode 100644 index 0000000..a62acad --- /dev/null +++ b/irclog.py @@ -0,0 +1,51 @@ +#!/usr/bin/python3 + +def format_logline(line, channel): + if len(line.tokens) > 2: + if line.tokens[1] == "JOIN": + return "-> " + line.sender + " (" + \ + line.tokens[0][len(line.sender)+2:] + ") joins" + elif line.tokens[1] == "PART": + msg = "" + if len(line.tokens) > 3 and line.tokens[3][0] == ":": + msg = " (" + str.join(" ", line.tokens[3:])[1:] + ")" + return "<- " + line.sender + " parts" + msg + elif line.tokens[1] == "QUIT": + msg = "" + if len(line.tokens) > 2 and line.tokens[2][0] == ":": + msg = " (" + str.join(" ", line.tokens[2:])[1:] + ")" + return "<- " + line.sender + " quits server" + msg + elif line.tokens[1] == "NICK": + return "-- " + line.sender + " changes their name to " + line.receiver + elif len(line.tokens) > 3: + if line.tokens[1] in {"PRIVMSG", "NOTICE"}: + if line.tokens[3] == ":\u0001ACTION" and \ + line.tokens[-1][-1] == "\u0001": + msg = str.join(" ", line.tokens[4:])[:-1] + if line.receiver == channel: + return " * " + line.sender + " " + msg + else: + msg = str.join(" ", line.tokens[3:])[1:] + if line.receiver == channel: + return " <" + line.sender + "> " + msg + elif line.tokens[1] == "TOPIC": + msg = str.join(" ", line.tokens[3:])[1:] + if line.receiver == channel: + return "-- " + line.sender + " sets topic to: " + msg + elif line.tokens[1] == "KICK": + operands = line.tokens[2:] + pairs = {} + for i in range(len(operands)): + if 0 == i % 2: + if operands[i][0] == ":": + msg = " (" + str.join(" ", operands[i:])[1:] + ")" + break + else: + pairs[operands[i - 1]] = operands[i] + if channel in pairs: + return "-- " + line.sender + " kicks " + pairs[channel] + msg + elif line.tokens[1] == "MODE": + msg = str.join(" ", line.tokens[3:]) + if line.receiver == channel: + return "-- " + line.sender + " sets channel mode " + msg + return None