From ea1950d32e3886889bacbdbbdce9e52b9bbbc61d Mon Sep 17 00:00:00 2001 From: terwer Date: Wed, 9 Aug 2023 19:32:57 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BF=AE=E6=AD=A3=E5=8D=9A=E5=AE=A2?= =?UTF-8?q?=E5=9B=ADMarkdown=E5=88=86=E7=B1=BB=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/base/metaweblog/metaweblogBlogApi.ts | 4 +++ src/adaptors/api/cnblogs/cnblogsApiAdaptor.ts | 26 ++++++++++++++++++- 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/src/adaptors/api/base/metaweblog/metaweblogBlogApi.ts b/src/adaptors/api/base/metaweblog/metaweblogBlogApi.ts index ef16dbe5..626ac2b0 100644 --- a/src/adaptors/api/base/metaweblog/metaweblogBlogApi.ts +++ b/src/adaptors/api/base/metaweblog/metaweblogBlogApi.ts @@ -123,6 +123,8 @@ class MetaweblogBlogApi extends BlogApi { * @param publish - 可选,不传递默认是发布,传递false才是草稿 */ public async newPost(post: Post, publish?: boolean): Promise { + publish = publish ?? true + // 不传递默认是发布,传递false才是草稿 post.post_status = publish === false ? PostStatusEnum.PostStatusEnum_Draft : PostStatusEnum.PostStatusEnum_Publish @@ -150,6 +152,8 @@ class MetaweblogBlogApi extends BlogApi { * @param publish - 可选,不传递默认是发布,传递false才是草稿 */ public async editPost(postid: string, post: Post, publish?: boolean): Promise { + publish = publish ?? true + // 不传递默认是发布,传递false才是草稿 post.post_status = publish === false ? PostStatusEnum.PostStatusEnum_Draft : PostStatusEnum.PostStatusEnum_Publish diff --git a/src/adaptors/api/cnblogs/cnblogsApiAdaptor.ts b/src/adaptors/api/cnblogs/cnblogsApiAdaptor.ts index 4260dd34..42a61a63 100644 --- a/src/adaptors/api/cnblogs/cnblogsApiAdaptor.ts +++ b/src/adaptors/api/cnblogs/cnblogsApiAdaptor.ts @@ -23,12 +23,13 @@ * questions. */ -import { UserBlog } from "zhi-blog-api" +import { Post, UserBlog } from "zhi-blog-api" import { CnblogsConfig } from "~/src/adaptors/api/cnblogs/cnblogsConfig.ts" import { AppInstance } from "~/src/appInstance.ts" import { createAppLogger } from "~/src/utils/appLogger.ts" import { CnblogsConstants } from "~/src/adaptors/api/cnblogs/cnblogsConstants.ts" import { MetaweblogBlogApi } from "~/src/adaptors/api/base/metaweblog/metaweblogBlogApi.ts" +import { result } from "lodash-es" /** * 博客园 API 适配器 @@ -63,6 +64,18 @@ class CnblogsApiAdaptor extends MetaweblogBlogApi { return result } + public async newPost(post: Post, publish?: boolean): Promise { + // 设置markdown分类 + post = this.assignMdCategory(post) + return super.newPost(post, publish) + } + + public async editPost(postid: string, post: Post, publish?: boolean): Promise { + // 设置markdown分类 + post = this.assignMdCategory(post) + return super.editPost(postid, post, publish) + } + public override async deletePost(postid: string): Promise { const ret = await this.metaweblogCall(CnblogsConstants.METHOD_DELETE_POST, [ this.cfg.blogid, @@ -75,5 +88,16 @@ class CnblogsApiAdaptor extends MetaweblogBlogApi { return ret } + + private assignMdCategory(post: Post) { + const MD_CATEGORY = "[Markdown]" + const cats = post.categories ?? [] + + if (cats.length === 0 || cats.some((cat) => cat.toLowerCase() === MD_CATEGORY.toLowerCase())) { + cats.push(MD_CATEGORY) + } + + return post + } } export { CnblogsApiAdaptor }