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
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:
@@ -58,7 +58,7 @@ export interface JianshuPublishTransport {
|
||||
| 'save_content'
|
||||
| 'upload_cover'
|
||||
| 'publish',
|
||||
): void
|
||||
): void | Promise<void>
|
||||
}
|
||||
|
||||
export type JianshuPublishResult =
|
||||
@@ -394,7 +394,7 @@ export async function publishJianshuArticle(
|
||||
input: JianshuPublishArticleInput,
|
||||
transport: JianshuPublishTransport,
|
||||
): Promise<JianshuPublishResult> {
|
||||
transport.reportProgress?.('media_info')
|
||||
await transport.reportProgress?.('media_info')
|
||||
const media = await fetchJianshuMediaSnapshot(transport.fetchJson)
|
||||
if (!media?.platformUid) {
|
||||
return {
|
||||
@@ -415,7 +415,7 @@ export async function publishJianshuArticle(
|
||||
}
|
||||
}
|
||||
|
||||
transport.reportProgress?.('fetch_notebook')
|
||||
await transport.reportProgress?.('fetch_notebook')
|
||||
const notebookId = await fetchPrimaryNotebookId(transport.fetchJson)
|
||||
if (!notebookId) {
|
||||
return {
|
||||
@@ -426,7 +426,7 @@ export async function publishJianshuArticle(
|
||||
}
|
||||
}
|
||||
|
||||
transport.reportProgress?.('create_note')
|
||||
await transport.reportProgress?.('create_note')
|
||||
const note = await createNote(transport.fetchJson, notebookId, input.title)
|
||||
if (!note?.id) {
|
||||
return {
|
||||
@@ -442,10 +442,10 @@ export async function publishJianshuArticle(
|
||||
let publishOk = false
|
||||
|
||||
try {
|
||||
transport.reportProgress?.('upload_content_images')
|
||||
await transport.reportProgress?.('upload_content_images')
|
||||
const processedContent = await processContentImages(transport, content)
|
||||
|
||||
transport.reportProgress?.('save_content')
|
||||
await transport.reportProgress?.('save_content')
|
||||
await transport.fetchJson<unknown>(`${JIANSHU_ORIGIN}/author/notes/${noteId}`, {
|
||||
method: 'PUT',
|
||||
headers: jianshuJsonHeaders(),
|
||||
@@ -458,11 +458,11 @@ export async function publishJianshuArticle(
|
||||
})
|
||||
|
||||
if (input.coverAssetUrl?.trim()) {
|
||||
transport.reportProgress?.('upload_cover')
|
||||
await transport.reportProgress?.('upload_cover')
|
||||
await attachCoverImage(transport, noteId, input.coverAssetUrl.trim())
|
||||
}
|
||||
|
||||
transport.reportProgress?.('publish')
|
||||
await transport.reportProgress?.('publish')
|
||||
const publicize = await transport
|
||||
.fetchJson<JianshuPublicizeResponse>(`${JIANSHU_ORIGIN}/author/notes/${noteId}/publicize`, {
|
||||
method: 'POST',
|
||||
|
||||
@@ -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',
|
||||
|
||||
Reference in New Issue
Block a user