mirror of
https://github.com/Mikaela/Limnoria.git
synced 2024-12-25 04:02:46 +01:00
Added two configurables to Note, thus closing another RFE.
This commit is contained in:
parent
9108591b7f
commit
1a22cd530e
@ -49,6 +49,7 @@ import ircdb
|
|||||||
import ircmsgs
|
import ircmsgs
|
||||||
import plugins
|
import plugins
|
||||||
import privmsgs
|
import privmsgs
|
||||||
|
import registry
|
||||||
import ircutils
|
import ircutils
|
||||||
import callbacks
|
import callbacks
|
||||||
|
|
||||||
@ -58,6 +59,19 @@ except ImportError:
|
|||||||
raise callbacks.Error, 'You need to have PySQLite installed to use this ' \
|
raise callbacks.Error, 'You need to have PySQLite installed to use this ' \
|
||||||
'plugin. Download it at <http://pysqlite.sf.net/>'
|
'plugin. Download it at <http://pysqlite.sf.net/>'
|
||||||
|
|
||||||
|
|
||||||
|
conf.registerPlugin('Note')
|
||||||
|
conf.registerGlobalValue(conf.supybot.plugins.Note, 'notifyOnJoin',
|
||||||
|
registry.Boolean(False, """Determines whether the bot will notify people of
|
||||||
|
their new messages when they join the channel. Normally it will notify
|
||||||
|
them when they send a message to the channel, since oftentimes joins are
|
||||||
|
the result of netsplits and not the actual presence of the user."""))
|
||||||
|
conf.registerGlobalValue(conf.supybot.plugins.Note, 'notifyOnJoinRepeatedly',
|
||||||
|
registry.Boolean(False, """Determines whether the bot will repeatedly
|
||||||
|
notify people of their new messages when they join the channel. That means
|
||||||
|
when they join the channel, the bot will tell them they have unread
|
||||||
|
messages, even if it's told them before."""))
|
||||||
|
|
||||||
class NoteDb(plugins.DBHandler):
|
class NoteDb(plugins.DBHandler):
|
||||||
def makeDb(self, filename):
|
def makeDb(self, filename):
|
||||||
"create Notes database and tables"
|
"create Notes database and tables"
|
||||||
@ -79,8 +93,6 @@ class NoteDb(plugins.DBHandler):
|
|||||||
db.commit()
|
db.commit()
|
||||||
return db
|
return db
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class Note(callbacks.Privmsg):
|
class Note(callbacks.Privmsg):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
callbacks.Privmsg.__init__(self)
|
callbacks.Privmsg.__init__(self)
|
||||||
@ -99,6 +111,14 @@ class Note(callbacks.Privmsg):
|
|||||||
self.dbHandler.die()
|
self.dbHandler.die()
|
||||||
|
|
||||||
def doPrivmsg(self, irc, msg):
|
def doPrivmsg(self, irc, msg):
|
||||||
|
self._notify(irc, msg)
|
||||||
|
|
||||||
|
def doJoin(self, irc, msg):
|
||||||
|
if self.registryValue('notifyOnJoin'):
|
||||||
|
repeatedly = self.registryValue('notifyOnJoinRepeatedly')
|
||||||
|
self._notify(irc, msg, repeatedly)
|
||||||
|
|
||||||
|
def _notify(self, irc, msg, repeatedly=False):
|
||||||
try:
|
try:
|
||||||
id = ircdb.users.getUserId(msg.prefix)
|
id = ircdb.users.getUserId(msg.prefix)
|
||||||
except KeyError:
|
except KeyError:
|
||||||
@ -108,7 +128,7 @@ class Note(callbacks.Privmsg):
|
|||||||
cursor.execute("""SELECT COUNT(*) FROM notes
|
cursor.execute("""SELECT COUNT(*) FROM notes
|
||||||
WHERE notes.to_id=%s AND notified=0""", id)
|
WHERE notes.to_id=%s AND notified=0""", id)
|
||||||
unnotified = int(cursor.fetchone()[0])
|
unnotified = int(cursor.fetchone()[0])
|
||||||
if unnotified != 0:
|
if unnotified != 0 or repeatedly:
|
||||||
cursor.execute("""SELECT COUNT(*) FROM notes
|
cursor.execute("""SELECT COUNT(*) FROM notes
|
||||||
WHERE notes.to_id=%s AND read=0""", id)
|
WHERE notes.to_id=%s AND read=0""", id)
|
||||||
unread = int(cursor.fetchone()[0])
|
unread = int(cursor.fetchone()[0])
|
||||||
|
Loading…
Reference in New Issue
Block a user