u
This commit is contained in:
parent
3e52b5a9f4
commit
fc146dc10d
12
tool_core.js
12
tool_core.js
@ -332,7 +332,11 @@ module.exports = {
|
|||||||
// 返回新的数组
|
// 返回新的数组
|
||||||
filter_story (story) {
|
filter_story (story) {
|
||||||
if (Array.isArray(story) && story.length) {
|
if (Array.isArray(story) && story.length) {
|
||||||
return story.filter((section) => Object.values(section || {}).some((val) => !this.is_empty(val))) // (section.text || section.image || section.video)?.trim?.()
|
// section can contain property '_xxx' which shall not change filter result.
|
||||||
|
return story.filter((section) => {
|
||||||
|
if (!section) return false
|
||||||
|
return Object.entries(section).some(([key, val]) => !key.startsWith('_') && !this.is_empty(val))
|
||||||
|
})
|
||||||
} else {
|
} else {
|
||||||
return []
|
return []
|
||||||
}
|
}
|
||||||
@ -354,7 +358,7 @@ module.exports = {
|
|||||||
summarize_story (story = []) {
|
summarize_story (story = []) {
|
||||||
// story is an array of objects, each object could either be {text:'some string'}, {image: url} or {video:url}. Please construct a summary object as result: { textLength, imageCount, VideoCount }
|
// story is an array of objects, each object could either be {text:'some string'}, {image: url} or {video:url}. Please construct a summary object as result: { textLength, imageCount, VideoCount }
|
||||||
return story.reduce(
|
return story.reduce(
|
||||||
(summary, { text, image, video, file, linkTarget } = {}) => {
|
(summary, { text, image, video, audio, file, linkTarget } = {}) => {
|
||||||
if (text) {
|
if (text) {
|
||||||
summary.textLength += text.length
|
summary.textLength += text.length
|
||||||
summary.wordCount += text.split(/\s+/).length
|
summary.wordCount += text.split(/\s+/).length
|
||||||
@ -362,6 +366,8 @@ module.exports = {
|
|||||||
summary.imageCount++
|
summary.imageCount++
|
||||||
} else if (video) {
|
} else if (video) {
|
||||||
summary.videoCount++
|
summary.videoCount++
|
||||||
|
} else if (audio) {
|
||||||
|
summary.audioCount++
|
||||||
} else if (file) {
|
} else if (file) {
|
||||||
summary.fileCount++
|
summary.fileCount++
|
||||||
} else if (linkTarget) {
|
} else if (linkTarget) {
|
||||||
@ -371,7 +377,7 @@ module.exports = {
|
|||||||
}
|
}
|
||||||
return summary
|
return summary
|
||||||
},
|
},
|
||||||
{ textLength: 0, wordCount: 0, imageCount: 0, videoCount: 0, fileCount: 0, linkCount: 0, untypeCount: 0 }
|
{ textLength: 0, wordCount: 0, imageCount: 0, videoCount: 0, audioCount: 0, fileCount: 0, linkCount: 0, untypeCount: 0 }
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -39,15 +39,19 @@ module.exports = {
|
|||||||
|
|
||||||
is_text_file (fileName = '') {
|
is_text_file (fileName = '') {
|
||||||
const ext = /\./.test(fileName) ? fileName.split('.').pop().toLowerCase() : ''
|
const ext = /\./.test(fileName) ? fileName.split('.').pop().toLowerCase() : ''
|
||||||
return (wo.envar.textExtensionList || ['txt', 'text']).includes(ext)
|
return wo.envar.textExtensionList?.includes?.(ext)
|
||||||
},
|
},
|
||||||
is_image_file (fileName = '') {
|
is_image_file (fileName = '') {
|
||||||
const ext = /\./.test(fileName) ? fileName.split('.').pop().toLowerCase() : ''
|
const ext = /\./.test(fileName) ? fileName.split('.').pop().toLowerCase() : ''
|
||||||
return (wo.envar.imageExtensionList || ['jpg', 'jpeg', 'png', 'gif', 'webp', 'image']).includes(ext)
|
return wo.envar.imageExtensionList?.includes?.(ext)
|
||||||
},
|
},
|
||||||
is_video_file (fileName = '') {
|
is_video_file (fileName = '') {
|
||||||
const ext = /\./.test(fileName) ? fileName.split('.').pop().toLowerCase() : ''
|
const ext = /\./.test(fileName) ? fileName.split('.').pop().toLowerCase() : ''
|
||||||
return (wo.envar.videoExtensionList || ['avi', 'mp4', 'mov', 'wmv', 'video']).includes(ext)
|
return wo.envar.videoExtensionList?.includes?.(ext)
|
||||||
|
},
|
||||||
|
is_audio_file (fileName = '') {
|
||||||
|
const ext = /\./.test(fileName) ? fileName.split('.').pop().toLowerCase() : ''
|
||||||
|
return wo.envar.audioExtensionList?.includes?.(ext)
|
||||||
},
|
},
|
||||||
|
|
||||||
thisPage () {
|
thisPage () {
|
||||||
@ -343,7 +347,13 @@ module.exports = {
|
|||||||
filePath = fileDragged.filePath
|
filePath = fileDragged.filePath
|
||||||
filePicked = fileDragged
|
filePicked = fileDragged
|
||||||
if (!mediaType) {
|
if (!mediaType) {
|
||||||
mediaType = this.is_image_file(fileDragged.name) ? 'image' : this.is_video_file(fileDragged.name) ? 'video' : 'file'
|
mediaType = this.is_image_file(fileDragged.name)
|
||||||
|
? 'image'
|
||||||
|
: this.is_video_file(fileDragged.name)
|
||||||
|
? 'video'
|
||||||
|
: this.is_audio_file(fileDragged.name)
|
||||||
|
? 'audio'
|
||||||
|
: 'file'
|
||||||
}
|
}
|
||||||
} else if (mediaType === 'image') {
|
} else if (mediaType === 'image') {
|
||||||
let [errorChoose, { tempFilePaths, tempFiles } = {}] = await uni.chooseImage({ count, sizeType, sourceType })
|
let [errorChoose, { tempFilePaths, tempFiles } = {}] = await uni.chooseImage({ count, sizeType, sourceType })
|
||||||
@ -367,6 +377,27 @@ module.exports = {
|
|||||||
fileSize = size
|
fileSize = size
|
||||||
filePicked = tempFile
|
filePicked = tempFile
|
||||||
filePath = tempFilePath
|
filePath = tempFilePath
|
||||||
|
} else if (mediaType === 'audio') {
|
||||||
|
// #ifdef WEB
|
||||||
|
// https://uniapp.dcloud.net.cn/api/media/file.html
|
||||||
|
let [errorChoose, { tempFilePaths, tempFiles } = {}] = await uni.chooseFile({
|
||||||
|
count,
|
||||||
|
extension: wo.envar.audioExtensionList,
|
||||||
|
type: undefined,
|
||||||
|
}) // 20240429 但是测试下来 extension 参数无效
|
||||||
|
if (errorChoose) {
|
||||||
|
return {
|
||||||
|
_state: 'CER_FAIL_CHOOSE',
|
||||||
|
_msg: '', // { zhCN: '文件选择失败。请稍后再试,或向客服投诉。', enUS: 'File choose failed. Please try again later, or report to customer service.' },
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fileSize = tempFiles?.[0]?.size
|
||||||
|
filePicked = tempFiles?.[0]
|
||||||
|
filePath = tempFilePaths?.[0]
|
||||||
|
// #endif
|
||||||
|
// #ifndef WEB
|
||||||
|
return { _state: 'UNSUPPORTED_FILETYPE', _msg: { zhCN: '请切换到网页端上传文件!', enUS: 'Please switch to WebApp to upload files.' } }
|
||||||
|
// #endif
|
||||||
} else {
|
} else {
|
||||||
// #ifdef WEB
|
// #ifdef WEB
|
||||||
// https://uniapp.dcloud.net.cn/api/media/file.html
|
// https://uniapp.dcloud.net.cn/api/media/file.html
|
||||||
|
Loading…
Reference in New Issue
Block a user