aboutsummaryrefslogtreecommitdiff
path: root/newspipe/web/controllers/bookmark.py
diff options
context:
space:
mode:
Diffstat (limited to 'newspipe/web/controllers/bookmark.py')
-rw-r--r--newspipe/web/controllers/bookmark.py32
1 files changed, 32 insertions, 0 deletions
diff --git a/newspipe/web/controllers/bookmark.py b/newspipe/web/controllers/bookmark.py
new file mode 100644
index 00000000..b5413243
--- /dev/null
+++ b/newspipe/web/controllers/bookmark.py
@@ -0,0 +1,32 @@
+import logging
+import itertools
+from datetime import datetime, timedelta
+
+from bootstrap import db
+from web.models import Bookmark
+from .abstract import AbstractController
+from .tag import BookmarkTagController
+
+logger = logging.getLogger(__name__)
+
+
+class BookmarkController(AbstractController):
+ _db_cls = Bookmark
+
+ def count_by_href(self, **filters):
+ return self._count_by(Bookmark.href, filters)
+
+ def update(self, filters, attrs):
+ BookmarkTagController(self.user_id) \
+ .read(**{'bookmark_id': filters["id"]}) \
+ .delete()
+
+ for tag in attrs['tags']:
+ BookmarkTagController(self.user_id).create(
+ **{'text': tag.text,
+ 'id': tag.id,
+ 'bookmark_id': tag.bookmark_id,
+ 'user_id': tag.user_id})
+
+ del attrs['tags']
+ return super().update(filters, attrs)
bgstack15