fix: skip NoSelect folders, clean up debug logging
This commit is contained in:
@@ -113,9 +113,8 @@ def fetch_unseen_emails(account: EmailAccount, skip_uids: set[bytes] | None = No
|
||||
conn = _login_and_prepare(account, select_inbox=False)
|
||||
if skip_uids is None:
|
||||
skip_uids = set()
|
||||
logger.info("fetch_unseen_emails: %s, skip_uids大小=%d", account.username, len(skip_uids))
|
||||
|
||||
# 列出所有文件夹
|
||||
# 列出所有文件夹,跳过 NoSelect 文件夹
|
||||
_, folder_data = conn.list()
|
||||
folders = []
|
||||
if folder_data:
|
||||
@@ -123,6 +122,9 @@ def fetch_unseen_emails(account: EmailAccount, skip_uids: set[bytes] | None = No
|
||||
if item is None:
|
||||
continue
|
||||
line = item.decode("utf-8", errors="replace")
|
||||
# 跳过 \NoSelect 文件夹(父文件夹,不能直接 SELECT)
|
||||
if "\\NoSelect" in line:
|
||||
continue
|
||||
m = re.search(r'"([^"]*)"\s*$', line)
|
||||
if m:
|
||||
folders.append(m.group(1))
|
||||
@@ -148,11 +150,7 @@ def fetch_unseen_emails(account: EmailAccount, skip_uids: set[bytes] | None = No
|
||||
skipped += len(uids) - len(new_uids)
|
||||
if not new_uids:
|
||||
continue
|
||||
if skipped > 0 or len(uids) > 0:
|
||||
logger.info(" %s: %d 封未读 (%d 封跳过) skip_uids=%d",
|
||||
folder, len(new_uids), len(uids) - len(new_uids), len(skip_uids))
|
||||
if skip_uids and len(skip_uids) <= 5:
|
||||
logger.info(" skip_uids 内容: %s", [u for u in skip_uids])
|
||||
logger.info(" %s: %d 封未读 (%d 封跳过)", folder, len(new_uids), len(uids) - len(new_uids))
|
||||
|
||||
for uid in new_uids:
|
||||
try:
|
||||
|
||||
Reference in New Issue
Block a user