* Use deque in Bantracker for logs

* Get "realIrc" object in __init__ of IRCLogin, rather than constantly generating a new object
This commit is contained in:
Terence Simpson 2010-03-28 04:34:17 +01:00
parent 5187c05a4b
commit 39faf3143d
2 changed files with 15 additions and 17 deletions

View File

@ -56,6 +56,7 @@ import time
import random
import hashlib
import threading
from collections import deque
tz = 'UTC'
@ -328,11 +329,12 @@ class Bantracker(callbacks.Plugin):
return
channel = ircutils.toLower(channel)
if channel not in self.logs.keys():
self.logs[channel] = []
self.logs[channel] = deque(maxlen=200)
format = conf.supybot.log.timestampFormat()
if format:
s = time.strftime(format, time.gmtime()) + " " + ircutils.stripFormatting(s)
self.logs[channel] = self.logs[channel][-199:] + [s.strip()]
# self.logs[channel] = self.logs[channel][-199:] + [s.strip()]
self.logs[channel].append(s.strip())
def doKickban(self, irc, channel, nick, target, kickmsg = None, use_time = None, extra_comment = None):
if not self.registryValue('enabled', channel):

View File

@ -198,8 +198,7 @@ launchpad"""
@wrap
def haveidentifymsg(self, irc, msg, args):
realIrc = hasattr(irc, 'getRealIrc') and irc.getRealIrc() or irc
haveCap = getattr(realIrc, "_Freenode_capabed", False)
haveCap = getattr(self._irc, "_Freenode_capabed", False)
irc.reply("identify-msg is %sabled" % (haveCap and "En" or "Dis"))
def doPrivmsg(self, irc, msg):
@ -236,31 +235,29 @@ launchpad"""
def do290(self, irc, msg):
"""hyperiron CAPAB reply"""
realIrc = irc.getRealIrc()
realIrc._Freenode_capabed_notices = False
self._irc._Freenode_capabed_notices = False
if msg.args[1].lower() == "identify-msg":
realIrc._Freenode_capabed = True
self._irc._Freenode_capabed = True
else:
realIrc._Freenode_capabed = False
self._irc._Freenode_capabed = False
def doCap(self, irc, msg):
"""ircd-seven CAP reply"""
cmd = msg.args[1].lower()
args = msg.args[2].lower()
realIrc = irc.getRealIrc()
if cmd == "ls": # Got capability listing
if "identify-msg" in args: # identify-msg is a capability on this server
irc.queueMsg(ircmsgs.IrcMsg('CAP REQ IDENTIFY-MSG')) # Request identify-msg
if cmd == "ack": # Acknowledge reply
if "identify-msg" in args: # identify-msg is set
realIrc._Freenode_capabed = True
realIrc._Freenode_capabed_notices = True
self._irc._Freenode_capabed = True
self._irc._Freenode_capabed_notices = True
if cmd == 'nak': # Failure reply
if "identify-msg" in args: # identify-msg is not set
realIrc._Freenode_capabed = False
realIrc._Freenode_capabed_notices = False
self._irc._Freenode_capabed = False
self._irc._Freenode_capabed_notices = False
def do421(self, irc, msg):
"""Invalid command"""
@ -276,10 +273,9 @@ launchpad"""
"CAP <nick> NAK :identify-msg" to indicate failure.
Other than that, it's the same.
"""
realIrc = hasattr(irc, 'getRealIrc') and irc.getRealIrc() or irc
if not hasattr(realIrc, "_Freenode_capabed") or force: # Do this only once
realIrc._Freenode_capabed = False
realIrc._Freenode_capabed_notices = False
if not hasattr(self._irc, "_Freenode_capabed") or force: # Do this only once
self._irc._Freenode_capabed = False
self._irc._Freenode_capabed_notices = False
# Try the CAP command first
irc.queueMsg(ircmsgs.IrcMsg("CAP LS"))