diff --git a/tubearchivist/home/src/es/index_mapping.json b/tubearchivist/home/src/es/index_mapping.json index f30a82d..5b487ce 100644 --- a/tubearchivist/home/src/es/index_mapping.json +++ b/tubearchivist/home/src/es/index_mapping.json @@ -39,6 +39,16 @@ "channel_last_refresh": { "type": "date", "format": "epoch_second" + }, + "channel_overwrites": { + "properties": { + "format": { + "type": "text" + }, + "autodelete_days": { + "type": "long" + } + } } }, "expected_set": { @@ -102,6 +112,16 @@ "channel_last_refresh": { "type": "date", "format": "epoch_second" + }, + "channel_overwrites": { + "properties": { + "format": { + "type": "text" + }, + "autodelete_days": { + "type": "long" + } + } } } }, diff --git a/tubearchivist/home/src/index/channel.py b/tubearchivist/home/src/index/channel.py index 57a1c4e..3837bcd 100644 --- a/tubearchivist/home/src/index/channel.py +++ b/tubearchivist/home/src/index/channel.py @@ -267,3 +267,19 @@ class YoutubeChannel(YouTubeItem): } all_playlists = IndexPaginate("ta_playlist", data).get_results() return all_playlists + + def get_overwrites(self): + """get all per channel overwrites""" + return self.json_data.get("channel_overwrites", False) + + def set_overwrites(self, overwrites): + """set per channel overwrites""" + valid_keys = ["format", "autodelete_days"] + for key in overwrites: + if key not in valid_keys: + raise ValueError(f"invalid overwrite key: {key}") + + if "channel_overwrites" in self.json_data.keys(): + self.json_data["channel_overwrites"].update(overwrites) + else: + self.json_data["channel_overwrites"] = overwrites