import type { StoredPlatformState } from "../platforms"; import type { AdapterContext, PlatformAdapter, PlatformPublishResult } from "./types"; import { baijiahaoAdapter } from "./baijiahao"; import { bilibiliAdapter } from "./bilibili"; import { dongchediAdapter } from "./dongchedi"; import { jianshuAdapter } from "./jianshu"; import { juejinAdapter } from "./juejin"; import { qiehaoAdapter } from "./qiehao"; import { smzdmAdapter } from "./smzdm"; import { sohuhaoAdapter } from "./sohuhao"; import { toutiaohaoAdapter } from "./toutiaohao"; import { wangyihaoAdapter } from "./wangyihao"; import { weixinGzhAdapter } from "./weixin_gzh"; import { zhihuAdapter } from "./zhihu"; import { zolAdapter } from "./zol"; const adapters = new Map( [ zhihuAdapter, toutiaohaoAdapter, baijiahaoAdapter, sohuhaoAdapter, qiehaoAdapter, jianshuAdapter, bilibiliAdapter, juejinAdapter, wangyihaoAdapter, smzdmAdapter, weixinGzhAdapter, zolAdapter, dongchediAdapter, ].map((adapter) => [adapter.platformId, adapter]), ); export function getPlatformAdapter(platformId: string): PlatformAdapter | undefined { return adapters.get(platformId); } export async function detectPlatformState(platform: StoredPlatformState): Promise { const adapter = getPlatformAdapter(platform.platform_id); if (!adapter) { return platform; } return adapter.detect(platform); } export async function publishViaAdapter(platformId: string, context: AdapterContext): Promise { const adapter = getPlatformAdapter(platformId); if (!adapter) { return null; } return adapter.publish(context); }