|
|
@ -21,11 +21,20 @@ templater = Templater(template_path)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def fetch_mail_answers(lang, mailer: Mailer, rss: Rss, site_token):
|
|
|
|
def fetch_mail_answers(lang, mailer: Mailer, rss: Rss, site_token):
|
|
|
|
for msg in mailer.fetch():
|
|
|
|
while True:
|
|
|
|
|
|
|
|
msgs = mailer.fetch()
|
|
|
|
|
|
|
|
if len(msgs) == 0:
|
|
|
|
|
|
|
|
break
|
|
|
|
|
|
|
|
msg = msgs[0]
|
|
|
|
|
|
|
|
_process_answer_msg(msg, lang, mailer, rss, site_token)
|
|
|
|
|
|
|
|
mailer.delete(msg.id)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def _process_answer_msg(msg, lang, mailer: Mailer, rss: Rss, site_token):
|
|
|
|
# filter stacosys e-mails
|
|
|
|
# filter stacosys e-mails
|
|
|
|
m = re.search(REGEX_EMAIL_SUBJECT, msg.subject, re.DOTALL)
|
|
|
|
m = re.search(REGEX_EMAIL_SUBJECT, msg.subject, re.DOTALL)
|
|
|
|
if not m:
|
|
|
|
if not m:
|
|
|
|
continue
|
|
|
|
return
|
|
|
|
|
|
|
|
|
|
|
|
comment_id = int(m.group(1))
|
|
|
|
comment_id = int(m.group(1))
|
|
|
|
submitted_token = m.group(2)
|
|
|
|
submitted_token = m.group(2)
|
|
|
@ -33,14 +42,13 @@ def fetch_mail_answers(lang, mailer: Mailer, rss: Rss, site_token):
|
|
|
|
# validate token
|
|
|
|
# validate token
|
|
|
|
if submitted_token != site_token:
|
|
|
|
if submitted_token != site_token:
|
|
|
|
logger.warning("ignore corrupted email. Unknown token %d" % comment_id)
|
|
|
|
logger.warning("ignore corrupted email. Unknown token %d" % comment_id)
|
|
|
|
continue
|
|
|
|
return
|
|
|
|
|
|
|
|
|
|
|
|
if not msg.plain_text_content:
|
|
|
|
if not msg.plain_text_content:
|
|
|
|
logger.warning("ignore empty email")
|
|
|
|
logger.warning("ignore empty email")
|
|
|
|
continue
|
|
|
|
return
|
|
|
|
|
|
|
|
|
|
|
|
_reply_comment_email(lang, mailer, rss, msg, comment_id)
|
|
|
|
_reply_comment_email(lang, mailer, rss, msg, comment_id)
|
|
|
|
mailer.delete(msg.id)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def _reply_comment_email(lang, mailer: Mailer, rss: Rss, email: Email, comment_id):
|
|
|
|
def _reply_comment_email(lang, mailer: Mailer, rss: Rss, email: Email, comment_id):
|
|
|
|