fix: simplify audiences unread pagination

This commit is contained in:
jxxghp
2026-05-20 21:42:53 +08:00
parent d37954e6bc
commit 014dc2884c
2 changed files with 25 additions and 144 deletions

View File

@@ -149,7 +149,7 @@ def test_audiences_table_unread_links_ignore_content_rows():
next_page = parser._parse_message_unread_links(html_text, msg_links)
assert msg_links == ["messages.php?action=viewmessage&id=4318225"]
assert next_page is None
assert next_page == "messages.php?action=viewmailbox&box=1&unread=yes&page=1"
def test_audiences_readpm_row_is_not_unread_message():
@@ -183,9 +183,9 @@ def test_audiences_readpm_row_is_not_unread_message():
assert msg_links == []
def test_audiences_unread_mailbox_first_page_omits_page_param():
def test_audiences_unread_mailbox_only_uses_user_box():
"""
Audiences 私信首页不传 pagepage=1 实际表示第二页。
Audiences 只使用用户消息箱,首页不传 pagepage=1 实际表示第二页。
"""
parser = NexusAudiencesSiteUserInfo(
site_name="Audiences",
@@ -196,12 +196,12 @@ def test_audiences_unread_mailbox_first_page_omits_page_param():
)
assert parser._user_mail_unread_page == "messages.php?action=viewmailbox&box=1&unread=yes"
assert parser._sys_mail_unread_page == "messages.php?action=viewmailbox&box=-2&unread=yes"
assert parser._sys_mail_unread_page is None
def test_audiences_unread_links_follow_icon_next_page():
def test_audiences_unread_links_increment_page_until_empty():
"""
Audiences 新版分页可能只有图标和 aria-label不能只依赖中文下一页文本
Audiences 每页固定 10 条,有未读行时按 page 参数自增继续翻页
"""
parser = NexusAudiencesSiteUserInfo(
site_name="Audiences",
@@ -223,20 +223,19 @@ def test_audiences_unread_links_follow_icon_next_page():
</td>
</tr>
</table>
<nav class="pagination">
<a class="page-link disabled" href="messages.php?action=viewmailbox&amp;box=1">Prev</a>
<a class="page-link active" href="messages.php?action=viewmailbox&amp;box=1">1</a>
<a class="page-link" href="messages.php?action=viewmailbox&amp;box=1&amp;page=1"
aria-label="Next">
<i class="fas fa-angle-right"></i>
</a>
</nav>
</body>
</html>
"""
msg_links = []
next_page = parser._parse_message_unread_links(html_text, msg_links)
next_next_page = parser._parse_message_unread_links(html_text, msg_links)
stop_page = parser._parse_message_unread_links("<html><body><table></table></body></html>", msg_links)
assert msg_links == ["messages.php?action=viewmessage&id=4318225"]
assert next_page == "messages.php?action=viewmailbox&box=1&page=1&unread=yes"
assert msg_links == [
"messages.php?action=viewmessage&id=4318225",
"messages.php?action=viewmessage&id=4318225",
]
assert next_page == "messages.php?action=viewmailbox&box=1&unread=yes&page=1"
assert next_next_page == "messages.php?action=viewmailbox&box=1&unread=yes&page=2"
assert stop_page is None