198 lines
5.8 KiB
TypeScript
198 lines
5.8 KiB
TypeScript
import { analysis, tasksearch, polishScript, createTask } from "../../utils/request"
|
|||
|
|
|
||
|
|
const sampleText = '解析中...'
|
||
|
|
const checkinStorageKey = 'lastCheckinDate'
|
||
|
|
|
||
|
|
function getTodayKey() {
|
||
|
|
const now = new Date()
|
||
|
|
const year = now.getFullYear()
|
||
|
|
const month = String(now.getMonth() + 1).padStart(2, '0')
|
||
|
|
const day = String(now.getDate()).padStart(2, '0')
|
||
|
|
return `${year}-${month}-${day}`
|
||
|
|
}
|
||
|
|
|
||
|
|
Component({
|
||
|
|
data: {
|
||
|
|
parsed: false,
|
||
|
|
videoLink: '',
|
||
|
|
scriptText: sampleText,
|
||
|
|
showCheckinPopup: false,
|
||
|
|
taskId: '',
|
||
|
|
parseId: '',
|
||
|
|
polishing: false
|
||
|
|
},
|
||
|
|
lifetimes: {
|
||
|
|
attached() {
|
||
|
|
const today = getTodayKey()
|
||
|
|
const lastCheckinDate = wx.getStorageSync(checkinStorageKey)
|
||
|
|
|
||
|
|
if (lastCheckinDate !== today) {
|
||
|
|
this.setData({ showCheckinPopup: true })
|
||
|
|
}
|
||
|
|
},
|
||
|
|
},
|
||
|
|
methods: {
|
||
|
|
handleInput(e: any) {
|
||
|
|
this.setData({
|
||
|
|
videoLink: e.detail.value,
|
||
|
|
})
|
||
|
|
},
|
||
|
|
onUnload() {
|
||
|
|
this.setData({ videoLink: '', parsed: false, scriptText: '' })
|
||
|
|
},
|
||
|
|
handlePaste() {
|
||
|
|
wx.getClipboardData({
|
||
|
|
success: (res) => {
|
||
|
|
this.setData({
|
||
|
|
videoLink: res.data || '0.58 J@i.cN 08/24 :0pm ULw:/ # 新到 # 国五排放 # 货车出售转让 https://v.douyin.com/tHoCmTcQT2Q/ 复制此链接,打开Dou音搜索,直接观看视频!',
|
||
|
|
})
|
||
|
|
},
|
||
|
|
fail: () => {
|
||
|
|
this.setData({
|
||
|
|
videoLink: '0.58 J@i.cN 08/24 :0pm ULw:/ # 新到 # 国五排放 # 货车出售转让 https://v.douyin.com/tHoCmTcQT2Q/ 复制此链接,打开Dou音搜索,直接观看视频!',
|
||
|
|
})
|
||
|
|
},
|
||
|
|
})
|
||
|
|
},
|
||
|
|
handleParse() {
|
||
|
|
if (this.data.videoLink == '') {
|
||
|
|
wx.showModal({
|
||
|
|
title: '温馨提示',
|
||
|
|
content: '解析链接不能为空',
|
||
|
|
showCancel: false
|
||
|
|
})
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
wx.showLoading({ title: '解析中.' });
|
||
|
|
analysis(this.data.videoLink).then((res: any) => {
|
||
|
|
console.log(res);
|
||
|
|
wx.hideLoading();
|
||
|
|
if (!res.code) {
|
||
|
|
this.setData({
|
||
|
|
parsed: true,
|
||
|
|
taskId: '',
|
||
|
|
parseId: String(res.data.parseId || res.data.taskId || '')
|
||
|
|
})
|
||
|
|
wx.showLoading({ title: '等待结果中...', mask: true });
|
||
|
|
this.tasksearch(String(res.data.parseId || res.data.taskId || ''))
|
||
|
|
} else {
|
||
|
|
wx.showModal({
|
||
|
|
title: '温馨提示',
|
||
|
|
content: '解析失败,请确认链接的有效性',
|
||
|
|
showCancel: false
|
||
|
|
})
|
||
|
|
}
|
||
|
|
}).catch((err) => {
|
||
|
|
console.log(err)
|
||
|
|
wx.hideLoading();
|
||
|
|
wx.showModal({
|
||
|
|
title: '温馨提示',
|
||
|
|
content: '解析失败,请重试',
|
||
|
|
showCancel: false
|
||
|
|
})
|
||
|
|
})
|
||
|
|
},
|
||
|
|
|
||
|
|
tasksearch(taskId: string) {
|
||
|
|
let that = this;
|
||
|
|
tasksearch(taskId).then((res: any) => {
|
||
|
|
if (!res.code) {
|
||
|
|
wx.hideLoading();
|
||
|
|
|
||
|
|
this.setData({ scriptText: (res.data && res.data.scriptText) || '' })
|
||
|
|
} else {
|
||
|
|
setTimeout(() => that.tasksearch(taskId), 500);
|
||
|
|
}
|
||
|
|
})
|
||
|
|
},
|
||
|
|
|
||
|
|
handleReset() {
|
||
|
|
this.setData({
|
||
|
|
parsed: false,
|
||
|
|
scriptText: '',
|
||
|
|
})
|
||
|
|
this.handleParse();
|
||
|
|
},
|
||
|
|
handleCopy() {
|
||
|
|
wx.setClipboardData({
|
||
|
|
data: this.data.scriptText,
|
||
|
|
fail(err) {
|
||
|
|
console.log(err);
|
||
|
|
wx.showModal({
|
||
|
|
title: '温馨提示',
|
||
|
|
content: '您还未授于剪切板权限'
|
||
|
|
})
|
||
|
|
}
|
||
|
|
})
|
||
|
|
},
|
||
|
|
handlePolish() {
|
||
|
|
if (!(this.data.parseId || this.data.taskId) || !this.data.scriptText) {
|
||
|
|
wx.showToast({ title: '暂无可润色文案', icon: 'none' })
|
||
|
|
return
|
||
|
|
}
|
||
|
|
if (this.data.polishing) return
|
||
|
|
|
||
|
|
this.setData({ polishing: true })
|
||
|
|
wx.showLoading({ title: '润色中...', mask: true })
|
||
|
|
polishScript(this.data.parseId || this.data.taskId, this.data.scriptText, 'optimize').then((res: any) => {
|
||
|
|
wx.hideLoading()
|
||
|
|
this.setData({ polishing: false })
|
||
|
|
if (!res.code) {
|
||
|
|
this.setData({ scriptText: res.data.scriptText })
|
||
|
|
wx.showToast({ title: '已润色', icon: 'success' })
|
||
|
|
return
|
||
|
|
}
|
||
|
|
wx.showModal({ title: '温馨提示', content: res.message || '润色失败,请稍后再试', showCancel: false })
|
||
|
|
}).catch((err) => {
|
||
|
|
console.log(err)
|
||
|
|
wx.hideLoading()
|
||
|
|
this.setData({ polishing: false })
|
||
|
|
wx.showModal({ title: '温馨提示', content: '润色失败,请稍后再试', showCancel: false })
|
||
|
|
})
|
||
|
|
},
|
||
|
|
handleGoCreate() {
|
||
|
|
const parseId = this.data.parseId || this.data.taskId
|
||
|
|
if (!parseId || !this.data.scriptText) {
|
||
|
|
wx.showToast({ title: '请先完成文案提取', icon: 'none' })
|
||
|
|
return
|
||
|
|
}
|
||
|
|
|
||
|
|
wx.showLoading({ title: '创建任务中', mask: true })
|
||
|
|
createTask(parseId, this.data.scriptText).then((res: any) => {
|
||
|
|
wx.hideLoading()
|
||
|
|
if (!res.code && res.data && res.data.taskId) {
|
||
|
|
this.setData({ taskId: res.data.taskId })
|
||
|
|
wx.navigateTo({
|
||
|
|
url: '/pages/aiPackage/preview/index?taskId=' + res.data.taskId,
|
||
|
|
})
|
||
|
|
return
|
||
|
|
}
|
||
|
|
wx.showModal({ title: '温馨提示', content: res.message || '创建任务失败,请稍后再试', showCancel: false })
|
||
|
|
}).catch(() => {
|
||
|
|
wx.hideLoading()
|
||
|
|
wx.showModal({ title: '温馨提示', content: '网络异常,请稍后再试', showCancel: false })
|
||
|
|
})
|
||
|
|
},
|
||
|
|
handleExperience() {
|
||
|
|
this.setData({
|
||
|
|
videoLink: 'https://v.douyin.com/example/',
|
||
|
|
parsed: true,
|
||
|
|
})
|
||
|
|
},
|
||
|
|
handleCheckinClose() {
|
||
|
|
wx.setStorageSync(checkinStorageKey, getTodayKey())
|
||
|
|
this.setData({ showCheckinPopup: false })
|
||
|
|
},
|
||
|
|
handleCheckinRule() {
|
||
|
|
wx.showToast({ title: '每日签到可领取金币', icon: 'none' })
|
||
|
|
},
|
||
|
|
},
|
||
|
|
})
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|