[BACKEND] epoch and playlist_index_reversed variables (#257)

This commit is contained in:
Jesse Bannon 2022-09-29 15:39:53 -07:00 committed by GitHub
parent 7d29b72010
commit cd9a094e2c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 73 additions and 1 deletions

View file

@ -1,4 +1,5 @@
from abc import ABC from abc import ABC
from datetime import datetime
from pathlib import Path from pathlib import Path
from typing import Any from typing import Any
from typing import Dict from typing import Dict
@ -11,6 +12,8 @@ from typing import final
from yt_dlp.utils import sanitize_filename from yt_dlp.utils import sanitize_filename
from ytdl_sub.entries.variables.kwargs import DESCRIPTION from ytdl_sub.entries.variables.kwargs import DESCRIPTION
from ytdl_sub.entries.variables.kwargs import EPOCH
from ytdl_sub.entries.variables.kwargs import EXTRACTOR
from ytdl_sub.entries.variables.kwargs import TITLE from ytdl_sub.entries.variables.kwargs import TITLE
from ytdl_sub.entries.variables.kwargs import UID from ytdl_sub.entries.variables.kwargs import UID
from ytdl_sub.entries.variables.kwargs import UPLOADER from ytdl_sub.entries.variables.kwargs import UPLOADER
@ -58,7 +61,37 @@ class BaseEntryVariables:
str str
The ytdl extractor name The ytdl extractor name
""" """
return self.kwargs("extractor") return self.kwargs(EXTRACTOR)
@property
def epoch(self: "BaseEntry") -> int:
"""
Returns
-------
int
The unix epoch of when the metadata was scraped by yt-dlp.
"""
return self.kwargs(EPOCH)
@property
def epoch_date(self: "BaseEntry") -> str:
"""
Returns
-------
str
The epoch's date, in YYYYMMDD format.
"""
return datetime.utcfromtimestamp(self.epoch).strftime("%Y%m%d")
@property
def epoch_hour(self: "BaseEntry") -> str:
"""
Returns
-------
str
The epoch's hour, padded
"""
return datetime.utcfromtimestamp(self.epoch).strftime("%H")
@property @property
def title(self: "BaseEntry") -> str: def title(self: "BaseEntry") -> str:

View file

@ -169,6 +169,16 @@ class EntryVariables(BaseEntryVariables):
""" """
return self.kwargs_get(PLAYLIST_INDEX, 1) return self.kwargs_get(PLAYLIST_INDEX, 1)
@property
def playlist_index_reversed(self: Self) -> int:
"""
Returns
-------
int
Playlist index reversed via ``playlist_count - playlist_index + 1``
"""
return self.playlist_count - self.playlist_index + 1
@property @property
def playlist_index_padded(self: Self) -> str: def playlist_index_padded(self: Self) -> str:
""" """
@ -179,6 +189,16 @@ class EntryVariables(BaseEntryVariables):
""" """
return _pad(self.playlist_index, width=2) return _pad(self.playlist_index, width=2)
@property
def playlist_index_reversed_padded(self: Self) -> str:
"""
Returns
-------
str
playlist_index_reversed padded two digits
"""
return _pad(self.playlist_index_reversed, width=2)
@property @property
def playlist_index_padded6(self: Self) -> str: def playlist_index_padded6(self: Self) -> str:
""" """
@ -189,6 +209,16 @@ class EntryVariables(BaseEntryVariables):
""" """
return _pad(self.playlist_index, width=6) return _pad(self.playlist_index, width=6)
@property
def playlist_index_reversed_padded6(self: Self) -> str:
"""
Returns
-------
str
playlist_index_reversed padded six digits.
"""
return _pad(self.playlist_index_reversed, width=6)
@property @property
def playlist_count(self: Self) -> int: def playlist_count(self: Self) -> int:
""" """

View file

@ -41,6 +41,8 @@ PLAYLIST_UPLOADER_ID = _("playlist_uploader_id")
PLAYLIST_UPLOADER_URL = _("playlist_uploader_url") PLAYLIST_UPLOADER_URL = _("playlist_uploader_url")
UID = _("id") UID = _("id")
EXTRACTOR = _("extractor")
EPOCH = _("epoch")
CHANNEL = _("channel") CHANNEL = _("channel")
EXT = _("ext") EXT = _("ext")
TITLE = _("title") TITLE = _("title")

View file

@ -62,6 +62,9 @@ def mock_entry_to_dict(
return { return {
"uid": uid, "uid": uid,
"uid_sanitized": uid, "uid_sanitized": uid,
"epoch": 1596878400,
"epoch_date": "20200808",
"epoch_hour": "09",
"title": "entry title", "title": "entry title",
"title_sanitized": "entry title", "title_sanitized": "entry title",
"ext": ext, "ext": ext,
@ -95,6 +98,9 @@ def mock_entry_to_dict(
"playlist_index": 1, "playlist_index": 1,
"playlist_index_padded": "01", "playlist_index_padded": "01",
"playlist_index_padded6": "000001", "playlist_index_padded6": "000001",
"playlist_index_reversed": 1,
"playlist_index_reversed_padded": "01",
"playlist_index_reversed_padded6": "000001",
"playlist_count": 1, "playlist_count": 1,
"playlist_max_upload_year": 2021, "playlist_max_upload_year": 2021,
"playlist_max_upload_year_truncated": 21, "playlist_max_upload_year_truncated": 21,
@ -126,6 +132,7 @@ def mock_entry_kwargs(
): ):
return { return {
"id": uid, "id": uid,
"epoch": 1596878400,
"extractor": extractor, "extractor": extractor,
"title": title, "title": title,
"ext": ext, "ext": ext,