diff --git a/Upload2Notion.ts b/Upload2Notion.ts index f2136c6..b048aac 100644 --- a/Upload2Notion.ts +++ b/Upload2Notion.ts @@ -26,12 +26,36 @@ export class Upload2Notion { return response; } + async getDataBase(databaseID:string){ + const response = await requestUrl({ + url: `https://api.notion.com/v1/databases/${databaseID}`, + method: 'GET', + headers: { + 'Authorization': 'Bearer ' + this.app.settings.notionAPI, + 'Notion-Version': '2022-06-28', + } + } + ) + + // Check if cover is present in the JSON response and then get the URL + if (response.json.cover && response.json.cover.external) { + return response.json.cover.external.url; + } else { + return null; // or some other default value, if you prefer + } + } + // 因为需要解析notion的block进行对比,非常的麻烦, // 暂时就直接删除,新建一个page async updatePage(notionID:string, title:string, allowTags:boolean, emoji:string, cover:string, tags:string[], type:string, slug:string, stats:string, category:string, summary:string, paword:string, favicon:string, datetime:string, childArr:any) { await this.deletePage(notionID) - const res = await this.createPage(title, allowTags, emoji,cover, tags, type, slug, stats, category, summary, paword, favicon, datetime, childArr) - return res + const databasecover = await this.getDataBase(this.app.settings.databaseID) + + if (cover == null) { + cover = databasecover + } + + const res = await this.createPage(title, allowTags, emoji, cover, tags, type, slug, stats, category, summary, paword, favicon, datetime, childArr) } async createPage(title:string, allowTags:boolean, emoji:string, cover:string, tags:string[], type:string, slug:string, stats:string, category:string, summary:string, pawrod:string, favicon:string, datetime:string, childArr: any) { @@ -42,11 +66,6 @@ export class Upload2Notion { icon: { emoji: emoji || '📜' }, - cover: { - external: { - url: cover || '' - } - }, properties: { title: { title: [ @@ -121,16 +140,24 @@ export class Upload2Notion { }, children: childArr, } - - if(this.app.settings.bannerUrl) { + if (cover) { bodyString.cover = { type: "external", external: { - url: this.app.settings.bannerUrl + url: cover } } } + if (!bodyString.cover && this.app.settings.bannerUrl) { + bodyString.cover = { + type: "external", + external: { + url: this.app.settings.bannerUrl + } + } + } + try { const response = await requestUrl({ url: `https://api.notion.com/v1/pages`, diff --git a/manifest.json b/manifest.json index d1f648e..6182fce 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "id": "share-to-notionnext", "name": "Share to NotionNext", - "version": "0.0.6", + "version": "0.0.7", "minAppVersion": "0.0.1", "description": "This is a plugin for Obsidian. This plugin shares obsidian md file to notion with notion api for NotionNext web deploy.", "author": "jxpeng98", diff --git a/package.json b/package.json index ae2f20e..b05cd3a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "share-to-notionnext", - "version": "0.0.6", + "version": "0.0.7", "type": "module", "description": "This is a plugin for Obsidian. This plugin share obsidian md file to notion with notion api for NotionNext web deploy.", "main": "main.js",