diff --git a/app/src/DTO/ItemDTO.py b/app/src/DTO/ItemDTO.py index eb494a0b..423a5326 100644 --- a/app/src/DTO/ItemDTO.py +++ b/app/src/DTO/ItemDTO.py @@ -23,6 +23,7 @@ class ItemDTO: timestamp: float = time.time_ns() is_live: bool = None datetime: str = field(default_factory=lambda: str(formatdate(time.time()))) + live_in: str = None # yt-dlp injected fields. tmpfilename: str = None diff --git a/app/src/DataStore.py b/app/src/DataStore.py index 8dbf7294..84be145c 100644 --- a/app/src/DataStore.py +++ b/app/src/DataStore.py @@ -129,6 +129,12 @@ class DataStore: except AttributeError: pass + if hasattr(stored, 'live_in') and stored.status == 'finished': + try: + delattr(stored, 'live_in') + except AttributeError: + pass + with sqlite3.connect(self.db_file) as db: db.execute(sqlStatement.strip(), ( stored._id, diff --git a/app/src/DownloadQueue.py b/app/src/DownloadQueue.py index dd6403cc..9ba7fb50 100644 --- a/app/src/DownloadQueue.py +++ b/app/src/DownloadQueue.py @@ -54,11 +54,13 @@ class DownloadQueue: return {'status': 'error', 'msg': 'Invalid/empty data was given.'} error: str = None + live_in: str = None if 'live_status' in entry and 'release_timestamp' in entry and entry.get('live_status') == 'is_upcoming': dt_ts = datetime.fromtimestamp( entry.get('release_timestamp'), tz=timezone.utc).strftime('%Y-%m-%d %H:%M:%S %z') error = f"Live stream is scheduled to start at {dt_ts}" + live_in = formatdate(entry.get('release_timestamp')) else: error = entry['msg'] if 'msg' in entry else None @@ -125,6 +127,7 @@ class DownloadQueue: datetime=formatdate(time.time()), error=error, is_live=entry['is_live'] if 'is_live' in entry else None, + live_in=live_in, ) try: diff --git a/frontend/src/components/Page-Completed.vue b/frontend/src/components/Page-Completed.vue index 5e70ecc1..291d8743 100644 --- a/frontend/src/components/Page-Completed.vue +++ b/frontend/src/components/Page-Completed.vue @@ -82,7 +82,7 @@