mirror of
https://github.com/Mikaela/Limnoria.git
synced 2024-12-24 19:52:54 +01:00
Added a 'notes' command.
This commit is contained in:
parent
877c6ee9a8
commit
08040bf106
@ -71,7 +71,7 @@ conf.registerGlobalValue(conf.supybot.plugins.Later, 'private',
|
||||
class Later(callbacks.Privmsg):
|
||||
def __init__(self):
|
||||
callbacks.Privmsg.__init__(self)
|
||||
self.notes = ircutils.IrcDict()
|
||||
self._notes = ircutils.IrcDict()
|
||||
self.wildcards = []
|
||||
self.filename = conf.supybot.directories.data.dirize('Later.db')
|
||||
self._openNotes()
|
||||
@ -82,7 +82,7 @@ class Later(callbacks.Privmsg):
|
||||
def _flushNotes(self):
|
||||
fd = utils.transactionalFile(self.filename)
|
||||
writer = csv.writer(fd)
|
||||
for (nick, notes) in self.notes.iteritems():
|
||||
for (nick, notes) in self._notes.iteritems():
|
||||
for (time, whence, text) in notes:
|
||||
writer.writerow([nick, time, whence, text])
|
||||
fd.close()
|
||||
@ -112,13 +112,13 @@ class Later(callbacks.Privmsg):
|
||||
if maximum is None:
|
||||
maximum = self.registryValue('maximum')
|
||||
try:
|
||||
notes = self.notes[nick]
|
||||
notes = self._notes[nick]
|
||||
if maximum and len(notes) >= maximum:
|
||||
raise ValueError
|
||||
else:
|
||||
notes.append((at, whence, text))
|
||||
except KeyError:
|
||||
self.notes[nick] = [(at, whence, text)]
|
||||
self._notes[nick] = [(at, whence, text)]
|
||||
if '?' in nick or '*' in nick and nick not in self.wildcards:
|
||||
self.wildcards.append(nick)
|
||||
self._flushNotes()
|
||||
@ -140,17 +140,25 @@ class Later(callbacks.Privmsg):
|
||||
irc.error('That person\'s message queue is already full.')
|
||||
tell = wrap(tell, ['nick', 'text'])
|
||||
|
||||
def notes(self, irc, msg, args):
|
||||
"""takes no arguments
|
||||
|
||||
Tells which nicks have notes waiting for them.
|
||||
"""
|
||||
nicks = self._notes.keys()
|
||||
utils.sortBy(ircutils.toLower, nicks)
|
||||
irc.reply('I currently have notes waiting for %s.' %
|
||||
utils.commaAndify(nicks))
|
||||
#notes = wrap(notes)
|
||||
|
||||
def doPrivmsg(self, irc, msg):
|
||||
try:
|
||||
notes = self.notes.pop(msg.nick)
|
||||
except KeyError:
|
||||
notes = []
|
||||
notes = self._notes.pop(msg.nick, [])
|
||||
# Let's try wildcards.
|
||||
removals = []
|
||||
for wildcard in self.wildcards:
|
||||
if ircutils.hostmaskPatternEqual(wildcard, msg.nick):
|
||||
removals.append(wildcard)
|
||||
notes.extend(self.notes.pop(wildcard))
|
||||
notes.extend(self._notes.pop(wildcard))
|
||||
for removal in removals:
|
||||
self.wildcards.remove(removal)
|
||||
if notes:
|
||||
|
Loading…
Reference in New Issue
Block a user