第一次提交,该项目为LionWebsite的移动端
This commit is contained in:
@@ -0,0 +1,402 @@
|
||||
import vuex from "vuex"
|
||||
import axios from "axios"
|
||||
import {ElMessage} from "element-plus"
|
||||
import qs from "qs"
|
||||
const BaseUrl = "http://100.42.234.138:8888/"
|
||||
const GalleryTaskHandlerUrl = BaseUrl + "GalleryTaskHandler/"
|
||||
const VideoTaskHandlerUrl = BaseUrl + "VideoTaskHandler/"
|
||||
|
||||
const actions = {
|
||||
updateGalleryTasks(context){
|
||||
const AuthCode = context.state.AuthCode
|
||||
axios.get(GalleryTaskHandlerUrl, {
|
||||
params:{
|
||||
param:"",
|
||||
type:"all",
|
||||
AuthCode
|
||||
}
|
||||
}).then((res) => {
|
||||
let temp = []
|
||||
context.commit("_emptyGalleryTasks")
|
||||
JSON.parse(res.data.data).forEach((task) => {
|
||||
temp.push(task)
|
||||
})
|
||||
context.commit("_updateGalleryTasks", temp)
|
||||
|
||||
})
|
||||
},
|
||||
updateVideoTasks(context){
|
||||
const AuthCode = context.state.AuthCode
|
||||
axios.get(VideoTaskHandlerUrl, {
|
||||
params:{
|
||||
param:"123",
|
||||
type:"all",
|
||||
AuthCode
|
||||
}
|
||||
}).then(res => {
|
||||
let temp = []
|
||||
context.commit("_emptyVideoTasks")
|
||||
JSON.parse(res.data.data).forEach(task => {
|
||||
temp.push(task)
|
||||
})
|
||||
context.commit("_updateVideoTasks", temp)
|
||||
})
|
||||
},
|
||||
postGalleryTask(context, data){
|
||||
axios.post(GalleryTaskHandlerUrl, qs.stringify({
|
||||
AuthCode:context.state.AuthCode,
|
||||
link:data.link,
|
||||
targetResolution:data.targetResolution
|
||||
})).then((res) => {
|
||||
if(res.data.result === "success") {
|
||||
ElMessage("提交成功")
|
||||
context.commit("_setPreDownloadGallery", {gallery:false, resolution:data.targetResolution})
|
||||
}
|
||||
else{
|
||||
if(res.data.data)
|
||||
ElMessage(res.data.data)
|
||||
else{
|
||||
ElMessage("提交失败")
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
postVideoTask(context, data){
|
||||
axios.post(VideoTaskHandlerUrl, qs.stringify({
|
||||
AuthCode:context.state.AuthCode,
|
||||
link: data.link,
|
||||
targetResolution: data.targetResolution
|
||||
})).then((res) => {
|
||||
if(res.data.result === "success") {
|
||||
ElMessage("提交成功")
|
||||
context.commit("_setPreDownloadVideo", {video:false, resolution:data.targetResolution})
|
||||
}
|
||||
else{
|
||||
if(res.data.data)
|
||||
ElMessage(res.data.data)
|
||||
else{
|
||||
ElMessage("提交失败")
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
queryGalleryTask(context, link){
|
||||
const AuthCode = context.state.AuthCode
|
||||
axios.get(GalleryTaskHandlerUrl, {
|
||||
params:{
|
||||
param:link,
|
||||
type:'link',
|
||||
AuthCode
|
||||
}
|
||||
}).then((res) => {
|
||||
if(res.data.result === 'success'){
|
||||
const gallery = JSON.parse(res.data.data)
|
||||
context.commit("_setPreDownloadGallery", {gallery})
|
||||
}
|
||||
else
|
||||
ElMessage("查询失败")
|
||||
})
|
||||
},
|
||||
queryVideoTask(context, link){
|
||||
const AuthCode = context.state.AuthCode
|
||||
axios.get(VideoTaskHandlerUrl, {
|
||||
params:{
|
||||
param: link,
|
||||
type:"link",
|
||||
AuthCode
|
||||
}
|
||||
}).then((res) => {
|
||||
if(res.data.result === 'success'){
|
||||
const video = JSON.parse(res.data.data)
|
||||
context.commit("_setPreDownloadVideo", {video})
|
||||
}
|
||||
else
|
||||
ElMessage("查询失败")
|
||||
})
|
||||
},
|
||||
validate(context, AuthCode){
|
||||
axios.post(BaseUrl + "validate?AuthCode=" + AuthCode).then((res)=>{
|
||||
if(res.data.result === 'success'){
|
||||
context.commit("_authed", AuthCode, context)
|
||||
context.dispatch("updateGalleryTasks").then()
|
||||
context.dispatch("updateVideoTasks").then()
|
||||
setInterval(() => {
|
||||
context.dispatch("update").then()
|
||||
}, 30000)
|
||||
}
|
||||
else{
|
||||
context.commit("_unAuthed")
|
||||
}
|
||||
})
|
||||
},
|
||||
update(context){
|
||||
if(context.state.showType === "video")
|
||||
context.dispatch("updateVideoTasks").then()
|
||||
else
|
||||
context.dispatch("updateGalleryTasks").then()
|
||||
},
|
||||
searchByLink(context, link){
|
||||
context.commit("_searchByLink", link)
|
||||
},
|
||||
searchByKeyword(context, keyword){
|
||||
context.commit("_searchByKeyword", keyword)
|
||||
},
|
||||
deleteGallery(context, gid){
|
||||
axios.delete(GalleryTaskHandlerUrl, {
|
||||
params:{
|
||||
AuthCode:state.AuthCode,
|
||||
gid
|
||||
}}).then((res) => {
|
||||
if(res.data.result === "success"){
|
||||
ElMessage("删除成功")
|
||||
context.commit("_deleteGallery", gid)
|
||||
}
|
||||
else{
|
||||
ElMessage(res.data.data)
|
||||
}
|
||||
})
|
||||
},
|
||||
deleteVideo(context, id){
|
||||
axios.delete(VideoTaskHandlerUrl, {
|
||||
params:{
|
||||
AuthCode:state.AuthCode,
|
||||
id
|
||||
}
|
||||
}).then((res) => {
|
||||
if(res.data.result === "success"){
|
||||
ElMessage("删除成功")
|
||||
context.commit("_deleteVideo", id)
|
||||
}
|
||||
else{
|
||||
ElMessage(res.data.data)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
const mutations = {
|
||||
_emptyGalleryTasks(state){
|
||||
state.totalGalleryTask.splice(0)
|
||||
},
|
||||
_emptyVideoTasks(state){
|
||||
state.totalVideoTask.splice(0)
|
||||
},
|
||||
_updateGalleryTasks(state, tasks){
|
||||
const download_url = GalleryTaskHandlerUrl + "file?link="
|
||||
tasks.forEach((task) => {
|
||||
if(task.status === "已提交"){
|
||||
task.progress = "已提交"
|
||||
}
|
||||
else if(task.status === "下载中"){
|
||||
task.progress = (Math.round((task.proceeding / task.pages)*100)).toString() + "%"
|
||||
}
|
||||
else if(task.status === "下载完成"){
|
||||
task.progress = "下载完成"
|
||||
task.download = download_url + task.link + "&AuthCode=" + state.AuthCode
|
||||
}
|
||||
state.totalGalleryTask.push(task)
|
||||
})
|
||||
if(state.isAuth && !state.loadComplete){
|
||||
state.loadComplete = true
|
||||
ElMessage("加载完成")
|
||||
}
|
||||
},
|
||||
_updateVideoTasks(state, tasks){
|
||||
const downloadUrl = VideoTaskHandlerUrl + "file?link="
|
||||
tasks.forEach((task) => {
|
||||
task.progress = task.status
|
||||
if(task.status === "下载完成"){
|
||||
let tempLink
|
||||
if(task.link.includes("xvideos.com"))
|
||||
tempLink = task.link.replace("xvideos", "xiaomi")
|
||||
else if(task.link.includes("cn.pornhub"))
|
||||
tempLink = task.link.replace("cn.pornhub", "pixiv")
|
||||
else
|
||||
tempLink = task.link.replace("pornhub", "pixiv")
|
||||
task.download = downloadUrl + tempLink + "&AuthCode=" + state.AuthCode
|
||||
}
|
||||
state.totalVideoTask.push(task)
|
||||
})
|
||||
},
|
||||
_changePage(state, targetPage){
|
||||
state.page = targetPage
|
||||
},
|
||||
_authed(state, AuthCode){
|
||||
state.AuthCode = AuthCode
|
||||
state.isAuth = true
|
||||
ElMessage("验证成功,加载中")
|
||||
},
|
||||
_unAuthed(state){
|
||||
state.isAuth = false
|
||||
state.AuthCode = ""
|
||||
ElMessage("授权码错误")
|
||||
localStorage.removeItem("auth")
|
||||
},
|
||||
_searchByLink(state, link){
|
||||
let tasks
|
||||
if(state.showType === "gallery") {
|
||||
tasks = state.totalGalleryTask
|
||||
}
|
||||
else
|
||||
tasks = state.totalVideoTask
|
||||
let i = 0
|
||||
let found = false
|
||||
for (i = 0; i < tasks.length; i++) {
|
||||
if (tasks[i].link === link) {
|
||||
state.page = Math.floor(i / state.length) + 1
|
||||
found = true
|
||||
break
|
||||
}
|
||||
}
|
||||
if(!found){
|
||||
ElMessage("未找到此任务")
|
||||
}
|
||||
else{
|
||||
ElMessage("已跳转到该任务所在页数")
|
||||
}
|
||||
},
|
||||
_searchByKeyword(state, keyword){
|
||||
state.searchTask.splice(0)
|
||||
state.page = 1
|
||||
let tasks
|
||||
if(state.showType === "video")
|
||||
tasks = state.totalVideoTask
|
||||
else
|
||||
tasks = state.totalGalleryTask
|
||||
tasks.forEach((task) => {
|
||||
if(task.name.includes(keyword))
|
||||
state.searchTask.push(task)
|
||||
})
|
||||
if(state.searchTask.length === 0){
|
||||
ElMessage("未找到该关键字的任务")
|
||||
}
|
||||
},
|
||||
_deleteGallery(state, gid){
|
||||
state.totalGalleryTask.forEach((item, index, arr) => {
|
||||
if(item.gid === gid){
|
||||
arr.splice(index, 1)
|
||||
}
|
||||
})
|
||||
},
|
||||
_deleteVideo(state, id){
|
||||
state.totalVideoTask.forEach((item, index, arr) => {
|
||||
if(item.id === id)
|
||||
arr.splice(index, 1)
|
||||
})
|
||||
},
|
||||
_setPreDownloadGallery(state,data){
|
||||
if(data.gallery === false) {
|
||||
state.preDownloadGallery.resolution = data.resolution
|
||||
state.preDownloadGallery.fileSize = "等待下载完成后再查看"
|
||||
state.totalGalleryTask.push(state.preDownloadGallery)
|
||||
}
|
||||
state.preDownloadGallery = data.gallery
|
||||
},
|
||||
_setPreDownloadVideo(state,data){
|
||||
if(data.video === false) {
|
||||
state.preDownloadVideo.resolution = data.resolution
|
||||
state.preDownloadVideo.fileSize = "下载完成后再查看"
|
||||
state.preDownloadVideo.duration = "下载完成后再查看"
|
||||
state.totalVideoTask.push(state.preDownloadVideo)
|
||||
}
|
||||
state.preDownloadVideo = data.video
|
||||
},
|
||||
_setShowType(state, showType){
|
||||
state.showType = showType
|
||||
},
|
||||
_openHistoryPanel(state){
|
||||
state.isShowHistory = true
|
||||
},
|
||||
_closeHistoryPanel(state){
|
||||
state.isShowHistory = false
|
||||
}
|
||||
}
|
||||
|
||||
const state = {
|
||||
totalGalleryTask:[], //存放本子数据的数组
|
||||
preDownloadGallery:false, //准备下载的本子
|
||||
|
||||
totalVideoTask:[], //存放视频数据的数组
|
||||
preDownloadVideo:false, //准备下载的视频
|
||||
|
||||
page:1, //当前页数
|
||||
length:8, //每页能有多少个链接
|
||||
|
||||
isAuth:false, //是否授权
|
||||
AuthCode:'', //授权码
|
||||
loadComplete:false, //是否加载完成
|
||||
|
||||
isInclude:false, //是否搜索到任务
|
||||
searchTask:[], //搜索到的任务
|
||||
isShowHistory:false, //是否打开面板
|
||||
showType:"gallery"
|
||||
}
|
||||
|
||||
const getters = {
|
||||
galleryTasks(state){
|
||||
if(state.searchTask.length !== 0)
|
||||
return state.searchTask.slice((state.page-1)*state.length, state.page*state.length)
|
||||
if(state.totalGalleryTask.length !== 0)
|
||||
return state.totalGalleryTask.slice((state.page-1)*state.length, state.page*state.length)
|
||||
return null
|
||||
},
|
||||
videoTasks(state){
|
||||
if(state.searchTask.length !== 0)
|
||||
return state.searchTask.slice((state.page-1)*state.length, state.page*state.length)
|
||||
if(state.totalVideoTask.length !== 0)
|
||||
return state.totalVideoTask.slice((state.page-1)*state.length, state.page*state.length)
|
||||
return null
|
||||
},
|
||||
min(){
|
||||
return 1
|
||||
},
|
||||
max(state){
|
||||
let max = 0
|
||||
let tasks
|
||||
if(state.searchTask.length !== 0){
|
||||
tasks = state.searchTask
|
||||
}
|
||||
else if(state.showHistory === "gallery")
|
||||
if(state.totalGalleryTask.length !== 0)
|
||||
tasks = state.totalGalleryTask
|
||||
else if(state.showHistory === "video")
|
||||
if(state.totalVideoTask.length)
|
||||
tasks = state.totalVideoTask
|
||||
if(!tasks)
|
||||
return 1
|
||||
max = Math.floor(tasks.length/state.length)
|
||||
if(tasks.length % state.length !== 0){
|
||||
max += 1
|
||||
}
|
||||
return max
|
||||
},
|
||||
isAuth(state){
|
||||
return state.isAuth
|
||||
},
|
||||
page(state){
|
||||
return state.page
|
||||
},
|
||||
loadComplete(state){
|
||||
return state.loadComplete
|
||||
},
|
||||
preDownloadGallery(state){
|
||||
return state.preDownloadGallery
|
||||
},
|
||||
preDownloadVideo(state){
|
||||
return state.preDownloadVideo
|
||||
},
|
||||
isShowHistory(state){
|
||||
return state.isShowHistory
|
||||
},
|
||||
showType(state){
|
||||
return state.showType
|
||||
}
|
||||
}
|
||||
|
||||
export default new vuex.Store({
|
||||
actions,
|
||||
mutations,
|
||||
state,
|
||||
getters
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user