mirror of
https://github.com/Mikaela/Limnoria.git
synced 2024-11-23 19:19:32 +01:00
Augmented upkeep to do even more upkeep, if asked.
This commit is contained in:
parent
81ca3238f0
commit
39b83723a2
40
src/Owner.py
40
src/Owner.py
@ -42,6 +42,7 @@ import supybot.fix as fix
|
|||||||
import gc
|
import gc
|
||||||
import os
|
import os
|
||||||
import imp
|
import imp
|
||||||
|
import sre
|
||||||
import sys
|
import sys
|
||||||
import getopt
|
import getopt
|
||||||
import logging
|
import logging
|
||||||
@ -483,15 +484,44 @@ class Owner(privmsgs.CapabilityCheckingPrivmsg):
|
|||||||
irc.replySuccess()
|
irc.replySuccess()
|
||||||
|
|
||||||
def upkeep(self, irc, msg, args):
|
def upkeep(self, irc, msg, args):
|
||||||
"""takes no arguments
|
"""[<level>]
|
||||||
|
|
||||||
Runs the standard upkeep stuff (flushes and gc.collects()).
|
Runs the standard upkeep stuff (flushes and gc.collects()). If given
|
||||||
|
a level, runs that level of upkeep (currently, the only supported
|
||||||
|
level is "high", which causes the bot to flush a lot of caches as well
|
||||||
|
as do normal upkeep stuff.
|
||||||
"""
|
"""
|
||||||
|
level = privmsgs.getArgs(args, required=0, optional=1)
|
||||||
|
L = []
|
||||||
|
if level == 'high':
|
||||||
|
L.append('Regexp cache flushed: %s cleared.' %
|
||||||
|
utils.nItems('regexp', len(sre._cache)))
|
||||||
|
sre.purge()
|
||||||
|
L.append('Pattern cache flushed: %s cleared.' %
|
||||||
|
utils.nItems('compiled pattern',
|
||||||
|
len(ircutils._patternCache)))
|
||||||
|
ircutils._patternCache.clear()
|
||||||
|
L.append('hostmaskPatternEqual cache flushed: %s cleared.' %
|
||||||
|
utils.nItems('hostmaskPatternEqual result',
|
||||||
|
len(ircutils._hostmaskPatternEqualCache)))
|
||||||
|
ircutils._hostmaskPatternEqualCache.clear()
|
||||||
|
L.append('ircdb username cache flushed: %s cleared.' %
|
||||||
|
utils.nItems('username to id mapping',
|
||||||
|
len(ircdb.users._nameCache)))
|
||||||
|
ircdb.users._nameCache.clear()
|
||||||
|
L.append('ircdb hostmask cache flushed: %s cleared.' %
|
||||||
|
utils.nItems('hostmask to id mapping',
|
||||||
|
len(ircdb.users._hostmaskCache)))
|
||||||
|
ircdb.users._hostmaskCache.clear()
|
||||||
|
L.append('linecache line cache flushed: %s cleared.' %
|
||||||
|
utils.nItems('line', len(linecache.cache)))
|
||||||
|
linecache.clearcache()
|
||||||
|
sys.exc_clear()
|
||||||
collected = world.upkeep(scheduleNext=False)
|
collected = world.upkeep(scheduleNext=False)
|
||||||
if gc.garbage:
|
if gc.garbage:
|
||||||
irc.reply('Garbage! %r' % gc.garbage)
|
L.append('Garbage! %r.' % gc.garbage)
|
||||||
else:
|
L.append('%s collected.' % utils.nItems('object', collected))
|
||||||
irc.reply('%s collected.' % utils.nItems('object', collected))
|
irc.reply(' '.join(L))
|
||||||
|
|
||||||
def load(self, irc, msg, args):
|
def load(self, irc, msg, args):
|
||||||
"""[--deprecated] <plugin>
|
"""[--deprecated] <plugin>
|
||||||
|
Loading…
Reference in New Issue
Block a user