diff --git a/pages/index.vue b/pages/index.vue
index 6107807..9a852fe 100644
--- a/pages/index.vue
+++ b/pages/index.vue
@@ -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).shortNumber }}
-
+
{{ p.quality }}p
{{ p.format }}
Dubs: {{ p.dub.map((t) => t.name).join(', ') }}
Subs: {{ p.sub.length !== 0 ? p.sub.map((t) => t.name).join(', ') : '-' }}
-
+
+
{{ (p.totaldownloaded / Math.pow(1024, 2)).toFixed(2) }} MB
{{ p.partsdownloaded }}/{{ p.partsleft }}
-
{{ p.downloadspeed }} MB/s
+
{{ p.downloadspeed }} MB/s
@@ -95,6 +96,7 @@ const playlist = ref<
partsleft: number
partsdownloaded: number
downloadspeed: number
+ totaldownloaded: number
quality: number
service: string
format: string
@@ -113,6 +115,7 @@ const getPlaylist = async () => {
partsleft: number
partsdownloaded: number
downloadspeed: number
+ totaldownloaded: number
quality: number
service: string
format: string
diff --git a/src/api/routes/service/service.controller.ts b/src/api/routes/service/service.controller.ts
index 859be56..297854e 100644
--- a/src/api/routes/service/service.controller.ts
+++ b/src/api/routes/service/service.controller.ts
@@ -124,7 +124,8 @@ export async function getPlaylistController(request: FastifyRequest, reply: Fast
...v.dataValues,
partsleft: found.partsToDownload,
partsdownloaded: found.downloadedParts,
- downloadspeed: found.downloadSpeed.toFixed(2)
+ downloadspeed: found.downloadSpeed.toFixed(2),
+ totaldownloaded: found.totalDownloaded
}
}
}
diff --git a/src/api/routes/service/service.service.ts b/src/api/routes/service/service.service.ts
index 812820e..728fcb8 100644
--- a/src/api/routes/service/service.service.ts
+++ b/src/api/routes/service/service.service.ts
@@ -118,6 +118,7 @@ var downloading: Array<{
downloadedParts: number
partsToDownload: number
downloadSpeed: number
+ totalDownloaded: number
}> = []
// Get Downloading Episodes
@@ -195,7 +196,8 @@ export async function downloadADNPlaylist(
id: downloadID,
downloadedParts: 0,
partsToDownload: 0,
- downloadSpeed: 0
+ downloadSpeed: 0,
+ totalDownloaded: 0
})
if (!season) {
@@ -318,7 +320,8 @@ export async function downloadCrunchyrollPlaylist(
id: downloadID,
downloadedParts: 0,
partsToDownload: 0,
- downloadSpeed: 0
+ downloadSpeed: 0,
+ totalDownloaded: 0
})
await updatePlaylistByID(downloadID, 'downloading')
@@ -685,7 +688,8 @@ async function downloadParts(parts: { filename: string; url: string }[], downloa
const path = await createFolder()
const dn = downloading.find((i) => i.id === downloadID)
- let totalDownloadedBytes = 0
+ let totalDownloadedBytes = 0;
+ let totalSizeBytes = 0;
let startTime = Date.now()
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)
let partDownloadedBytes = 0
+ let partSizeBytes = 0;
+
readableStream.on('data', (chunk) => {
partDownloadedBytes += chunk.length
totalDownloadedBytes += chunk.length
+ totalSizeBytes += chunk.length;
})
await finished(readableStream.pipe(stream))
@@ -710,10 +717,12 @@ async function downloadParts(parts: { filename: string; url: string }[], downloa
console.log(`Fragment ${index + 1} downloaded`)
if (dn) {
+ const tot = totalSizeBytes
dn.downloadedParts++
const endTime = Date.now()
const durationInSeconds = (endTime - startTime) / 1000
dn.downloadSpeed = totalDownloadedBytes / 1024 / 1024 / durationInSeconds
+ dn.totalDownloaded = tot;
}
success = true