From abc8e3e8289eaa0433fbc546f4e7fe0f8ec7693a Mon Sep 17 00:00:00 2001 From: 2977094657 <2977094657@qq.com> Date: Thu, 19 Feb 2026 20:01:29 +0800 Subject: [PATCH] =?UTF-8?q?improvement(sns):=20=E4=BC=98=E5=8C=96=E8=A7=86?= =?UTF-8?q?=E9=A2=91=E5=8F=B7=E5=8D=A1=E7=89=87=E6=A0=B7=E5=BC=8F=EF=BC=88?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2/=E5=AF=BC=E5=87=BA=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - sns.vue:视频号 card 改为正方形封面(无图用文字占位),并移除 source/显示计数 - sns_export_service:HTML 导出同步相同布局与播放按钮样式 --- frontend/pages/sns.vue | 46 +++++++------------ src/wechat_decrypt_tool/sns_export_service.py | 23 ++++------ 2 files changed, 26 insertions(+), 43 deletions(-) diff --git a/frontend/pages/sns.vue b/frontend/pages/sns.vue index c7ca3d5..e095bce 100644 --- a/frontend/pages/sns.vue +++ b/frontend/pages/sns.vue @@ -179,9 +179,7 @@
暂无朋友圈数据
- 已显示:{{ posts.length }} 缓存统计:{{ selectedSnsUserInfo.postCount || 0 }} - source: {{ timelineSource }} (已到末尾)
@@ -247,30 +245,23 @@
-
- -
-
-
-
{{ formatFinderFeedCardText(post) }}
-
-
- -
- 视频 -
-
-
- -
-
+
+ +
+ +
+ {{ formatFinderFeedCardText(post) }} +
+
+
+
@@ -622,7 +613,6 @@ const seenPostIds = new Set() // NOTE: Backend `/api/sns/timeline` uses SQL OFFSET on the raw timeline rows. // The UI filters out some rows (e.g. type=7 cover), so `posts.length` must NOT be used as the next OFFSET. const timelineOffset = ref(0) -const timelineSource = ref('') const hasMore = ref(true) // When timeline API reports `hasMore=false` but cached sidebar count indicates more, keep paging. // If we hit an empty page, stop trying to avoid infinite requests. @@ -1615,7 +1605,6 @@ const loadPosts = async ({ reset }) => { try { if (reset) { timelineOffset.value = 0 - timelineSource.value = '' hasMore.value = true cachePagingExhausted.value = false seenPostIds.clear() @@ -1633,7 +1622,6 @@ const loadPosts = async ({ reset }) => { offset, usernames: selectedSnsUser.value ? [String(selectedSnsUser.value).trim()] : [] }) - timelineSource.value = String(resp?.source || '').trim() const items = Array.isArray(resp?.timeline) ? resp.timeline : [] // Advance offset by the number of rows consumed by the backend. // When `hasMore` is true, the backend definitely scanned at least `limit` raw rows (even if it filtered some out). diff --git a/src/wechat_decrypt_tool/sns_export_service.py b/src/wechat_decrypt_tool/sns_export_service.py index 0e4fa6e..81a940b 100644 --- a/src/wechat_decrypt_tool/sns_export_service.py +++ b/src/wechat_decrypt_tool/sns_export_service.py @@ -1204,29 +1204,24 @@ class SnsExportManager: ff = post.get("finderFeed") if isinstance(post.get("finderFeed"), dict) else {} thumb_url = str(ff.get("thumbUrl") or "").strip() if isinstance(ff, dict) else "" thumb_arc = export_external_thumb(thumb_url, kind="finder") if thumb_url else "" - out.append('
') - out.append('
') - out.append('
') - out.append('
') - out.append( - f'
{_esc_text(format_finder_feed_card_text(post))}
' - ) - out.append("
") - out.append('
') + out.append('
') + out.append('
') if thumb_arc: out.append( - f'' + f'' ) else: out.append( - '
视频
' + '
' + f'{_esc_text(format_finder_feed_card_text(post))}' + "
" ) out.append('
') - out.append('
') + out.append('
') out.append( - '' + '' ) - out.append("
") + out.append("
") else: out.append(render_media_block(zf=zf, post=post))