From 9b29c0d82d3adfc80f74440bbff0934929c7a7b5 Mon Sep 17 00:00:00 2001 From: "tangly1024.com" Date: Thu, 7 Sep 2023 16:00:54 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=96=B0=E7=89=88Notion?= =?UTF-8?q?=E4=B8=AD=E9=99=84=E4=BB=B6=E6=96=87=E4=BB=B6=E6=97=A0=E6=B3=95?= =?UTF-8?q?=E6=89=93=E5=BC=80=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/notion/getPostBlocks.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/lib/notion/getPostBlocks.js b/lib/notion/getPostBlocks.js index ca3090dd..be228594 100644 --- a/lib/notion/getPostBlocks.js +++ b/lib/notion/getPostBlocks.js @@ -63,6 +63,7 @@ export async function getPageWithRetry(id, from, retryAttempts = 3) { /** * 获取到的blockMap删除不需要的字段 + * 并且对于页面内容进行特殊处理,比如文件url格式化 * @param {*} id 页面ID * @param {*} pageBlock 页面元素 * @param {*} slice 截取数量 @@ -72,6 +73,7 @@ function filterPostBlocks(id, pageBlock, slice) { const clonePageBlock = deepClone(pageBlock) let count = 0 + // 循环遍历文档的每个block for (const i in clonePageBlock?.block) { const b = clonePageBlock?.block[i] if (slice && slice > 0 && count > slice) { @@ -99,6 +101,13 @@ function filterPostBlocks(id, pageBlock, slice) { } } + // 如果是文件,需要重新加密签名 + if (b?.value?.type === 'file' && b?.value?.properties?.source?.[0][0]) { + const oldUrl = b?.value?.properties?.source?.[0][0] + const newUrl = `https://notion.so/signed/${encodeURIComponent(oldUrl)}?table=block&id=${b?.value?.id}` + b.value.properties.source[0][0] = newUrl + } + delete b?.role delete b?.value?.version delete b?.value?.created_by_table