import type { StoredPlatformState } from "../platforms"; import { connectedPlatform, disconnectedPlatform, fetchJson, unsupportedPublishResult } from "./common"; import type { AdapterContext, PlatformAdapter, PlatformPublishResult } from "./types"; type SmzdmCurrentUser = { smzdm_id?: string | number; nickname?: string; audit_nickname?: string; avatar?: string; }; async function detectSmzdm(platform: StoredPlatformState): Promise { try { const user = await fetchJson("https://zhiyou.smzdm.com/user/info/jsonp_get_current").catch(() => null); const uid = user?.smzdm_id != null ? String(user.smzdm_id) : ""; const nickname = user?.nickname || user?.audit_nickname || ""; if (!uid || !nickname) { return disconnectedPlatform(platform, "未检测到什么值得买登录态"); } return connectedPlatform(platform, uid, nickname, user?.avatar ?? null); } catch (error) { return disconnectedPlatform(platform, error instanceof Error ? error.message : "什么值得买登录检测失败"); } } async function publishSmzdm(): Promise { return unsupportedPublishResult("什么值得买"); } export const smzdmAdapter: PlatformAdapter = { platformId: "smzdm", detect: detectSmzdm, publish: (_context: AdapterContext) => publishSmzdm(), };