80-column oopsie
This commit is contained in:
@@ -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)))
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user