Make task run time in log more human readable.
This commit is contained in:
parent
4730583510
commit
9b4d86041a
3 changed files with 37 additions and 18 deletions
1
.vscode/settings.json
vendored
1
.vscode/settings.json
vendored
|
|
@ -22,6 +22,7 @@
|
||||||
"consoletitle",
|
"consoletitle",
|
||||||
"cookiesfrombrowser",
|
"cookiesfrombrowser",
|
||||||
"copyts",
|
"copyts",
|
||||||
|
"cronsim",
|
||||||
"daterange",
|
"daterange",
|
||||||
"dotenv",
|
"dotenv",
|
||||||
"finaldir",
|
"finaldir",
|
||||||
|
|
|
||||||
|
|
@ -156,7 +156,15 @@ class Tasks(metaclass=Singleton):
|
||||||
self._scheduler.add(timer=task.timer, func=self._runner, args=(task,), id=task.id)
|
self._scheduler.add(timer=task.timer, func=self._runner, args=(task,), id=task.id)
|
||||||
self._tasks.append(task)
|
self._tasks.append(task)
|
||||||
|
|
||||||
LOG.info(f"Task '{i}: {task.name}' queued to be executed every '{task.timer}'.")
|
try:
|
||||||
|
from cronsim import CronSim
|
||||||
|
|
||||||
|
cs = CronSim(task.timer, datetime.now(UTC))
|
||||||
|
schedule_time = cs.explain()
|
||||||
|
except Exception:
|
||||||
|
schedule_time = task.timer
|
||||||
|
|
||||||
|
LOG.info(f"Task '{i}: {task.name}' queued to be executed '{schedule_time}'.")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
LOG.exception(e)
|
LOG.exception(e)
|
||||||
LOG.error(f"Failed to queue task '{i}: {task.name}'. '{e!s}'.")
|
LOG.error(f"Failed to queue task '{i}: {task.name}'. '{e!s}'.")
|
||||||
|
|
|
||||||
|
|
@ -28,13 +28,13 @@
|
||||||
|
|
||||||
<div class="column is-12" v-if="showImport || !reference">
|
<div class="column is-12" v-if="showImport || !reference">
|
||||||
<label class="label is-inline" for="import_string">
|
<label class="label is-inline" for="import_string">
|
||||||
|
<span class="icon"><i class="fa-solid fa-file-import" /></span>
|
||||||
Import string
|
Import string
|
||||||
</label>
|
</label>
|
||||||
|
|
||||||
<div class="field has-addons">
|
<div class="field has-addons">
|
||||||
<div class="control has-icons-left is-expanded">
|
<div class="control is-expanded">
|
||||||
<input type="text" class="input" id="import_string" v-model="import_string" autocomplete="off">
|
<input type="text" class="input" id="import_string" v-model="import_string" autocomplete="off">
|
||||||
<span class="icon is-small is-left"><i class="fa-solid fa-t" /></span>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="control">
|
<div class="control">
|
||||||
|
|
@ -52,21 +52,27 @@
|
||||||
|
|
||||||
<div class="column is-6-tablet is-12-mobile">
|
<div class="column is-6-tablet is-12-mobile">
|
||||||
<div class="field">
|
<div class="field">
|
||||||
<label class="label is-inline" for="name" v-text="'Name'" />
|
<label class="label is-inline" for="name">
|
||||||
|
<span class="icon"><i class="fa-solid fa-user" /></span>
|
||||||
|
Name
|
||||||
|
</label>
|
||||||
<div class="control has-icons-left">
|
<div class="control has-icons-left">
|
||||||
<input type="text" class="input" id="name" v-model="form.name" :disabled="addInProgress">
|
<input type="text" class="input" id="name" v-model="form.name" :disabled="addInProgress">
|
||||||
<span class="icon is-small is-left"><i class="fa-solid fa-user" /></span>
|
<span class="icon is-small is-left"><i class="fa-solid fa-user" /></span>
|
||||||
</div>
|
</div>
|
||||||
<span class="help">
|
<span class="help">
|
||||||
<span class="icon"><i class="fa-solid fa-info" /></span>
|
<span class="icon"><i class="fa-solid fa-info" /></span>
|
||||||
<span>Task name is used to identify the task in the task list and in logs.</span>
|
<span>The name is used to identify this specific task.</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="column is-6-tablet is-12-mobile">
|
<div class="column is-6-tablet is-12-mobile">
|
||||||
<div class="field">
|
<div class="field">
|
||||||
<label class="label is-inline" for="url" v-text="'URL'" />
|
<label class="label is-inline" for="url">
|
||||||
|
<span class="icon"><i class="fa-solid fa-link" /></span>
|
||||||
|
URL
|
||||||
|
</label>
|
||||||
<div class="control has-icons-left">
|
<div class="control has-icons-left">
|
||||||
<input type="url" class="input" id="url" v-model="form.url" :disabled="addInProgress">
|
<input type="url" class="input" id="url" v-model="form.url" :disabled="addInProgress">
|
||||||
<span class="icon is-small is-left"><i class="fa-solid fa-link" /></span>
|
<span class="icon is-small is-left"><i class="fa-solid fa-link" /></span>
|
||||||
|
|
@ -80,8 +86,11 @@
|
||||||
|
|
||||||
<div class="column is-6-tablet is-12-mobile">
|
<div class="column is-6-tablet is-12-mobile">
|
||||||
<div class="field">
|
<div class="field">
|
||||||
<label class="label is-inline" for="preset">Preset</label>
|
<label class="label is-inline" for="preset">
|
||||||
<div class="control has-icons-left">
|
<span class="icon"><i class="fa-solid fa-sliders" /></span>
|
||||||
|
Preset
|
||||||
|
</label>
|
||||||
|
<div class="control">
|
||||||
<div class="select is-fullwidth">
|
<div class="select is-fullwidth">
|
||||||
<select id="preset" class="is-fullwidth" v-model="form.preset"
|
<select id="preset" class="is-fullwidth" v-model="form.preset"
|
||||||
:disabled="addInProgress || hasFormatInConfig"
|
:disabled="addInProgress || hasFormatInConfig"
|
||||||
|
|
@ -98,7 +107,6 @@
|
||||||
</optgroup>
|
</optgroup>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<span class="icon is-small is-left"><i class="fa-solid fa-tv" /></span>
|
|
||||||
</div>
|
</div>
|
||||||
<span class="help">
|
<span class="help">
|
||||||
<span class="icon"><i class="fa-solid fa-info" /></span>
|
<span class="icon"><i class="fa-solid fa-info" /></span>
|
||||||
|
|
@ -113,12 +121,12 @@
|
||||||
<div class="column is-6-tablet is-12-mobile">
|
<div class="column is-6-tablet is-12-mobile">
|
||||||
<div class="field">
|
<div class="field">
|
||||||
<label class="label is-inline" for="timer">
|
<label class="label is-inline" for="timer">
|
||||||
|
<span class="icon"><i class="fa-solid fa-clock" /></span>
|
||||||
CRON expression timer.
|
CRON expression timer.
|
||||||
</label>
|
</label>
|
||||||
<div class="control has-icons-left">
|
<div class="control">
|
||||||
<input type="text" class="input" id="timer" placeholder="leave empty to run once every hour."
|
<input type="text" class="input" id="timer" placeholder="leave empty to run once every hour."
|
||||||
v-model="form.timer" :disabled="addInProgress">
|
v-model="form.timer" :disabled="addInProgress">
|
||||||
<span class="icon is-small is-left"><i class="fa-solid fa-clock" /></span>
|
|
||||||
</div>
|
</div>
|
||||||
<span class="help">
|
<span class="help">
|
||||||
<span class="icon"><i class="fa-solid fa-info" /></span>
|
<span class="icon"><i class="fa-solid fa-info" /></span>
|
||||||
|
|
@ -135,12 +143,12 @@
|
||||||
<div class="column is-6-tablet is-12-mobile">
|
<div class="column is-6-tablet is-12-mobile">
|
||||||
<div class="field">
|
<div class="field">
|
||||||
<label class="label is-inline" for="folder">
|
<label class="label is-inline" for="folder">
|
||||||
Download path
|
<span class="icon"><i class="fa-solid fa-folder" /></span>
|
||||||
|
Save in
|
||||||
</label>
|
</label>
|
||||||
<div class="control has-icons-left">
|
<div class="control">
|
||||||
<input type="text" class="input" id="folder" placeholder="Leave empty to use default download path"
|
<input type="text" class="input" id="folder" placeholder="Leave empty to use default download path"
|
||||||
v-model="form.folder" :disabled="addInProgress" list="folders">
|
v-model="form.folder" :disabled="addInProgress" list="folders">
|
||||||
<span class="icon is-small is-left"><i class="fa-solid fa-folder" /></span>
|
|
||||||
</div>
|
</div>
|
||||||
<span class="help">
|
<span class="help">
|
||||||
<span class="icon"><i class="fa-solid fa-info" /></span>
|
<span class="icon"><i class="fa-solid fa-info" /></span>
|
||||||
|
|
@ -153,12 +161,12 @@
|
||||||
<div class="column is-6-tablet is-12-mobile">
|
<div class="column is-6-tablet is-12-mobile">
|
||||||
<div class="field">
|
<div class="field">
|
||||||
<label class="label is-inline" for="output_template">
|
<label class="label is-inline" for="output_template">
|
||||||
|
<span class="icon"><i class="fa-solid fa-file" /></span>
|
||||||
Output template
|
Output template
|
||||||
</label>
|
</label>
|
||||||
<div class="control has-icons-left">
|
<div class="control">
|
||||||
<input type="text" class="input" id="output_template" :disabled="addInProgress"
|
<input type="text" class="input" id="output_template" :disabled="addInProgress"
|
||||||
placeholder="Leave empty to use default template." v-model="form.template">
|
placeholder="Leave empty to use default template." v-model="form.template">
|
||||||
<span class="icon is-small is-left"><i class="fa-solid fa-file" /></span>
|
|
||||||
</div>
|
</div>
|
||||||
<span class="help">
|
<span class="help">
|
||||||
<span class="icon"><i class="fa-solid fa-info" /></span>
|
<span class="icon"><i class="fa-solid fa-info" /></span>
|
||||||
|
|
@ -174,11 +182,13 @@
|
||||||
<div class="column is-12">
|
<div class="column is-12">
|
||||||
<div class="field">
|
<div class="field">
|
||||||
<label class="label is-inline" for="cli_options">
|
<label class="label is-inline" for="cli_options">
|
||||||
|
<span class="icon"><i class="fa-solid fa-terminal" /></span>
|
||||||
Command arguments for yt-dlp
|
Command arguments for yt-dlp
|
||||||
</label>
|
</label>
|
||||||
<div class="control">
|
<div class="control">
|
||||||
<input type="text" class="input" v-model="form.cli" id="cli_options" :disabled="addInProgress"
|
<textarea type="text" class="textarea is-pre" v-model="form.cli" id="cli_options"
|
||||||
placeholder="command options to use, e.g. --no-embed-metadata --no-embed-thumbnail">
|
:disabled="addInProgress"
|
||||||
|
placeholder="command options to use, e.g. --no-embed-metadata --no-embed-thumbnail" />
|
||||||
</div>
|
</div>
|
||||||
<span class="help">
|
<span class="help">
|
||||||
<span class="icon"><i class="fa-solid fa-info" /></span>
|
<span class="icon"><i class="fa-solid fa-info" /></span>
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue