added total downloaded calc
This commit is contained in:
parent
b0b219fbc9
commit
be78d588b1
@ -62,14 +62,15 @@
|
|||||||
{{ (p.media as ADNEpisode).show.title }} Season {{ (p.media as ADNEpisode).season ? (p.media as ADNEpisode).season : 1 }} Episode
|
{{ (p.media as ADNEpisode).show.title }} Season {{ (p.media as ADNEpisode).season ? (p.media as ADNEpisode).season : 1 }} Episode
|
||||||
{{ (p.media as ADNEpisode).shortNumber }}
|
{{ (p.media as ADNEpisode).shortNumber }}
|
||||||
</div>
|
</div>
|
||||||
<div class="flex flex-row gap-2 h-full items-end">
|
<div class="relative flex flex-row gap-2 h-full items-end">
|
||||||
<div class="text-xs">{{ p.quality }}p</div>
|
<div class="text-xs">{{ p.quality }}p</div>
|
||||||
<div class="text-xs uppercase">{{ p.format }}</div>
|
<div class="text-xs uppercase">{{ p.format }}</div>
|
||||||
<div class="text-xs">Dubs: {{ p.dub.map((t) => t.name).join(', ') }}</div>
|
<div class="text-xs">Dubs: {{ p.dub.map((t) => t.name).join(', ') }}</div>
|
||||||
<div class="text-xs">Subs: {{ p.sub.length !== 0 ? p.sub.map((t) => t.name).join(', ') : '-' }}</div>
|
<div class="text-xs">Subs: {{ p.sub.length !== 0 ? p.sub.map((t) => t.name).join(', ') : '-' }}</div>
|
||||||
<div class="flex flex-col ml-auto gap-0.5">
|
<div class="absolute flex flex-col ml-auto gap-0.5 right-0 bottom-0">
|
||||||
|
<div v-if="p.totaldownloaded && p.status === 'downloading'" class="text-xs ml-auto">{{ (p.totaldownloaded / Math.pow(1024, 2)).toFixed(2) }} MB</div>
|
||||||
<div v-if="p.partsleft && p.status === 'downloading'" class="text-xs ml-auto">{{ p.partsdownloaded }}/{{ p.partsleft }}</div>
|
<div v-if="p.partsleft && p.status === 'downloading'" class="text-xs ml-auto">{{ p.partsdownloaded }}/{{ p.partsleft }}</div>
|
||||||
<div v-if="p.downloadspeed && p.status === 'downloading'" class="text-xs">{{ p.downloadspeed }} MB/s</div>
|
<div v-if="p.downloadspeed && p.status === 'downloading'" class="text-xs ml-auto">{{ p.downloadspeed }} MB/s</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -95,6 +96,7 @@ const playlist = ref<
|
|||||||
partsleft: number
|
partsleft: number
|
||||||
partsdownloaded: number
|
partsdownloaded: number
|
||||||
downloadspeed: number
|
downloadspeed: number
|
||||||
|
totaldownloaded: number
|
||||||
quality: number
|
quality: number
|
||||||
service: string
|
service: string
|
||||||
format: string
|
format: string
|
||||||
@ -113,6 +115,7 @@ const getPlaylist = async () => {
|
|||||||
partsleft: number
|
partsleft: number
|
||||||
partsdownloaded: number
|
partsdownloaded: number
|
||||||
downloadspeed: number
|
downloadspeed: number
|
||||||
|
totaldownloaded: number
|
||||||
quality: number
|
quality: number
|
||||||
service: string
|
service: string
|
||||||
format: string
|
format: string
|
||||||
|
@ -124,7 +124,8 @@ export async function getPlaylistController(request: FastifyRequest, reply: Fast
|
|||||||
...v.dataValues,
|
...v.dataValues,
|
||||||
partsleft: found.partsToDownload,
|
partsleft: found.partsToDownload,
|
||||||
partsdownloaded: found.downloadedParts,
|
partsdownloaded: found.downloadedParts,
|
||||||
downloadspeed: found.downloadSpeed.toFixed(2)
|
downloadspeed: found.downloadSpeed.toFixed(2),
|
||||||
|
totaldownloaded: found.totalDownloaded
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -118,6 +118,7 @@ var downloading: Array<{
|
|||||||
downloadedParts: number
|
downloadedParts: number
|
||||||
partsToDownload: number
|
partsToDownload: number
|
||||||
downloadSpeed: number
|
downloadSpeed: number
|
||||||
|
totalDownloaded: number
|
||||||
}> = []
|
}> = []
|
||||||
|
|
||||||
// Get Downloading Episodes
|
// Get Downloading Episodes
|
||||||
@ -195,7 +196,8 @@ export async function downloadADNPlaylist(
|
|||||||
id: downloadID,
|
id: downloadID,
|
||||||
downloadedParts: 0,
|
downloadedParts: 0,
|
||||||
partsToDownload: 0,
|
partsToDownload: 0,
|
||||||
downloadSpeed: 0
|
downloadSpeed: 0,
|
||||||
|
totalDownloaded: 0
|
||||||
})
|
})
|
||||||
|
|
||||||
if (!season) {
|
if (!season) {
|
||||||
@ -318,7 +320,8 @@ export async function downloadCrunchyrollPlaylist(
|
|||||||
id: downloadID,
|
id: downloadID,
|
||||||
downloadedParts: 0,
|
downloadedParts: 0,
|
||||||
partsToDownload: 0,
|
partsToDownload: 0,
|
||||||
downloadSpeed: 0
|
downloadSpeed: 0,
|
||||||
|
totalDownloaded: 0
|
||||||
})
|
})
|
||||||
|
|
||||||
await updatePlaylistByID(downloadID, 'downloading')
|
await updatePlaylistByID(downloadID, 'downloading')
|
||||||
@ -685,7 +688,8 @@ async function downloadParts(parts: { filename: string; url: string }[], downloa
|
|||||||
const path = await createFolder()
|
const path = await createFolder()
|
||||||
const dn = downloading.find((i) => i.id === downloadID)
|
const dn = downloading.find((i) => i.id === downloadID)
|
||||||
|
|
||||||
let totalDownloadedBytes = 0
|
let totalDownloadedBytes = 0;
|
||||||
|
let totalSizeBytes = 0;
|
||||||
let startTime = Date.now()
|
let startTime = Date.now()
|
||||||
|
|
||||||
for (const [index, part] of parts.entries()) {
|
for (const [index, part] of parts.entries()) {
|
||||||
@ -700,9 +704,12 @@ async function downloadParts(parts: { filename: string; url: string }[], downloa
|
|||||||
|
|
||||||
const readableStream = Readable.from(body as any)
|
const readableStream = Readable.from(body as any)
|
||||||
let partDownloadedBytes = 0
|
let partDownloadedBytes = 0
|
||||||
|
let partSizeBytes = 0;
|
||||||
|
|
||||||
readableStream.on('data', (chunk) => {
|
readableStream.on('data', (chunk) => {
|
||||||
partDownloadedBytes += chunk.length
|
partDownloadedBytes += chunk.length
|
||||||
totalDownloadedBytes += chunk.length
|
totalDownloadedBytes += chunk.length
|
||||||
|
totalSizeBytes += chunk.length;
|
||||||
})
|
})
|
||||||
|
|
||||||
await finished(readableStream.pipe(stream))
|
await finished(readableStream.pipe(stream))
|
||||||
@ -710,10 +717,12 @@ async function downloadParts(parts: { filename: string; url: string }[], downloa
|
|||||||
console.log(`Fragment ${index + 1} downloaded`)
|
console.log(`Fragment ${index + 1} downloaded`)
|
||||||
|
|
||||||
if (dn) {
|
if (dn) {
|
||||||
|
const tot = totalSizeBytes
|
||||||
dn.downloadedParts++
|
dn.downloadedParts++
|
||||||
const endTime = Date.now()
|
const endTime = Date.now()
|
||||||
const durationInSeconds = (endTime - startTime) / 1000
|
const durationInSeconds = (endTime - startTime) / 1000
|
||||||
dn.downloadSpeed = totalDownloadedBytes / 1024 / 1024 / durationInSeconds
|
dn.downloadSpeed = totalDownloadedBytes / 1024 / 1024 / durationInSeconds
|
||||||
|
dn.totalDownloaded = tot;
|
||||||
}
|
}
|
||||||
|
|
||||||
success = true
|
success = true
|
||||||
|
Reference in New Issue
Block a user