完成下载

This commit is contained in:
2023-06-14 22:02:50 +08:00
parent bfde74bb87
commit 3963fd8fad
11 changed files with 160 additions and 133 deletions

3
view/dist/assets/index-07bbb742.js vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
import{_ as E,r as u,a as i,o as p,c as f,b as t,w as s,d as v,e as g,F as q,f as B,E as D,g as N,t as U}from"./index-54b3342f.js";const F={class:"url"},L={style:{display:"flex",width:"100%"}},R={style:{display:"flex"}},T={style:{width:"100%",height:"100%","overflow-y":"auto"}},j={__name:"index",setup(z){const d=u(!1),n=u({name:"https://v.qq.com/x/cover/mzc002007vp35qj.html",start:1}),c=u([]),r=u();function x(){let l=D.service();window.getlist(n.value.name).then(e=>{console.log(e),c.value=e,l.close()})}function h(){r.value.clearSelection();for(let l=n.value.start-1;l<c.value.length;l++)console.log(l),r.value.toggleRowSelection(c.value[l],void 0)}const y=u([]);function b(l,e,o){console.log(o),o?l():y.value.unshift(e)}function V(l){return new Promise(e=>{const o=b.bind(this,e);window.dowload(l,o)})}async function k(){d.value=!0;let l=r.value.getSelectionRows();for(let e of l)await V(e);d.value=!1,N({showClose:!0,message:"下载完成",type:"success",duration:0})}return(l,e)=>{const o=i("el-input"),_=i("el-button"),w=i("el-form-item"),m=i("el-table-column"),C=i("el-table"),S=i("el-dialog");return p(),f("div",F,[t(w,{label:"视频地址"},{default:s(()=>[v("div",L,[t(o,{style:{width:"100%"},modelValue:n.value.name,"onUpdate:modelValue":e[0]||(e[0]=a=>n.value.name=a)},null,8,["modelValue"]),t(_,{style:{"flex-shrink":"0",margin:"0 10px"},onClick:x,type:"primary"},{default:s(()=>[g("获取")]),_:1})])]),_:1}),t(w,{label:"第几集开始"},{default:s(()=>[v("div",R,[t(o,{modelValue:n.value.start,"onUpdate:modelValue":e[1]||(e[1]=a=>n.value.start=a)},null,8,["modelValue"]),t(_,{style:{"flex-shrink":"0",margin:"0 10px"},onClick:h,type:"primary"},{default:s(()=>[g("设置")]),_:1}),t(_,{style:{"flex-shrink":"0",margin:"0 10px"},onClick:k,type:"primary"},{default:s(()=>[g("下载")]),_:1})])]),_:1}),t(C,{ref_key:"table",ref:r,data:c.value,style:{width:"100%"}},{default:s(()=>[t(m,{type:"selection",width:"55"}),t(m,{label:"title",prop:"title"}),t(m,{label:"url",prop:"url"})]),_:1},8,["data"]),t(S,{fullscreen:!0,"close-on-click-modal":!1,"close-on-press-escape":!1,modelValue:d.value,"onUpdate:modelValue":e[2]||(e[2]=a=>d.value=a),"show-close":!1,title:"Tips",width:"30%"},{default:s(()=>[v("div",T,[(p(!0),f(q,null,B(y.value,a=>(p(),f("div",null,U(a),1))),256))])]),_:1},8,["modelValue"])])}}},M=E(j,[["__scopeId","data-v-550c913f"],["__file","D:/xiangmu/ptSend/view/src/page/index.vue"]]);export{M as default};

54
view/dist/assets/index-ed416134.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -5,8 +5,8 @@
<link rel="icon" type="image/svg+xml" href="./vite.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Vite + Vue</title>
<script type="module" crossorigin src="./assets/index-54b3342f.js"></script>
<link rel="stylesheet" href="./assets/index-711c0355.css">
<script type="module" crossorigin src="./assets/index-ed416134.js"></script>
<link rel="stylesheet" href="./assets/index-6ef103ac.css">
</head>
<body>
<div id="app"></div>

View File

@@ -28,24 +28,24 @@
</el-table-column>
<el-table-column label="url" prop="url" />
</el-table>
<el-dialog :fullscreen="true" v-model="dialogVisible" title="Tips" width="30%" >
<el-dialog :fullscreen="true" v-model="dialogVisible" title="Tips" width="30%">
<div style="width: 100%;height: 100%;overflow-y: auto;">
<div v-for="i in msg">{{ i }}</div>
</div>
</el-dialog>
</div>
</template>
<script setup>
import { ref } from 'vue';
import { ElLoading,ElMessage } from 'element-plus'
import { ElLoading, ElMessage } from 'element-plus'
import axios from 'axios';
const dialogVisible = ref(false)
const form = ref({
name: "https://v.qq.com/x/cover/mzc002007vp35qj.html",
start: 1,
save:"D:/dl"
save: localStorage.getItem("save")
})
const tableData = ref([])
const table = ref()
@@ -56,9 +56,9 @@ function getlist() {
// tableData.value = res
// load.close()
// })
axios.get("http://127.0.0.1:3050/getQqList",{
params: {url:form.value.name}
}).then((r)=>{
axios.get("http://127.0.0.1:3050/getQqList", {
params: { url: form.value.name }
}).then((r) => {
tableData.value = r.data
})
}
@@ -72,11 +72,33 @@ function setlist() {
const msg = ref([])
async function dow() {
dialogVisible.value = true
let list = table.value.getSelectionRows()
for(let i of list){
await axios.get("http://127.0.0.1:3050/startDown",{
params:i
if (list.length == 0) {
ElMessage({
showClose: true,
message: '请选择要下载的剧集',
type: 'error',
})
return
}
if (!form.value.save) {
ElMessage({
showClose: true,
message: '请填写下载位置',
type: 'error',
})
return
}
dialogVisible.value = true
localStorage.setItem("save",form.value.save)
for (let i of list) {
await axios.get("http://127.0.0.1:3050/startDown", {
params: {
...i,
save: form.value.save + "/" + i.title.split(" ")[0]
}
})
}
// dialogVisible.value = false
@@ -84,15 +106,17 @@ async function dow() {
showClose: true,
message: '添加完成',
type: 'success',
duration:0
})
}
const source = new EventSource(`http://127.0.0.1:3050/msg`);
source.onmessage = event => {
// 挂到载体上面
msg.value.unshift(event.data)
// 挂到载体上面
if (msg.value.length > 200) {
msg.value.splice(200)
}
msg.value.unshift(event.data)
}
function showmsg(){
function showmsg() {
dialogVisible.value = true
}
</script>