From c28628b10a9e437b7ac7b90050c223cc94c03811 Mon Sep 17 00:00:00 2001 From: Jesse Bannon Date: Wed, 6 Dec 2023 17:03:42 -0800 Subject: [PATCH] ready?? --- src/ytdl_sub/entries/script/variable_definitions.py | 13 +++++++++---- src/ytdl_sub/entries/script/variable_scripts.py | 6 ++++++ 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/ytdl_sub/entries/script/variable_definitions.py b/src/ytdl_sub/entries/script/variable_definitions.py index 6b27664a..684ef453 100644 --- a/src/ytdl_sub/entries/script/variable_definitions.py +++ b/src/ytdl_sub/entries/script/variable_definitions.py @@ -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: diff --git a/src/ytdl_sub/entries/script/variable_scripts.py b/src/ytdl_sub/entries/script/variable_scripts.py index ca151a17..16a2adea 100644 --- a/src/ytdl_sub/entries/script/variable_scripts.py +++ b/src/ytdl_sub/entries/script/variable_scripts.py @@ -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",