feat(publish): unify image fetch failure message across adapters
Deployment Config CI / Deployment Config (push) Successful in 30s
Desktop Client Build / Resolve Build Metadata (push) Successful in 17s
Frontend CI / Frontend (push) Successful in 3m35s
Backend CI / Backend (push) Successful in 16m50s
Desktop Client Build / Build Desktop Client (push) Successful in 24m2s
Desktop Client Build / Publish Client Artifacts to NAS (push) Successful in 30s
Deployment Config CI / Deployment Config (push) Successful in 30s
Desktop Client Build / Resolve Build Metadata (push) Successful in 17s
Frontend CI / Frontend (push) Successful in 3m35s
Backend CI / Backend (push) Successful in 16m50s
Desktop Client Build / Build Desktop Client (push) Successful in 24m2s
Desktop Client Build / Publish Client Artifacts to NAS (push) Successful in 30s
Consolidate per-platform cover/image fetch failure prompts into a single PUBLISH_IMAGE_FETCH_FAILED_MESSAGE constant shared by baijiahao, bilibili, dongchedi, qiehao, smzdm, and zol adapters, and generalize the normalizer to match any *_image_fetch_failed / *_cover_fetch_failed code. Also split desktop publish list loading into initial vs manual-refresh states so the refresh button no longer blanks the table, and fix admin-web active-task detection to cover all pending statuses.
This commit is contained in:
@@ -99,7 +99,7 @@ function isPendingStatus(status: PublishTaskStatus): boolean {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function hasActivePublishingTask(page: TenantPublishTaskListResponse | undefined): boolean {
|
function hasActivePublishingTask(page: TenantPublishTaskListResponse | undefined): boolean {
|
||||||
return Boolean(page?.items.some((task) => normalizePublishTaskStatus(task.status) === 'in_progress'))
|
return Boolean(page?.items.some((task) => isPendingStatus(normalizePublishTaskStatus(task.status))))
|
||||||
}
|
}
|
||||||
|
|
||||||
function normalizeTaskErrorMessage(messageText: string | null, platform?: string | null): string | null {
|
function normalizeTaskErrorMessage(messageText: string | null, platform?: string | null): string | null {
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import {
|
|||||||
prepareBaijiahaoMarkdown,
|
prepareBaijiahaoMarkdown,
|
||||||
} from '../../../../../packages/publisher-platforms/src/baijiahao'
|
} from '../../../../../packages/publisher-platforms/src/baijiahao'
|
||||||
|
|
||||||
|
import { PUBLISH_IMAGE_FETCH_FAILED_MESSAGE } from '../../shared/publisher-errors'
|
||||||
import { resolveDesktopApiURL } from '../transport/api-client'
|
import { resolveDesktopApiURL } from '../transport/api-client'
|
||||||
import type { PublishAdapter, PublishAdapterContext } from './base'
|
import type { PublishAdapter, PublishAdapterContext } from './base'
|
||||||
import {
|
import {
|
||||||
@@ -436,7 +437,7 @@ function failureResult(
|
|||||||
) {
|
) {
|
||||||
return {
|
return {
|
||||||
status: 'failed',
|
status: 'failed',
|
||||||
summary: '百家号封面文件读取失败,请重新上传封面图后重试。',
|
summary: PUBLISH_IMAGE_FETCH_FAILED_MESSAGE,
|
||||||
error: {
|
error: {
|
||||||
code: 'baijiahao_cover_fetch_failed',
|
code: 'baijiahao_cover_fetch_failed',
|
||||||
message,
|
message,
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ import { createHash } from 'node:crypto'
|
|||||||
import type { JsonValue } from '@geo/shared-types'
|
import type { JsonValue } from '@geo/shared-types'
|
||||||
import { renderTablesAsParagraphRows } from '../../../../../packages/publisher-platforms/src/baijiahao'
|
import { renderTablesAsParagraphRows } from '../../../../../packages/publisher-platforms/src/baijiahao'
|
||||||
|
|
||||||
|
import { PUBLISH_IMAGE_FETCH_FAILED_MESSAGE } from '../../shared/publisher-errors'
|
||||||
import { resolveDesktopApiURL } from '../transport/api-client'
|
import { resolveDesktopApiURL } from '../transport/api-client'
|
||||||
import type { PublishAdapter, PublishAdapterContext } from './base'
|
import type { PublishAdapter, PublishAdapterContext } from './base'
|
||||||
import {
|
import {
|
||||||
@@ -639,7 +640,7 @@ function buildFailureResult(
|
|||||||
) {
|
) {
|
||||||
return {
|
return {
|
||||||
status: 'failed',
|
status: 'failed',
|
||||||
summary: 'bilibili 正文图片读取失败,请检查文章图片后重试。',
|
summary: PUBLISH_IMAGE_FETCH_FAILED_MESSAGE,
|
||||||
error: {
|
error: {
|
||||||
code: 'bilibili_image_fetch_failed',
|
code: 'bilibili_image_fetch_failed',
|
||||||
message,
|
message,
|
||||||
|
|||||||
@@ -2,7 +2,10 @@ import { createHash, createHmac } from 'node:crypto'
|
|||||||
|
|
||||||
import type { JsonValue } from '@geo/shared-types'
|
import type { JsonValue } from '@geo/shared-types'
|
||||||
|
|
||||||
import { DONGCHEDI_PLATFORM_EXCEPTION_MESSAGE } from '../../shared/publisher-errors'
|
import {
|
||||||
|
DONGCHEDI_PLATFORM_EXCEPTION_MESSAGE,
|
||||||
|
PUBLISH_IMAGE_FETCH_FAILED_MESSAGE,
|
||||||
|
} from '../../shared/publisher-errors'
|
||||||
import type { PublishAdapter, PublishAdapterContext } from './base'
|
import type { PublishAdapter, PublishAdapterContext } from './base'
|
||||||
import {
|
import {
|
||||||
ensureViewLoaded,
|
ensureViewLoaded,
|
||||||
@@ -944,7 +947,7 @@ function failureResult(
|
|||||||
) {
|
) {
|
||||||
return {
|
return {
|
||||||
status: 'failed',
|
status: 'failed',
|
||||||
summary: '懂车帝封面文件读取失败,请重新上传封面图后重试。',
|
summary: PUBLISH_IMAGE_FETCH_FAILED_MESSAGE,
|
||||||
error: {
|
error: {
|
||||||
code: 'dongchedi_cover_fetch_failed',
|
code: 'dongchedi_cover_fetch_failed',
|
||||||
message,
|
message,
|
||||||
@@ -958,7 +961,7 @@ function failureResult(
|
|||||||
) {
|
) {
|
||||||
return {
|
return {
|
||||||
status: 'failed',
|
status: 'failed',
|
||||||
summary: '懂车帝正文图片读取失败,请检查文章图片后重试。',
|
summary: PUBLISH_IMAGE_FETCH_FAILED_MESSAGE,
|
||||||
error: {
|
error: {
|
||||||
code: 'dongchedi_image_fetch_failed',
|
code: 'dongchedi_image_fetch_failed',
|
||||||
message,
|
message,
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ import type { JsonValue } from '@geo/shared-types'
|
|||||||
import { prepareQiehaoArticleHtml } from '../../../../../packages/publisher-platforms/src/qiehao'
|
import { prepareQiehaoArticleHtml } from '../../../../../packages/publisher-platforms/src/qiehao'
|
||||||
|
|
||||||
import {
|
import {
|
||||||
|
PUBLISH_IMAGE_FETCH_FAILED_MESSAGE,
|
||||||
QIEHAO_REAL_NAME_AUTH_MESSAGE,
|
QIEHAO_REAL_NAME_AUTH_MESSAGE,
|
||||||
isQiehaoRealNameAuthError,
|
isQiehaoRealNameAuthError,
|
||||||
} from '../../shared/publisher-errors'
|
} from '../../shared/publisher-errors'
|
||||||
@@ -425,7 +426,7 @@ function failureResult(
|
|||||||
if (message === 'qiehao_cover_fetch_failed' || message.startsWith('qiehao_cover_fetch_failed:')) {
|
if (message === 'qiehao_cover_fetch_failed' || message.startsWith('qiehao_cover_fetch_failed:')) {
|
||||||
return {
|
return {
|
||||||
status: 'failed',
|
status: 'failed',
|
||||||
summary: '企鹅号封面文件读取失败,请重新上传封面图后重试。',
|
summary: PUBLISH_IMAGE_FETCH_FAILED_MESSAGE,
|
||||||
error: {
|
error: {
|
||||||
code: 'qiehao_cover_fetch_failed',
|
code: 'qiehao_cover_fetch_failed',
|
||||||
message,
|
message,
|
||||||
@@ -436,7 +437,7 @@ function failureResult(
|
|||||||
if (message === 'qiehao_image_fetch_failed' || message.startsWith('qiehao_image_fetch_failed:')) {
|
if (message === 'qiehao_image_fetch_failed' || message.startsWith('qiehao_image_fetch_failed:')) {
|
||||||
return {
|
return {
|
||||||
status: 'failed',
|
status: 'failed',
|
||||||
summary: '企鹅号正文图片读取失败,请检查文章图片后重试。',
|
summary: PUBLISH_IMAGE_FETCH_FAILED_MESSAGE,
|
||||||
error: {
|
error: {
|
||||||
code: 'qiehao_image_fetch_failed',
|
code: 'qiehao_image_fetch_failed',
|
||||||
message,
|
message,
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import { createCipheriv, createHash } from 'node:crypto'
|
|||||||
import type { JsonValue } from '@geo/shared-types'
|
import type { JsonValue } from '@geo/shared-types'
|
||||||
import { nativeImage } from 'electron'
|
import { nativeImage } from 'electron'
|
||||||
|
|
||||||
|
import { PUBLISH_IMAGE_FETCH_FAILED_MESSAGE } from '../../shared/publisher-errors'
|
||||||
import { resolveDesktopApiURL } from '../transport/api-client'
|
import { resolveDesktopApiURL } from '../transport/api-client'
|
||||||
import type { PublishAdapter, PublishAdapterContext } from './base'
|
import type { PublishAdapter, PublishAdapterContext } from './base'
|
||||||
import {
|
import {
|
||||||
@@ -776,7 +777,7 @@ function failureResult(
|
|||||||
if (message.startsWith('smzdm_cover_fetch_failed')) {
|
if (message.startsWith('smzdm_cover_fetch_failed')) {
|
||||||
return {
|
return {
|
||||||
status: 'failed',
|
status: 'failed',
|
||||||
summary: '什么值得买封面文件读取失败,请重新上传封面图后重试。',
|
summary: PUBLISH_IMAGE_FETCH_FAILED_MESSAGE,
|
||||||
error: {
|
error: {
|
||||||
code: 'smzdm_cover_fetch_failed',
|
code: 'smzdm_cover_fetch_failed',
|
||||||
message,
|
message,
|
||||||
@@ -787,7 +788,7 @@ function failureResult(
|
|||||||
if (message.startsWith('smzdm_image_fetch_failed')) {
|
if (message.startsWith('smzdm_image_fetch_failed')) {
|
||||||
return {
|
return {
|
||||||
status: 'failed',
|
status: 'failed',
|
||||||
summary: '图片获取错误,请检查你文章和封面图片是否正确',
|
summary: PUBLISH_IMAGE_FETCH_FAILED_MESSAGE,
|
||||||
error: {
|
error: {
|
||||||
code: 'smzdm_image_fetch_failed',
|
code: 'smzdm_image_fetch_failed',
|
||||||
message,
|
message,
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import type { JsonValue } from '@geo/shared-types'
|
import type { JsonValue } from '@geo/shared-types'
|
||||||
|
|
||||||
|
import { PUBLISH_IMAGE_FETCH_FAILED_MESSAGE } from '../../shared/publisher-errors'
|
||||||
import type { PublishAdapter, PublishAdapterContext } from './base'
|
import type { PublishAdapter, PublishAdapterContext } from './base'
|
||||||
import {
|
import {
|
||||||
extractImageSources,
|
extractImageSources,
|
||||||
@@ -488,7 +489,7 @@ function failureResult(
|
|||||||
if (message.startsWith('zol_cover_fetch_failed')) {
|
if (message.startsWith('zol_cover_fetch_failed')) {
|
||||||
return {
|
return {
|
||||||
status: 'failed',
|
status: 'failed',
|
||||||
summary: '中关村在线封面文件读取失败,请重新上传封面图后重试。',
|
summary: PUBLISH_IMAGE_FETCH_FAILED_MESSAGE,
|
||||||
error: {
|
error: {
|
||||||
code: 'zol_cover_fetch_failed',
|
code: 'zol_cover_fetch_failed',
|
||||||
message,
|
message,
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ function platformShortName(platform: string): string {
|
|||||||
function statusLabel(status: DesktopTaskInfo['status']): string {
|
function statusLabel(status: DesktopTaskInfo['status']): string {
|
||||||
const map: Record<DesktopTaskInfo['status'], string> = {
|
const map: Record<DesktopTaskInfo['status'], string> = {
|
||||||
queued: '等待发布',
|
queued: '等待发布',
|
||||||
in_progress: '正在发送',
|
in_progress: '正在发布',
|
||||||
succeeded: '发送成功',
|
succeeded: '发送成功',
|
||||||
failed: '发送失败',
|
failed: '发送失败',
|
||||||
unknown: '发送失败',
|
unknown: '发送失败',
|
||||||
@@ -324,7 +324,8 @@ const taskPage = ref<DesktopPublishTaskListResponse | null>(null)
|
|||||||
const currentPage = ref(1)
|
const currentPage = ref(1)
|
||||||
const searchTitle = ref('')
|
const searchTitle = ref('')
|
||||||
const appliedTitle = ref('')
|
const appliedTitle = ref('')
|
||||||
const loading = ref(false)
|
const initialLoading = ref(false)
|
||||||
|
const refreshing = ref(false)
|
||||||
const error = ref<string | null>(null)
|
const error = ref<string | null>(null)
|
||||||
const consolePendingTaskId = ref<string | null>(null)
|
const consolePendingTaskId = ref<string | null>(null)
|
||||||
const copiedErrorTaskId = ref<string | null>(null)
|
const copiedErrorTaskId = ref<string | null>(null)
|
||||||
@@ -347,8 +348,17 @@ function notifyActionError(description: string) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
async function refreshTasks(page = currentPage.value) {
|
async function refreshTasks(
|
||||||
loading.value = true
|
page = currentPage.value,
|
||||||
|
options: { initial?: boolean; manual?: boolean } = {},
|
||||||
|
) {
|
||||||
|
const showInitialLoading = Boolean(options.initial && taskPage.value === null)
|
||||||
|
if (showInitialLoading) {
|
||||||
|
initialLoading.value = true
|
||||||
|
}
|
||||||
|
if (options.manual) {
|
||||||
|
refreshing.value = true
|
||||||
|
}
|
||||||
error.value = null
|
error.value = null
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@@ -361,7 +371,7 @@ async function refreshTasks(page = currentPage.value) {
|
|||||||
const lastPage = response.total > 0 ? Math.ceil(response.total / PAGE_SIZE) : 1
|
const lastPage = response.total > 0 ? Math.ceil(response.total / PAGE_SIZE) : 1
|
||||||
if (response.total > 0 && page > lastPage) {
|
if (response.total > 0 && page > lastPage) {
|
||||||
currentPage.value = lastPage
|
currentPage.value = lastPage
|
||||||
await refreshTasks(lastPage)
|
await refreshTasks(lastPage, options)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -374,10 +384,19 @@ async function refreshTasks(page = currentPage.value) {
|
|||||||
stopActiveTaskPolling()
|
stopActiveTaskPolling()
|
||||||
}
|
}
|
||||||
} finally {
|
} finally {
|
||||||
loading.value = false
|
if (showInitialLoading) {
|
||||||
|
initialLoading.value = false
|
||||||
|
}
|
||||||
|
if (options.manual) {
|
||||||
|
refreshing.value = false
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function refreshTasksManually() {
|
||||||
|
void refreshTasks(currentPage.value, { manual: true })
|
||||||
|
}
|
||||||
|
|
||||||
function startActiveTaskPolling() {
|
function startActiveTaskPolling() {
|
||||||
if (refreshTimer) {
|
if (refreshTimer) {
|
||||||
return
|
return
|
||||||
@@ -554,7 +573,7 @@ watch(searchTitle, (value) => {
|
|||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
bindPublishLeaseListener()
|
bindPublishLeaseListener()
|
||||||
void refreshTasks()
|
void refreshTasks(currentPage.value, { initial: true })
|
||||||
})
|
})
|
||||||
|
|
||||||
onUnmounted(() => {
|
onUnmounted(() => {
|
||||||
@@ -661,8 +680,8 @@ const tableScroll = { x: 1080 } as const
|
|||||||
type="primary"
|
type="primary"
|
||||||
ghost
|
ghost
|
||||||
class="modern-btn"
|
class="modern-btn"
|
||||||
:loading="loading"
|
:loading="refreshing"
|
||||||
@click="refreshTasks()"
|
@click="refreshTasksManually"
|
||||||
>
|
>
|
||||||
<template #icon><ReloadOutlined /></template>
|
<template #icon><ReloadOutlined /></template>
|
||||||
刷新状态
|
刷新状态
|
||||||
@@ -722,7 +741,7 @@ const tableScroll = { x: 1080 } as const
|
|||||||
:columns="tableColumns"
|
:columns="tableColumns"
|
||||||
:data-source="publishTasks"
|
:data-source="publishTasks"
|
||||||
:pagination="false"
|
:pagination="false"
|
||||||
:loading="loading"
|
:loading="initialLoading"
|
||||||
:scroll="tableScroll"
|
:scroll="tableScroll"
|
||||||
:row-class-name="rowClassName"
|
:row-class-name="rowClassName"
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -4,8 +4,8 @@ import {
|
|||||||
BAIJIAHAO_CHALLENGE_REQUIRED_MESSAGE,
|
BAIJIAHAO_CHALLENGE_REQUIRED_MESSAGE,
|
||||||
DONGCHEDI_PLATFORM_EXCEPTION_MESSAGE,
|
DONGCHEDI_PLATFORM_EXCEPTION_MESSAGE,
|
||||||
PUBLISH_ACCOUNT_NOT_LOGGED_IN_MESSAGE,
|
PUBLISH_ACCOUNT_NOT_LOGGED_IN_MESSAGE,
|
||||||
|
PUBLISH_IMAGE_FETCH_FAILED_MESSAGE,
|
||||||
QIEHAO_REAL_NAME_AUTH_MESSAGE,
|
QIEHAO_REAL_NAME_AUTH_MESSAGE,
|
||||||
SMZDM_IMAGE_FETCH_FAILED_MESSAGE,
|
|
||||||
WANGYIHAO_DRAFT_SAVE_PARAMETER_MESSAGE,
|
WANGYIHAO_DRAFT_SAVE_PARAMETER_MESSAGE,
|
||||||
WANGYIHAO_PUBLISH_CLICK_MESSAGE,
|
WANGYIHAO_PUBLISH_CLICK_MESSAGE,
|
||||||
WANGYIHAO_TOKEN_MISSING_MESSAGE,
|
WANGYIHAO_TOKEN_MISSING_MESSAGE,
|
||||||
@@ -14,9 +14,9 @@ import {
|
|||||||
normalizeBaijiahaoPublishErrorMessage,
|
normalizeBaijiahaoPublishErrorMessage,
|
||||||
normalizeDongchediPublishErrorMessage,
|
normalizeDongchediPublishErrorMessage,
|
||||||
normalizePublisherErrorMessage,
|
normalizePublisherErrorMessage,
|
||||||
|
normalizePublisherImageFetchErrorMessage,
|
||||||
normalizePublisherLoginErrorMessage,
|
normalizePublisherLoginErrorMessage,
|
||||||
normalizeQiehaoPublishErrorMessage,
|
normalizeQiehaoPublishErrorMessage,
|
||||||
normalizeSmzdmPublishErrorMessage,
|
|
||||||
normalizeWangyihaoPublishErrorMessage,
|
normalizeWangyihaoPublishErrorMessage,
|
||||||
normalizeWeixinGzhPublishErrorMessage,
|
normalizeWeixinGzhPublishErrorMessage,
|
||||||
} from './publisher-errors'
|
} from './publisher-errors'
|
||||||
@@ -115,12 +115,18 @@ describe('publisher error normalization', () => {
|
|||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|
||||||
it('normalizes SMZDM image fetch failures to the desktop Chinese prompt', () => {
|
it('normalizes platform image fetch failures to the desktop Chinese prompt', () => {
|
||||||
expect(normalizePublisherErrorMessage('smzdm_image_fetch_failed', 'smzdm')).toBe(
|
expect(normalizePublisherErrorMessage('smzdm_image_fetch_failed', 'smzdm')).toBe(
|
||||||
SMZDM_IMAGE_FETCH_FAILED_MESSAGE,
|
PUBLISH_IMAGE_FETCH_FAILED_MESSAGE,
|
||||||
)
|
)
|
||||||
expect(normalizeSmzdmPublishErrorMessage('Error: smzdm_image_fetch_failed')).toBe(
|
expect(normalizePublisherErrorMessage('dongchedi_cover_fetch_failed', 'dongchedi')).toBe(
|
||||||
SMZDM_IMAGE_FETCH_FAILED_MESSAGE,
|
PUBLISH_IMAGE_FETCH_FAILED_MESSAGE,
|
||||||
|
)
|
||||||
|
expect(normalizePublisherErrorMessage('qiehao_image_fetch_failed:timeout', 'qiehao')).toBe(
|
||||||
|
PUBLISH_IMAGE_FETCH_FAILED_MESSAGE,
|
||||||
|
)
|
||||||
|
expect(normalizePublisherImageFetchErrorMessage('Error: bilibili_image_fetch_failed')).toBe(
|
||||||
|
PUBLISH_IMAGE_FETCH_FAILED_MESSAGE,
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@@ -14,8 +14,8 @@ export const BAIJIAHAO_CHALLENGE_REQUIRED_MESSAGE =
|
|||||||
'百家号检测到网络环境异常,需要人机验证。请打开百家号后台手动完成一次发稿或验证后再重试发布。'
|
'百家号检测到网络环境异常,需要人机验证。请打开百家号后台手动完成一次发稿或验证后再重试发布。'
|
||||||
export const DONGCHEDI_PLATFORM_EXCEPTION_MESSAGE =
|
export const DONGCHEDI_PLATFORM_EXCEPTION_MESSAGE =
|
||||||
'懂车帝平台返回异常,请打开懂车帝后台查看并处理平台提示,确认账号状态后再重试。'
|
'懂车帝平台返回异常,请打开懂车帝后台查看并处理平台提示,确认账号状态后再重试。'
|
||||||
export const SMZDM_IMAGE_FETCH_FAILED_MESSAGE =
|
export const PUBLISH_IMAGE_FETCH_FAILED_MESSAGE =
|
||||||
'图片获取错误,请检查你文章中图片是否正确'
|
'图片获取错误,请检查你文章和封面图片是否正确'
|
||||||
|
|
||||||
const PUBLISH_PLATFORM_LABELS: Record<string, string> = {
|
const PUBLISH_PLATFORM_LABELS: Record<string, string> = {
|
||||||
baijiahao: '百家号',
|
baijiahao: '百家号',
|
||||||
@@ -266,7 +266,7 @@ export function normalizeDongchediPublishErrorMessage(
|
|||||||
return normalized
|
return normalized
|
||||||
}
|
}
|
||||||
|
|
||||||
export function normalizeSmzdmPublishErrorMessage(
|
export function normalizePublisherImageFetchErrorMessage(
|
||||||
message: string | null | undefined,
|
message: string | null | undefined,
|
||||||
): string | null {
|
): string | null {
|
||||||
const normalized = normalizeErrorText(message)
|
const normalized = normalizeErrorText(message)
|
||||||
@@ -274,8 +274,8 @@ export function normalizeSmzdmPublishErrorMessage(
|
|||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|
||||||
if (/\bsmzdm_image_fetch_failed\b/i.test(normalized)) {
|
if (/\b[a-z0-9_]+_(?:image|cover)_fetch_failed\b/i.test(normalized)) {
|
||||||
return SMZDM_IMAGE_FETCH_FAILED_MESSAGE
|
return PUBLISH_IMAGE_FETCH_FAILED_MESSAGE
|
||||||
}
|
}
|
||||||
return normalized
|
return normalized
|
||||||
}
|
}
|
||||||
@@ -295,7 +295,7 @@ export function normalizePublisherErrorMessage(
|
|||||||
const wangyihaoMessage = normalizeWangyihaoPublishErrorMessage(qiehaoMessage)
|
const wangyihaoMessage = normalizeWangyihaoPublishErrorMessage(qiehaoMessage)
|
||||||
const baijiahaoMessage = normalizeBaijiahaoPublishErrorMessage(wangyihaoMessage)
|
const baijiahaoMessage = normalizeBaijiahaoPublishErrorMessage(wangyihaoMessage)
|
||||||
const dongchediMessage = normalizeDongchediPublishErrorMessage(baijiahaoMessage, platform)
|
const dongchediMessage = normalizeDongchediPublishErrorMessage(baijiahaoMessage, platform)
|
||||||
const smzdmMessage = normalizeSmzdmPublishErrorMessage(dongchediMessage)
|
const imageFetchMessage = normalizePublisherImageFetchErrorMessage(dongchediMessage)
|
||||||
const loginMessage = normalizePublisherLoginErrorMessage(smzdmMessage)
|
const loginMessage = normalizePublisherLoginErrorMessage(imageFetchMessage)
|
||||||
return normalizeWeixinGzhPublishErrorMessage(loginMessage)
|
return normalizeWeixinGzhPublishErrorMessage(loginMessage)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user