New setting general.reply-notifications
This commit is contained in:
parent
171fcfab72
commit
1dd95d5aad
@ -96,13 +96,16 @@ class Isso(object):
|
|||||||
super(Isso, self).__init__(conf)
|
super(Isso, self).__init__(conf)
|
||||||
|
|
||||||
subscribers = []
|
subscribers = []
|
||||||
|
smtp_backend = False
|
||||||
for backend in conf.getlist("general", "notify"):
|
for backend in conf.getlist("general", "notify"):
|
||||||
if backend == "stdout":
|
if backend == "stdout":
|
||||||
subscribers.append(Stdout(None))
|
subscribers.append(Stdout(None))
|
||||||
elif backend in ("smtp", "SMTP"):
|
elif backend in ("smtp", "SMTP"):
|
||||||
subscribers.append(SMTP(self))
|
smtp_backend = True
|
||||||
else:
|
else:
|
||||||
logger.warn("unknown notification backend '%s'", backend)
|
logger.warn("unknown notification backend '%s'", backend)
|
||||||
|
if smtp_backend or conf.getboolean("general", "reply-notifications"):
|
||||||
|
subscribers.append(SMTP(self))
|
||||||
|
|
||||||
self.signal = ext.Signal(*subscribers)
|
self.signal = ext.Signal(*subscribers)
|
||||||
|
|
||||||
|
@ -76,6 +76,8 @@ class SMTP(object):
|
|||||||
self.isso = isso
|
self.isso = isso
|
||||||
self.conf = isso.conf.section("smtp")
|
self.conf = isso.conf.section("smtp")
|
||||||
self.public_endpoint = isso.conf.get("server", "public-endpoint") or local("host")
|
self.public_endpoint = isso.conf.get("server", "public-endpoint") or local("host")
|
||||||
|
self.admin_notify = any((n in ("smtp", "SMTP")) for n in isso.conf.getlist("general", "notify"))
|
||||||
|
self.reply_notify = isso.conf.getboolean("general", "reply-notifications")
|
||||||
|
|
||||||
# test SMTP connectivity
|
# test SMTP connectivity
|
||||||
try:
|
try:
|
||||||
@ -143,8 +145,9 @@ class SMTP(object):
|
|||||||
return rv.read()
|
return rv.read()
|
||||||
|
|
||||||
def notify_new(self, thread, comment):
|
def notify_new(self, thread, comment):
|
||||||
body = self.format(thread, comment, None, admin=True)
|
if self.admin_notify:
|
||||||
self.sendmail(thread["title"], body, thread, comment)
|
body = self.format(thread, comment, None, admin=True)
|
||||||
|
self.sendmail(thread["title"], body, thread, comment)
|
||||||
|
|
||||||
if comment["mode"] == 1:
|
if comment["mode"] == 1:
|
||||||
self.notify_users(thread, comment)
|
self.notify_users(thread, comment)
|
||||||
@ -153,7 +156,7 @@ class SMTP(object):
|
|||||||
self.notify_users(thread, comment)
|
self.notify_users(thread, comment)
|
||||||
|
|
||||||
def notify_users(self, thread, comment):
|
def notify_users(self, thread, comment):
|
||||||
if "parent" in comment and comment["parent"] is not None:
|
if self.reply_notify and "parent" in comment and comment["parent"] is not None:
|
||||||
# Notify interested authors that a new comment is posted
|
# Notify interested authors that a new comment is posted
|
||||||
notified = []
|
notified = []
|
||||||
parent_comment = self.isso.db.comments.get(comment["parent"])
|
parent_comment = self.isso.db.comments.get(comment["parent"])
|
||||||
@ -226,5 +229,5 @@ class Stdout(object):
|
|||||||
def _delete_comment(self, id):
|
def _delete_comment(self, id):
|
||||||
logger.info('comment %i deleted', id)
|
logger.info('comment %i deleted', id)
|
||||||
|
|
||||||
def _activate_comment(self, id):
|
def _activate_comment(self, thread, comment):
|
||||||
logger.info("comment %s activated" % id)
|
logger.info("comment %(id)s activated" % thread)
|
||||||
|
@ -9,6 +9,7 @@ dbpath = /var/isso/comments.db
|
|||||||
host = http://isso-dev.local/
|
host = http://isso-dev.local/
|
||||||
max-age = 15m
|
max-age = 15m
|
||||||
notify = stdout
|
notify = stdout
|
||||||
|
reply-notifications = false
|
||||||
log-file = /var/log/isso.log
|
log-file = /var/log/isso.log
|
||||||
admin_password = strong_default_password_for_isso_admin
|
admin_password = strong_default_password_for_isso_admin
|
||||||
|
|
||||||
|
@ -43,6 +43,11 @@ max-age = 15m
|
|||||||
# moderated) and deletion links.
|
# moderated) and deletion links.
|
||||||
notify = stdout
|
notify = stdout
|
||||||
|
|
||||||
|
# Allow users to request E-mail notifications for replies to their post.
|
||||||
|
# WARNING: It is highly recommended to also turn on moderation when enabling
|
||||||
|
# this setting, as Isso can otherwise be easily exploited for sending spam.
|
||||||
|
reply-notifications=false
|
||||||
|
|
||||||
# Log console messages to file instead of standard output.
|
# Log console messages to file instead of standard output.
|
||||||
log-file =
|
log-file =
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user