Skip to content

Commit

Permalink
feat: 支持 WordPress
Browse files Browse the repository at this point in the history
  • Loading branch information
terwer committed Aug 1, 2023
1 parent 8068502 commit 36d905a
Show file tree
Hide file tree
Showing 5 changed files with 17 additions and 31 deletions.
29 changes: 4 additions & 25 deletions src/adaptors/api/wordpress/adaptor/wordpressApiAdaptor.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,10 @@
* questions.
*/

import { BlogApi, UserBlog } from "zhi-blog-api"
import { WordpressConfig } from "~/src/adaptors/api/wordpress/config/wordpressConfig.ts"
import { CommonXmlrpcClient } from "zhi-xmlrpc-middleware"
import { AppInstance } from "~/src/appInstance.ts"
import { createAppLogger } from "~/src/utils/appLogger.ts"
import { WordpressConstants } from "~/src/adaptors/api/wordpress/wordpressConstants.ts"
import { MetaweblogBlogApi } from "~/src/adaptors/api/base/metaweblog/metaweblogBlogApi.ts"

/**
* WordPress API 适配器
Expand All @@ -37,36 +35,17 @@ import { WordpressConstants } from "~/src/adaptors/api/wordpress/wordpressConsta
* @version 0.9.0
* @since 0.9.0
*/
class WordpressApiAdaptor extends BlogApi {
private readonly logger
private readonly cfg: WordpressConfig
private readonly commonXmlrpcClient

class WordpressApiAdaptor extends MetaweblogBlogApi {
/**
* 初始化 WordPress API 适配器
*
* @param appInstance 应用实例
* @param cfg 配置项
*/
constructor(appInstance: AppInstance, cfg: WordpressConfig) {
super()

this.cfg = cfg
super(appInstance, cfg)
this.logger = createAppLogger("wordpress-api-adaptor")
this.commonXmlrpcClient = new CommonXmlrpcClient(appInstance, cfg.apiUrl)
}

public override async getUsersBlogs(): Promise<Array<UserBlog>> {
let result: UserBlog[] = []
result = await this.wordpressCall(WordpressConstants.METHOD_GET_USERS_BLOGS, [])
this.logger.debug("getUsersBlogs=>", result)
return result
}

private async wordpressCall(method: string, params: string[]) {
const parameters = ["wordpress", this.cfg.username, this.cfg.password]
params.forEach((param) => parameters.push(param))
return await this.commonXmlrpcClient.methodCall(method, parameters, this.cfg.middlewareUrl)
this.cfg.blogid = "wordpress"
}
}
export { WordpressApiAdaptor }
4 changes: 1 addition & 3 deletions src/adaptors/api/wordpress/wordpressConstants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,6 @@
* @version 0.9.0
* @since 0.9.0
*/
class WordpressConstants {
public static METHOD_GET_USERS_BLOGS = "metaWeblog.getUsersBlogs"
}
class WordpressConstants {}

export { WordpressConstants }
8 changes: 6 additions & 2 deletions src/components/publish/PublishIndex.vue
Original file line number Diff line number Diff line change
Expand Up @@ -232,15 +232,16 @@ onMounted(async () => {
@click="handlePublish"
:disabled="!formData.actionEnable"
>
{{ t("main.publish") }}
{{ t("main.publish.start") }}
</el-button>
<el-button
type="danger"
:loading="formData.isDeleteLoading"
@click="handleDelete"
:disabled="!formData.actionEnable"
class="btn-rm-action"
>
{{ t("main.cancel") }}
{{ t("main.publish.remove") }}
</el-button>
</el-form-item>
</el-form>
Expand Down Expand Up @@ -273,4 +274,7 @@ onMounted(async () => {
.refresh-page
cursor pointer
//.btn-rm-action
// margin-left 60px
</style>
2 changes: 2 additions & 0 deletions src/locales/en_US.ts
Original file line number Diff line number Diff line change
Expand Up @@ -515,4 +515,6 @@ export default {
"setting.upgrade.syp.doTip2": "Detected old configuration, preparation to upgrade the configuration file",
"setting.upgrade.syp.doTip3": "Old configuration upgraded",
"setting.upgrade.syp.doTip4": "No update for version, skip upgrade",
"main.publish.start": "Start syncing",
"main.publish.remove": "Remove",
}
5 changes: 4 additions & 1 deletion src/locales/zh_CN.ts
Original file line number Diff line number Diff line change
Expand Up @@ -484,7 +484,8 @@ export default {
"setting.platform.metaweblog.desc":
"目前支持Metaweblog的平台有:博客园、Typecho等,采用 API 授权。MetaWeblog API 作为XML-RPC Web 服务实现,是目前公认的开放博客标准。",
"setting.platform.custom": "自定义 HTTP 协议",
"setting.platform.custom.desc": "目前支持自定义HTTP协议的平台有:知乎、简书、掘金等,采用网页授权。自定义HTTP协议通过类似 WeChatSync 的方式实现。",
"setting.platform.custom.desc":
"目前支持自定义HTTP协议的平台有:知乎、简书、掘金等,采用网页授权。自定义HTTP协议通过类似 WeChatSync 的方式实现。",
"setting.platform.right.tips0": "特别提示:",
"setting.platform.right.tips1": "1、在这里可以进行发布配置,直接点击 [设置图标] 即可进行配置。",
"setting.platform.right.tips2": "2、如需新增平台,直接点击左侧 + 按钮即可。",
Expand All @@ -502,4 +503,6 @@ export default {
"setting.upgrade.syp.doTip2": "检测到旧配置,准备升级配置文件",
"setting.upgrade.syp.doTip3": "旧配置升级",
"setting.upgrade.syp.doTip4": "没有版本更新,跳过升级",
"main.publish.start": "开始同步",
"main.publish.remove": "批量删除",
}

0 comments on commit 36d905a

Please sign in to comment.