function parseEditorImage (blocks = []) {
  const images = []

  if (!Array.isArray(blocks)) {
    blocks = [blocks]
  }

  for (const block of blocks) {
    const {insert = {}, attributes = {}} = block
    const {'data-custom': custom = ""} = attributes

    let parseCustom = custom.split('&').reduce((obj, item) => {
      const [key, value] = item.split('=')

      if (key && value) {
        obj[key] = value
      }
      return obj
    }, {})

    images.push({
      src: insert.image,
      source: parseCustom.source ? parseCustom.source: insert.image
    })
  }

  return images
}

/**
 * 解析媒体库/编辑器中的图片
 * @param images 图片地址
 * @param type {string} 解析类型 media: 媒体库, editor: 编辑器
 * @returns {Promise<{src: *, source: *}[]|{src, source: *}[]>}
 */
export async function parseImageUrl (images = [], type = "media") {
  if (type === "editor") {
    images = parseEditorImage(images).map(item => item.source)
  } else {
    if (!Array.isArray(images)) {
      images = [images]
    }
  }

  if (!images) return null

  const tcbFiles = images.filter(item => item.startsWith("cloud://"))

  if (tcbFiles.length) {
    const res = await uniCloud.getTempFileURL({
      fileList: tcbFiles
    })

    return images.map(image => {
      const file = res.fileList.find(item => item.fileID === image)

      return {
        src: file ? file.tempFileURL : image,
        source: image
      }
    })
  } else {
    return images.map(image => ({
      src: image,
      source: image
    }))
  }
}
