80-column oopsie

This commit is contained in:
2023-07-19 17:43:27 +10:00
parent 05c5ccc89d
commit 17622573e4
+33 -84
View File
@@ -8,8 +8,7 @@ from contextlib import closing
class mssql(znc.Module): class mssql(znc.Module):
module_types = [znc.CModInfo.GlobalModule] module_types = [znc.CModInfo.GlobalModule]
description = "Log all channels to a Microsoft SQL Server description = "Log all channels to a Microsoft SQL Server database"
database"
has_args = False has_args = False
sql_server = "db.spd.internal" sql_server = "db.spd.internal"
@@ -22,33 +21,23 @@ database"
# return True # return True
def OnOp(self, user, target_user, channel, noChange): def OnOp(self, user, target_user, channel, noChange):
self.insert("OP", channel.GetName(), user.GetHost(), self.insert("OP", channel.GetName(), user.GetHost(), user.GetNick(), user.GetIdent(), None, datetime.now(), target_user.GetNick(), None, str(self.GetNetwork()))
user.GetNick(), user.GetIdent(), None, datetime.now(),
target_user.GetNick(), None, str(self.GetNetwork()))
return True return True
def OnPrivNotice(self, user, message): def OnPrivNotice(self, user, message):
self.insert("NOTICE", None, user.GetHost(), self.insert("NOTICE", None, user.GetHost(), user.GetNick(), user.GetIdent(), None, datetime.now(), None, message.s, str(self.GetNetwork()))
user.GetNick(), user.GetIdent(), None, datetime.now(), None, message.s,
str(self.GetNetwork()))
return True return True
def OnDeop(self, user, target_user, channel, noChange): def OnDeop(self, user, target_user, channel, noChange):
self.insert("DEOP", channel.GetName(), user.GetHost(), self.insert("DEOP", channel.GetName(), user.GetHost(), user.GetNick(), user.GetIdent(), None, datetime.now(), target_user.GetNick(), None, str(self.GetNetwork()))
user.GetNick(), user.GetIdent(), None, datetime.now(),
target_user.GetNick(), None, str(self.GetNetwork()))
return True return True
def OnVoice(self, user, target_user, channel, noChange): def OnVoice(self, user, target_user, channel, noChange):
self.insert("VOICE", channel.GetName(), user.GetHost(), self.insert("VOICE", channel.GetName(), user.GetHost(), user.GetNick(), user.GetIdent(), None, datetime.now(), target_user.GetNick(), None, str(self.GetNetwork()))
user.GetNick(), user.GetIdent(), None, datetime.now(),
target_user.GetNick(), None, str(self.GetNetwork()))
return True return True
def OnDevoice(self, user, target_user, channel, noChange): def OnDevoice(self, user, target_user, channel, noChange):
self.insert("DEVOICE", channel.GetName(), user.GetHost(), self.insert("DEVOICE", channel.GetName(), user.GetHost(), user.GetNick(), user.GetIdent(), None, datetime.now(), target_user.GetNick(), None, str(self.GetNetwork()))
user.GetNick(), user.GetIdent(), None, datetime.now(),
target_user.GetNick(), None, str(self.GetNetwork()))
return True return True
def OnMode(self, user, channel, mode, argument, added, noChange): def OnMode(self, user, channel, mode, argument, added, noChange):
@@ -58,44 +47,31 @@ target_user.GetNick(), None, str(self.GetNetwork()))
code = "BAN" if added else "UNBAN" code = "BAN" if added else "UNBAN"
else: else:
sign = "+" if added else "-" sign = "+" if added else "-"
argument = "{0}{1} {2}".format(sign, mode, argument = "{0}{1} {2}".format(sign, mode, argument)
argument)
self.insert(code, channel.GetName(), user.GetHost(), self.insert(code, channel.GetName(), user.GetHost(), user.GetNick(), user.GetIdent(), None, datetime.now(), None, argument, str(self.GetNetwork()))
user.GetNick(), user.GetIdent(), None, datetime.now(), None, argument,
str(self.GetNetwork()))
return True return True
def OnQuit(self, user, message, channels): def OnQuit(self, user, message, channels):
for channel in channels: for channel in channels:
self.insert("QUIT", channel.GetName(), self.insert("QUIT", channel.GetName(), user.GetHost(), user.GetNick(), user.GetIdent(), None, datetime.now(), None, message, str(self.GetNetwork()))
user.GetHost(), user.GetNick(), user.GetIdent(), None, datetime.now(),
None, message, str(self.GetNetwork()))
return True return True
def OnNick(self, user, new_nick, channels): def OnNick(self, user, new_nick, channels):
for channel in channels: for channel in channels:
self.insert("NICK", channel.GetName(), self.insert("NICK", channel.GetName(), user.GetHost(), user.GetNick(), user.GetIdent(), None, datetime.now(), new_nick, None, str(self.GetNetwork()))
user.GetHost(), user.GetNick(), user.GetIdent(), None, datetime.now(),
new_nick, None, str(self.GetNetwork()))
return True return True
def OnKick(self, user, target_nick, channel, message): def OnKick(self, user, target_nick, channel, message):
self.insert("KICK", channel.GetName(), user.GetHost(), self.insert("KICK", channel.GetName(), user.GetHost(), user.GetNick(), user.GetIdent(), None, datetime.now(), target_nick, message, str(self.GetNetwork()))
user.GetNick(), user.GetIdent(), None, datetime.now(), target_nick,
message, str(self.GetNetwork()))
return True return True
def OnJoin(self, user, channel): def OnJoin(self, user, channel):
self.insert("JOIN", channel.GetName(), user.GetHost(), self.insert("JOIN", channel.GetName(), user.GetHost(), user.GetNick(), user.GetIdent(), None, datetime.now(), None, None, str(self.GetNetwork()))
user.GetNick(), user.GetIdent(), None, datetime.now(), None, None,
str(self.GetNetwork()))
return True return True
def OnPart(self, user, channel, message): def OnPart(self, user, channel, message):
self.insert("PART", channel.GetName(), user.GetHost(), self.insert("PART", channel.GetName(), user.GetHost(), user.GetNick(), user.GetIdent(), None, datetime.now(), None, message, str(self.GetNetwork()))
user.GetNick(), user.GetIdent(), None, datetime.now(), None, message,
str(self.GetNetwork()))
return True return True
def OnUserAction (self, target, message): def OnUserAction (self, target, message):
@@ -105,9 +81,7 @@ str(self.GetNetwork()))
return self.OnChanAction(user, channel, message) return self.OnChanAction(user, channel, message)
def OnPrivMsg(self, nick, message): def OnPrivMsg(self, nick, message):
self.insert("MSG", "", nick.GetHost(), nick.GetNick(), self.insert("MSG", "", nick.GetHost(), nick.GetNick(), nick.GetIdent(), None, datetime.now(), None, message.s, str(self.GetNetwork()))
nick.GetIdent(), None, datetime.now(), None, message.s,
str(self.GetNetwork()))
return True return True
def OnUserMsg (self, target, message): def OnUserMsg (self, target, message):
@@ -117,21 +91,15 @@ str(self.GetNetwork()))
return self.OnChanMsg(user, channel, message) return self.OnChanMsg(user, channel, message)
def OnChanAction(self, user, channel, message): def OnChanAction(self, user, channel, message):
self.insert("ME", channel.GetName(), user.GetHost(), self.insert("ME", channel.GetName(), user.GetHost(), user.GetNick(), user.GetIdent(), None, datetime.now(), None, message.s, str(self.GetNetwork()))
user.GetNick(), user.GetIdent(), None, datetime.now(), None, message.s,
str(self.GetNetwork()))
return True return True
def OnChanMsg(self, user, channel, message): def OnChanMsg(self, user, channel, message):
self.insert("SAY", channel.GetName(), user.GetHost(), self.insert("SAY", channel.GetName(), user.GetHost(), user.GetNick(), user.GetIdent(), self.findMode(channel, user), datetime.now(), None, message.s, str(self.GetNetwork()))
user.GetNick(), user.GetIdent(), self.findMode(channel, user),
datetime.now(), None, message.s, str(self.GetNetwork()))
return True return True
def OnTopic(self, user, channel, message): def OnTopic(self, user, channel, message):
self.insert("TOPIC", channel.GetName(), user.GetHost(), self.insert("TOPIC", channel.GetName(), user.GetHost(), user.GetNick(), user.GetIdent(), None, datetime.now(), None, message.s, str(self.GetNetwork()))
user.GetNick(), user.GetIdent(), None, datetime.now(), None, message.s,
str(self.GetNetwork()))
return True return True
# def OnLoad(self, args, message): # def OnLoad(self, args, message):
@@ -170,29 +138,24 @@ str(self.GetNetwork()))
assert int(data[find]) assert int(data[find])
while True: while True:
assert int(data[find]) assert int(data[find])
data = data[0:find] + data = data[0:find] + data[find+1:]
data[find+1:]
except: except:
if not done: if not done:
if data[find] != ',': done = True if data[find] != ',': done = True
if (not done) and (len(data) > find+1) and if (not done) and (len(data) > find+1) and (data[find] == ','):
(data[find] == ','):
try: try:
assert not done assert not done
assert int(data[find+1]) assert int(data[find+1])
data = data[0:find] + data = data[0:find] + data[find+1:]
data[find+1:] data = data[0:find] + data[find+1:]
data = data[0:find] +
data[find+1:]
except: except:
done = True done = True
try: try:
assert not done assert not done
while True: while True:
assert int(data[find]) assert int(data[find])
data = data[0:find] + data = data[0:find] + data[find+1:]
data[find+1:]
except: pass except: pass
find = data.find('\x03') find = data.find('\x03')
@@ -203,39 +166,25 @@ data[find+1:]
data = data.replace('\x0f','') data = data.replace('\x0f','')
return data return data
def insert(self, code, channel, host, user, ident, user_mode, def insert(self, code, channel, host, user, ident, user_mode, date, target_user, message, network):
date, target_user, message, network):
# self.PutModule("Inserting row...") # self.PutModule("Inserting row...")
regex = regex = re.compile("\x1f|\x02|\x03(?:\d{1,2}(?:,\d{1,2})?)?", re.UNICODE)
re.compile("\x1f|\x02|\x03(?:\d{1,2}(?:,\d{1,2})?)?", re.UNICODE)
try: try:
with closing(pymssql.connect ("db.spd.internal", with closing(pymssql.connect ("db.spd.internal", "_srv_znc", "znc", "znc")) as conn:
"_srv_znc", "znc", "znc")) as conn:
with closing(conn.cursor()) as cursor: with closing(conn.cursor()) as cursor:
# sql = "INSERT INTO log (date, # sql = "INSERT INTO log (date, code, network, channel, host, [user], ident, mode, target, message) VALUES(%s, %s, %s, %s, %s, %s, %s, %s, %s, %s)"
code, network, channel, host, [user], ident, mode, target, message) sql = "EXEC dbo.add_log (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"
VALUES(%s, %s, %s, %s, %s, %s, %s, %s, %s, %s)"
sql = "EXEC dbo.add_log (?, ?, ?,
?, ?, ?, ?, ?, ?, ?, ?)"
if message is not None: if message is not None:
# message = # message = message.encode('utf-8').decode('utf-8', 'replace')
message.encode('utf-8').decode('utf-8', 'replace') message = regex.sub("", message)
message = regex.sub("", message = self.colourstrip(message)
message) znc_user = self.GetUser().GetUserName() if self.GetUser() is not None else None
message = params = (znc_user, str(date), code, network, channel, host, user, ident, user_mode, target_user, message)
self.colourstrip(message)
znc_user =
self.GetUser().GetUserName() if self.GetUser() is not None else None
params = (znc_user, str(date),
code, network, channel, host, user, ident, user_mode, target_user,
message)
# cursor.execute (sql, params) # cursor.execute (sql, params)
cursor.callproc("add_log", params) cursor.callproc("add_log", params)
conn.commit() conn.commit()
conn.close() conn.close()
except Exception as e: except Exception as e:
self.PutModule("Could not save {0} to database self.PutModule("Could not save {0} to database caused by: {1} - {2}".format(code, type(e), str(e)))
caused by: {1} - {2}".format(code, type(e), str(e)))