This commit is contained in:
Jesse Bannon 2023-12-06 17:03:42 -08:00
parent 41165f06ad
commit c28628b10a
2 changed files with 15 additions and 4 deletions

View file

@ -21,6 +21,11 @@ class MetadataVariable(Variable):
metadata_key: str
@dataclass(frozen=True)
class DerivedMetadata(MetadataVariable, Metadata):
pass
class _Variables:
@property
def entry_metadata(self) -> Metadata:
@ -33,24 +38,24 @@ class _Variables:
return Metadata("entry_metadata")
@property
def playlist_metadata(self) -> Metadata:
def playlist_metadata(self) -> DerivedMetadata:
"""
Returns
-------
dict
The playlist's info.json in dict form
"""
return Metadata("playlist_metadata")
return DerivedMetadata("playlist_metadata", metadata_key="playlist_metadata")
@property
def source_metadata(self) -> Metadata:
def source_metadata(self) -> DerivedMetadata:
"""
Returns
-------
dict
The source's info.json in dict form
"""
return Metadata("source_metadata")
return DerivedMetadata("source_metadata", metadata_key="source_metadata")
@property
def uid(self) -> MetadataVariable:

View file

@ -4,6 +4,7 @@ from typing import Optional
import mergedeep
from ytdl_sub.entries.script.variable_definitions import VARIABLES as v
from ytdl_sub.entries.script.variable_definitions import DerivedMetadata
from ytdl_sub.entries.script.variable_definitions import Metadata
from ytdl_sub.entries.script.variable_definitions import MetadataVariable
from ytdl_sub.entries.script.variable_definitions import Variable
@ -89,6 +90,11 @@ def source_get_int(key: MetadataVariable, default: Optional[Variable | int] = No
###############################################################################################
# Scripts
ENTRY_METADATA: Dict[DerivedMetadata, str] = {
v.playlist_metadata: entry_get(v.playlist_metadata),
v.source_metadata: entry_get(v.source_metadata),
}
ENTRY_HARDCODED_VARIABLES: Dict[Variable, str] = {
v.info_json_ext: "info.json",