Added final file size.
This commit is contained in:
parent
a30d671960
commit
44d2bd081c
5 changed files with 27 additions and 6 deletions
|
|
@ -185,6 +185,10 @@ class Download:
|
|||
if status is None:
|
||||
return
|
||||
|
||||
if isinstance(status, str):
|
||||
await self.notifier.updated(self.info)
|
||||
return
|
||||
|
||||
self.tmpfilename = status.get('tmpfilename')
|
||||
|
||||
if 'filename' in status:
|
||||
|
|
@ -196,7 +200,7 @@ class Download:
|
|||
self.info.filename = re.sub(
|
||||
r'\.webm$', '.jpg', self.info.filename)
|
||||
|
||||
self.info.status = status['status']
|
||||
self.info.status = status.get('status', self.info.status)
|
||||
self.info.msg = status.get('msg')
|
||||
|
||||
if 'downloaded_bytes' in status:
|
||||
|
|
@ -210,4 +214,7 @@ class Download:
|
|||
self.info.speed = status.get('speed')
|
||||
self.info.eta = status.get('eta')
|
||||
|
||||
if self.info.status == 'finished' and 'filename' in status and self.info.format != 'thumbnail':
|
||||
self.info.file_size = os.path.getsize(status.get('filename'))
|
||||
|
||||
await self.notifier.updated(self.info)
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@ class ItemDTO:
|
|||
is_live: bool = None
|
||||
datetime: str = field(default_factory=lambda: str(formatdate(time.time())))
|
||||
live_in: str = None
|
||||
file_size: int = None
|
||||
|
||||
# yt-dlp injected fields.
|
||||
tmpfilename: str = None
|
||||
|
|
|
|||
|
|
@ -107,7 +107,6 @@ class Main:
|
|||
)
|
||||
|
||||
async def connect(self, sid, _):
|
||||
self.logger.info(f'Config [{self.config.__dict__}].')
|
||||
data: dict = {
|
||||
**self.dqueue.get(),
|
||||
"config": self.config,
|
||||
|
|
|
|||
|
|
@ -85,7 +85,7 @@
|
|||
<div class="column is-12" v-if="showMessage(item)">
|
||||
<span class="has-text-danger">{{ item.msg }}</span>
|
||||
</div>
|
||||
<div class="column is-4 has-text-centered" v-if="!item.live_in">
|
||||
<div class="column has-text-centered" v-if="!item.live_in">
|
||||
<span class="icon-text">
|
||||
<span class="icon"
|
||||
:class="{ 'has-text-success': item.status === 'finished', 'has-text-danger': item.status !== 'finished' }">
|
||||
|
|
@ -95,18 +95,21 @@
|
|||
<span>{{ capitalize(item.status) }}</span>
|
||||
</span>
|
||||
</div>
|
||||
<div class="column is-4 has-text-centered">
|
||||
<div class="column has-text-centered">
|
||||
<span :date-datetime="item.datetime" :data-tooltip="moment(item.datetime).format('YYYY-M-DD H:mm Z')">
|
||||
{{ moment(item.datetime).fromNow() }}
|
||||
</span>
|
||||
</div>
|
||||
<div class="column is-4 has-text-centered" v-if="item.live_in && item.status != 'finished'">
|
||||
<div class="column has-text-centered" v-if="item.live_in && item.status != 'finished'">
|
||||
<span :date-datetime="item.datetime"
|
||||
:data-tooltip="'Will start at: ' + moment(item.live_in).format('YYYY-M-DD H:mm Z')">
|
||||
{{ moment(item.live_in).fromNow() }}
|
||||
</span>
|
||||
</div>
|
||||
<div class="column is-4 has-text-centered">
|
||||
<div class="column has-text-centered" v-if="item.file_size">
|
||||
{{ formatBytes(item.file_size) }}
|
||||
</div>
|
||||
<div class="column has-text-centered">
|
||||
<label class="checkbox is-block">
|
||||
<input class="completed-checkbox" type="checkbox" v-model="selectedElms" :id="'checkbox-' + item._id"
|
||||
:value="item._id">
|
||||
|
|
|
|||
|
|
@ -31,6 +31,17 @@ app.config.globalProperties.makeDownload = (config, item, base = 'download') =>
|
|||
|
||||
return config.app.url_host + config.app.url_prefix + baseDir + encodeURIComponent(item.filename);
|
||||
}
|
||||
app.config.globalProperties.formatBytes = (bytes, decimals = 2) => {
|
||||
if (bytes === 0) return '0 Bytes';
|
||||
|
||||
const k = 1024;
|
||||
const dm = decimals < 0 ? 0 : decimals;
|
||||
const sizes = ['Bytes', 'KB', 'MB'];
|
||||
|
||||
const i = Math.floor(Math.log(bytes) / Math.log(k));
|
||||
|
||||
return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];
|
||||
}
|
||||
|
||||
app.use(Toast, {
|
||||
transition: "Vue-Toastification__bounce",
|
||||
|
|
|
|||
Loading…
Reference in a new issue