fix(publish): require submit marker before platform write
Desktop Client Build / Resolve Build Metadata (push) Successful in 20s
Frontend CI / Frontend (push) Successful in 2m57s
Desktop Client Build / Build Desktop Client (push) Successful in 25m11s
Desktop Client Build / Publish Client Artifacts to NAS (push) Successful in 34s
Backend CI / Backend (push) Successful in 50m56s

This commit is contained in:
2026-05-30 22:29:28 +08:00
parent dbd2a1c9f6
commit 8ea4a2ffff
20 changed files with 227 additions and 155 deletions
+7 -5
View File
@@ -61,7 +61,9 @@ export interface ToutiaoPublishTransport {
html: string,
uploader: (sourceUrl: string) => Promise<string | null>,
): Promise<{ html: string; uploaded?: Map<string, string> }>
reportProgress?(stage: 'media_info' | 'upload_content_images' | 'upload_cover' | 'submit'): void
reportProgress?(
stage: 'media_info' | 'upload_content_images' | 'upload_cover' | 'submit',
): void | Promise<void>
}
export type ToutiaoPublishResult =
@@ -236,7 +238,7 @@ export async function publishToutiaoArticle(
input: ToutiaoPublishArticleInput,
transport: ToutiaoPublishTransport,
): Promise<ToutiaoPublishResult> {
transport.reportProgress?.('media_info')
await transport.reportProgress?.('media_info')
const media = await fetchToutiaoMediaSnapshot(transport.fetchJson)
if (!media?.platformUid || !media.screenName) {
return {
@@ -257,7 +259,7 @@ export async function publishToutiaoArticle(
}
}
transport.reportProgress?.('upload_content_images')
await transport.reportProgress?.('upload_content_images')
const processed = await transport.uploadHtmlImages(normalizedHtml, async (sourceUrl) =>
uploadContentImage(transport, sourceUrl),
)
@@ -275,7 +277,7 @@ export async function publishToutiaoArticle(
}
}
transport.reportProgress?.('upload_cover')
await transport.reportProgress?.('upload_cover')
const cover = input.coverAssetUrl?.trim()
? await uploadCover(transport, input.coverAssetUrl.trim(), input.publishType)
: null
@@ -306,7 +308,7 @@ export async function publishToutiaoArticle(
}),
})
transport.reportProgress?.('submit')
await transport.reportProgress?.('submit')
const response: ToutiaoPublishResponse = await transport
.fetchJson<ToutiaoPublishResponse>(
'https://mp.toutiao.com/mp/agw/article/publish?source=mp&type=article&aid=1231',