chore: rename message_meta -> uid

This commit is contained in:
phot0n 2023-04-18 19:22:42 +05:30
parent 2a5ed28777
commit 97b2adfaf2

View file

@ -166,9 +166,9 @@ class EmailServer:
email_list = self.get_new_mails(folder)
for i, message_meta in enumerate(email_list[:100]):
for i, uid in enumerate(email_list[:100]):
try:
self.retrieve_message(message_meta, i + 1)
self.retrieve_message(uid, i + 1)
except (EmailTimeoutError, LoginLimitExceeded):
# get whatever messages were retrieved
break
@ -251,13 +251,13 @@ class EmailServer:
else:
return None
def retrieve_message(self, message_meta, msg_num=None):
def retrieve_message(self, uid, msg_num):
try:
if cint(self.settings.use_imap):
status, message = self.imap.uid("fetch", message_meta, "(BODY.PEEK[] BODY.PEEK[HEADER] FLAGS)")
status, message = self.imap.uid("fetch", uid, "(BODY.PEEK[] BODY.PEEK[HEADER] FLAGS)")
raw = message[0]
self.get_email_seen_status(message_meta, raw[0])
self.get_email_seen_status(uid, raw[0])
self.latest_messages.append(raw[1])
else:
msg = self.pop.retr(msg_num)
@ -270,9 +270,9 @@ class EmailServer:
if self.has_login_limit_exceeded(e):
raise LoginLimitExceeded(e)
frappe.log_error("Unable to fetch email", self.make_error_msg(msg_num))
frappe.log_error("Unable to fetch email", self.make_error_msg(uid, msg_num))
self.post_retrieve_cleanup(message_meta, msg_num)
self._post_retrieve_cleanup(uid, msg_num)
def get_email_seen_status(self, uid, flag_string):
"""parse the email FLAGS response"""
@ -292,14 +292,14 @@ class EmailServer:
def has_login_limit_exceeded(self, e):
return "-ERR Exceeded the login limit" in strip(cstr(e))
def post_retrieve_cleanup(self, message_meta, msg_num=None):
def _post_retrieve_cleanup(self, uid, msg_num):
with suppress(Exception):
if not cint(self.settings.use_imap):
self.pop.dele(msg_num)
else:
# mark as seen if email sync rule is UNSEEN (syncing only unseen mails)
if self.settings.email_sync_rule == "UNSEEN":
self.imap.uid("STORE", message_meta, "+FLAGS", "(\\SEEN)")
self.imap.uid("STORE", uid, "+FLAGS", "(\\SEEN)")
def is_temporary_system_problem(self, e):
messages = (
@ -311,24 +311,24 @@ class EmailServer:
return True
return False
def make_error_msg(self, message_meta, msg_num):
incoming_mail = None
def make_error_msg(self, uid, msg_num):
partial_mail = None
traceback = frappe.get_traceback(with_context=True)
with suppress(Exception):
# retrieve headers
if not cint(self.settings.use_imap):
partial_message = b"\n".join(self.pop.top(msg_num, 5)[1])
headers = b"\n".join(self.pop.top(msg_num, 5)[1])
else:
partial_message = self.imap.uid("fetch", message_meta, "(BODY.PEEK[HEADER])")[1][0][1]
headers = self.imap.uid("fetch", uid, "(BODY.PEEK[HEADER])")[1][0][1]
incoming_mail = Email(partial_message)
partial_mail = Email(headers)
if incoming_mail:
if partial_mail:
return (
"\nDate: {date}\nFrom: {from_email}\nSubject: {subject}\n\n\nTraceback: \n{traceback}".format(
date=incoming_mail.date,
from_email=incoming_mail.from_email,
subject=incoming_mail.subject,
date=partial_mail.date,
from_email=partial_mail.from_email,
subject=partial_mail.subject,
traceback=traceback,
)
)