fix: 适配网站结构更新

1. 标记已读改用预览通道 (download2.ashx)
2. 截图优先直接访问目标页面,避免 iframe 加载问题

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-14 12:31:22 +08:00
parent b1484e9c03
commit f04c5c1c8f
2 changed files with 9 additions and 8 deletions

View File

@@ -386,8 +386,8 @@ class APIBrowser:
return attachments return attachments
def mark_read(self, attach_id: str, channel_id: str = '1') -> bool: def mark_read(self, attach_id: str, channel_id: str = '1') -> bool:
"""通过访问下载链接标记已读""" """通过访问预览通道标记已读"""
download_url = f"{BASE_URL}/tools/download.ashx?site=main&id={attach_id}&channel_id={channel_id}" download_url = f"{BASE_URL}/tools/download2.ashx?site=main&id={attach_id}&channel_id={channel_id}"
try: try:
resp = self._request_with_retry("get", download_url, stream=True) resp = self._request_with_retry("get", download_url, stream=True)

View File

@@ -311,7 +311,14 @@ def take_screenshot_for_account(
screenshot_path = os.path.join(SCREENSHOTS_DIR, screenshot_filename) screenshot_path = os.path.join(SCREENSHOTS_DIR, screenshot_filename)
cookies_for_shot = cookie_path if is_cookie_jar_fresh(cookie_path) else None cookies_for_shot = cookie_path if is_cookie_jar_fresh(cookie_path) else None
# 优先直接截取目标页面center.aspx?bz=X避免 iframe 加载问题
if take_screenshot_wkhtmltoimage( if take_screenshot_wkhtmltoimage(
target_url,
screenshot_path,
cookies_path=cookies_for_shot,
proxy_server=proxy_server,
log_callback=custom_log,
) or take_screenshot_wkhtmltoimage(
index_url, index_url,
screenshot_path, screenshot_path,
cookies_path=cookies_for_shot, cookies_path=cookies_for_shot,
@@ -319,12 +326,6 @@ def take_screenshot_for_account(
run_script=run_script, run_script=run_script,
window_status="ready", window_status="ready",
log_callback=custom_log, log_callback=custom_log,
) or take_screenshot_wkhtmltoimage(
target_url,
screenshot_path,
cookies_path=cookies_for_shot,
proxy_server=proxy_server,
log_callback=custom_log,
): ):
if os.path.exists(screenshot_path) and os.path.getsize(screenshot_path) > 1000: if os.path.exists(screenshot_path) and os.path.getsize(screenshot_path) > 1000:
log_to_client(f"✓ 截图成功: {screenshot_filename}", user_id, account_id) log_to_client(f"✓ 截图成功: {screenshot_filename}", user_id, account_id)