feat: implement browser extension for media publishing and add backend support for media management

This commit is contained in:
2026-04-03 00:39:15 +08:00
parent 8958cb44c0
commit 32d6a462cd
60 changed files with 8268 additions and 26 deletions
@@ -0,0 +1,26 @@
import type { StoredPlatformState } from "../platforms";
import type { AdapterContext, PlatformAdapter, PlatformPublishResult } from "./types";
import { zhihuAdapter } from "./zhihu";
const adapters = new Map<string, PlatformAdapter>([[zhihuAdapter.platformId, zhihuAdapter]]);
export function getPlatformAdapter(platformId: string): PlatformAdapter | undefined {
return adapters.get(platformId);
}
export async function detectPlatformState(platform: StoredPlatformState): Promise<StoredPlatformState> {
const adapter = getPlatformAdapter(platform.platform_id);
if (!adapter) {
return platform;
}
return adapter.detect(platform);
}
export async function publishViaAdapter(platformId: string, context: AdapterContext): Promise<PlatformPublishResult | null> {
const adapter = getPlatformAdapter(platformId);
if (!adapter) {
return null;
}
return adapter.publish(context);
}