From 226bc03bffddc0c63d4bf811a66c3eb78f5076a2 Mon Sep 17 00:00:00 2001 From: Ethan Dalool Date: Thu, 18 Jun 2020 09:01:05 -0700 Subject: [PATCH] Add methods Channel.delete and Video.delete. --- ycdl/objects.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/ycdl/objects.py b/ycdl/objects.py index 9115ac0..dbeef25 100644 --- a/ycdl/objects.py +++ b/ycdl/objects.py @@ -23,6 +23,13 @@ class Channel(Base): self.directory = db_row['directory'] self.automark = db_row['automark'] or "pending" + def delete(self, commit=True): + self.ycdldb.sql_delete(table='videos', pairs={'author_id': self.id}) + self.ycdldb.sql_delete(table='channels', pairs={'id': self.id}) + + if commit: + self.ycdldb.commit() + def has_pending(self): query = 'SELECT 1 FROM videos WHERE author_id == ? AND download == "pending" LIMIT 1' bindings = [self.id] @@ -93,6 +100,12 @@ class Video(Base): except exceptions.NoSuchChannel: return None + def delete(self, commit=True): + self.ycdldb.sql_delete(table='videos', pairs={'id': self.id}) + + if commit: + self.ycdldb.commit() + def mark_state(self, state, commit=True): ''' Mark the video as ignored, pending, or downloaded.