diff --git a/lib/notion/getNotionData.js b/lib/notion/getNotionData.js index d094dd57..32089e30 100755 --- a/lib/notion/getNotionData.js +++ b/lib/notion/getNotionData.js @@ -28,7 +28,7 @@ export async function getGlobalData({ // 从notion获取 const data = await getNotionPageData({ pageId, from }) const db = deepClone(data) - // 不返回的敏感数据 + // 减少返回给前端的数据,减少流量损耗 delete db.block delete db.schema delete db.rawMetadata @@ -38,9 +38,47 @@ export async function getGlobalData({ delete db.collectionQuery delete db.collectionId delete db.collectionView + + // 清理多余的块 + if (db?.notice) { + db.notice = cleanBlock(db?.notice) + } + if (db?.post) { + db.post = cleanBlock(db?.post) + } + return db } +function cleanBlock(post) { + const pageBlock = post?.blockMap?.block + for (const i in pageBlock) { + pageBlock[i] = cleanBlock(pageBlock[i]) + delete pageBlock[i]?.role + delete pageBlock[i]?.value?.version + delete pageBlock[i]?.value?.created_by_table + delete pageBlock[i]?.value?.created_by_id + delete pageBlock[i]?.value?.last_edited_by_table + delete pageBlock[i]?.value?.last_edited_by_id + delete pageBlock[i]?.value?.space_id + delete pageBlock[i]?.value?.version + delete pageBlock[i]?.value?.format?.copied_from_pointer + delete pageBlock[i]?.value?.format?.block_locked_by + delete pageBlock[i]?.value?.parent_table + delete pageBlock[i]?.value?.copied_from_pointer + delete pageBlock[i]?.value?.copied_from + delete pageBlock[i]?.value?.created_by_table + delete pageBlock[i]?.value?.created_by_id + delete pageBlock[i]?.value?.last_edited_by_table + delete pageBlock[i]?.value?.last_edited_by_id + delete pageBlock[i]?.value?.permissions + delete pageBlock[i]?.value?.alive + } + + delete post?.blockMap?.collection + return post +} + /** * 获取最新文章 根据最后修改时间倒序排列 * @param {*}} param0 diff --git a/lib/notion/getPostBlocks.js b/lib/notion/getPostBlocks.js index a78ade6b..7c085993 100644 --- a/lib/notion/getPostBlocks.js +++ b/lib/notion/getPostBlocks.js @@ -87,12 +87,12 @@ export async function getPageWithRetry(id, from, retryAttempts = 3) { * 2.比如文件、视频、音频、url格式化 * 3.代码块等元素兼容 * @param {*} id 页面ID - * @param {*} pageBlock 页面元素 + * @param {*} blockMap 页面元素 * @param {*} slice 截取数量 * @returns */ -function filterPostBlocks(id, pageBlock, slice) { - const clonePageBlock = deepClone(pageBlock) +function filterPostBlocks(id, blockMap, slice) { + const clonePageBlock = deepClone(blockMap) let count = 0 // 循环遍历文档的每个block @@ -132,14 +132,6 @@ function filterPostBlocks(id, pageBlock, slice) { 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 - delete b?.value?.created_by_id - delete b?.value?.last_edited_by_table - delete b?.value?.last_edited_by_id - delete b?.value?.space_id } // 去掉不用的字段