add 种子制作
This commit is contained in:
parent
539131dcec
commit
761c6eabe8
BIN
db/database.db
BIN
db/database.db
Binary file not shown.
BIN
tmp/imgs/1.jpg
Normal file
BIN
tmp/imgs/1.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 184 KiB |
BIN
tmp/imgs/2.jpg
Normal file
BIN
tmp/imgs/2.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 138 KiB |
BIN
tmp/imgs/3.jpg
Normal file
BIN
tmp/imgs/3.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 189 KiB |
Binary file not shown.
@ -4,7 +4,8 @@ const { mkdirRecursions } = require('../markdir.js');
|
||||
const schedule = require('node-schedule');
|
||||
const { setDownState, getDownList } = require('../sql/download.js');
|
||||
const { getVideoInfo } = require('../sql/video.js');
|
||||
const fs = require("fs")
|
||||
const fs = require("fs");
|
||||
const { sendSeed } = require('../SendSeed/index.js');
|
||||
|
||||
// 小于10添加0
|
||||
function addZeor(num){
|
||||
@ -36,7 +37,9 @@ async function reName(dinfo){
|
||||
}
|
||||
// 判断时长 0 为下载 1 下载完成 2 做种 3 没有下载完成或没有会员
|
||||
if(Video.Duration < 4 * 60){
|
||||
return 3
|
||||
return {
|
||||
state: 3
|
||||
}
|
||||
}
|
||||
let fbl = 0
|
||||
if(Video.Height > 3000){
|
||||
@ -52,13 +55,33 @@ async function reName(dinfo){
|
||||
}else {
|
||||
fbl = 480
|
||||
}
|
||||
let rname = `[${vinfo.name}].${vinfo.rename}.${vinfo.year}.S${addZeor(vinfo.season)}E${addZeor(dinfo.title)}.WEB-DL.${fbl}p.${Video.Format}.${Audio.Format}.mp4`
|
||||
let rname = `[${vinfo.name}].${vinfo.rename}.${vinfo.year}.S${addZeor(vinfo.season)}E${addZeor(dinfo.title)}.WEB-DL.${fbl}p.${Video.Format}.${Audio.Format}@ZmWeb.mp4`
|
||||
let state = fs.renameSync(dinfo.save + "/" + dinfo.title + ".mp4",dinfo.save + "/" + rname)
|
||||
|
||||
let newPath = ""
|
||||
let tem = dinfo.save.split("/")
|
||||
tem.pop()
|
||||
let seedName = `[${vinfo.name}].${vinfo.rename}.${vinfo.year}.S${addZeor(vinfo.season)}.WEB-DL.${fbl}p.${Video.Format}.${Audio.Format}@ZmWeb`
|
||||
tem.push(seedName)
|
||||
newPath = tem.join("/")
|
||||
return {
|
||||
state: 1,
|
||||
info:{
|
||||
vid: dinfo.vid,
|
||||
oldPath: dinfo.save,
|
||||
newPath: newPath,
|
||||
seedName,
|
||||
title: `${vinfo.rename} ${vinfo.year} S${addZeor(vinfo.season)}Epxxx WEB-DL ${fbl}p ${Video.Format} ${Audio.Format}@ZmWeb`,
|
||||
Duration: Video.Duration,
|
||||
rname
|
||||
}
|
||||
}
|
||||
}else{
|
||||
console.log("未找到当前剧集信息")
|
||||
return{
|
||||
state: 0
|
||||
}
|
||||
}
|
||||
return 1
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -80,9 +103,11 @@ async function CheckDown(){
|
||||
if(exist){
|
||||
// 设置状态
|
||||
let s = await reName(dinfo)
|
||||
await setDownState(dinfo.id,1)
|
||||
await setDownState(dinfo.id,s.state)
|
||||
state = false
|
||||
|
||||
if(s.info){
|
||||
sendSeed(s.info)
|
||||
}
|
||||
}else{
|
||||
// 重新下载
|
||||
console.log("下载失败重新下载")
|
||||
|
35
util/SendSeed/index.js
Normal file
35
util/SendSeed/index.js
Normal file
@ -0,0 +1,35 @@
|
||||
const fs = require("fs")
|
||||
const { getMediaState } = require("../sql/download.js");
|
||||
const path = require("path");
|
||||
const { cwd } = require("process");
|
||||
const { createTorrent, getVideoSpecifyTimeImage } = require("../utils.js");
|
||||
|
||||
async function updateSeed(){
|
||||
|
||||
}
|
||||
|
||||
async function sendSeed(info){
|
||||
console.log(info)
|
||||
let state = await getMediaState(info.vid)
|
||||
console.log(state)
|
||||
if(state){
|
||||
// 重命名文件夹
|
||||
fs.renameSync(info.oldPath, info.newPath);
|
||||
// 创建种子
|
||||
await createTorrent(info.newPath,path.join(cwd(),"/tmp/torrent/" + info.seedName + ".torrent"))
|
||||
// 获取图片
|
||||
for(let i = 1; i < 4; i++){
|
||||
let time = info.Duration
|
||||
time = Math.floor(time / 4)
|
||||
await getVideoSpecifyTimeImage(info.newPath + "/" + info.rname,time * i,path.join(cwd(),"/tmp/imgs/" + i + ".jpg"))
|
||||
}
|
||||
await updateSeed(info.vid,)
|
||||
}else{
|
||||
console.log("未下载完成")
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
sendSeed
|
||||
}
|
@ -35,8 +35,16 @@ async function addVideoInfo(cover){
|
||||
|
||||
}
|
||||
|
||||
// 获取当前剧集是否下载完成
|
||||
async function getMediaState(vid){
|
||||
let sql = `select * from download where vid=? and state!=1`
|
||||
let list = await getAll(sql,vid)
|
||||
return !list.length
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
addDownList,
|
||||
getDownList,
|
||||
setDownState
|
||||
setDownState,
|
||||
getMediaState
|
||||
}
|
@ -8,8 +8,8 @@ async function addSub(info){
|
||||
if(list.length != 0){
|
||||
return "订阅已存在"
|
||||
}
|
||||
let sql = `insert into VideoInfo(name,rename,skip,desc,url,subtitle,img,year,time,subTime,enable,season,sid,count) values(?,?,?,?,?,?,?,?,?,${new Date().getTime()},1,?,?,?)`
|
||||
await run(sql,info.name,info.rename,info.skip,info.desc,info.url,info.subtitle,info.img,info.year,info.time,info.season,info.sid,info.count)
|
||||
let sql = `insert into VideoInfo(name,rename,skip,desc,url,subtitle,img,year,time,subTime,enable,season,sid,count,imdb) values(?,?,?,?,?,?,?,?,?,${new Date().getTime()},1,?,?,?,?)`
|
||||
await run(sql,info.name,info.rename,info.skip,info.desc,info.url,info.subtitle,info.img,info.year,info.time,info.season,info.sid,info.count,info.imdb)
|
||||
}
|
||||
|
||||
// 获取所有订阅 (不包括已完成)
|
||||
|
@ -174,15 +174,15 @@ function formatSeconds(value) {
|
||||
minuteTime = parseInt(minuteTime % 60);
|
||||
}
|
||||
}
|
||||
var result = "" + secondTime > 10 ? secondTime : '0' + secondTime;
|
||||
var result = "" + secondTime >= 10 ? secondTime : '0' + secondTime;
|
||||
|
||||
if (minuteTime > 0) {
|
||||
result = "" + minuteTime > 10 ? minuteTime : '0' + minuteTime + ":" + result;
|
||||
result = "" + (minuteTime >= 10 ? minuteTime : '0' + minuteTime) + ":" + result;
|
||||
} else {
|
||||
result = "" + "00" + ":" + result;
|
||||
}
|
||||
if (hourTime > 0) {
|
||||
result = "" + hourTime > 10 ? hourTime : '0' + hourTime + ":" + result;
|
||||
result = "" + (hourTime >= 10 ? hourTime : '0' + hourTime) + ":" + result;
|
||||
} else {
|
||||
result = "" + "00" + ":" + result;
|
||||
}
|
||||
|
@ -24,8 +24,8 @@ export async function getImdbName(url) {
|
||||
}
|
||||
})
|
||||
}
|
||||
export async function addSubscribe({name, rename, desc, year, season, ep, url, img, subtitle, time,skip,sid,count}) {
|
||||
return await base.post("/videoInfo/addSubscribe", {name, rename, desc, year, season, ep, url, img, subtitle, time,skip,sid,count})
|
||||
export async function addSubscribe({name, rename, desc, year, season, ep, url, img, subtitle, time,skip,sid,count,imdb}) {
|
||||
return await base.post("/videoInfo/addSubscribe", {name, rename, desc, year, season, ep, url, img, subtitle, time,skip,sid,count,imdb})
|
||||
}
|
||||
|
||||
export async function getSubscribe(){
|
||||
|
@ -99,7 +99,7 @@ onBeforeRouteUpdate(next => {
|
||||
|
||||
let vid = "";
|
||||
const dialogFormVisible = ref(false)
|
||||
|
||||
let imdb = "";
|
||||
|
||||
async function getInfo(id, i) {
|
||||
const loadingInstance = ElLoading.service({fullscreen: true})
|
||||
@ -108,6 +108,7 @@ async function getInfo(id, i) {
|
||||
let res = await getVideoInfo(id)
|
||||
info.value = res.data.format
|
||||
year.value = res.data.year
|
||||
imdb = res.data.imdb_link || ""
|
||||
console.info(res.data.trans_title.length)
|
||||
if (res.data.trans_title.length === 0) {
|
||||
subtitle.value = res.data.this_title.join(" / ")
|
||||
@ -147,7 +148,8 @@ async function addsubscribe() {
|
||||
time: dayjs(time.value).format("HH:mm:ss"),
|
||||
skip: season.value,
|
||||
sid: vid,
|
||||
count: count.value
|
||||
count: count.value,
|
||||
imdb: imdb
|
||||
}
|
||||
for (let i in data) {
|
||||
if (!data[i]) {
|
||||
|
Loading…
Reference in New Issue
Block a user