Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/readdb.py
diff options
context:
space:
mode:
Diffstat (limited to 'readdb.py')
-rw-r--r--readdb.py32
1 files changed, 31 insertions, 1 deletions
diff --git a/readdb.py b/readdb.py
index 3166205..0ad6eb5 100644
--- a/readdb.py
+++ b/readdb.py
@@ -46,7 +46,7 @@ class BookmarkManager:
def _populate_bookmarks(self):
# TODO: Figure out if caching the entire set of bookmarks is a good idea or not
- self._cur.execute('select * from bookmarks where md5=?', (self._filehash,))
+ self._cur.execute('select * from bookmarks where md5=? order by page', (self._filehash,))
for row in self._cur:
self._bookmarks.append(Bookmark(row))
@@ -63,3 +63,33 @@ class BookmarkManager:
# To be called when a new bookmark has been added/removed
self._bookmarks = []
self._populate_bookmarks()
+
+
+ def get_prev_bookmark_for_page(self, page, wrap = True):
+ if not len(self._bookmarks):
+ return None
+
+ if page <= self._bookmarks[0].page_no and wrap:
+ return self._bookmarks[-1]
+ else:
+ for i in range(page-1, -1, -1):
+ for bookmark in self._bookmarks:
+ if bookmark.belongstopage(i):
+ return bookmark
+
+ return None
+
+
+ def get_next_bookmark_for_page(self, page, wrap = True):
+ if not len(self._bookmarks):
+ return None
+
+ if page >= self._bookmarks[-1].page_no and wrap:
+ return self._bookmarks[0]
+ else:
+ for i in range(page+1, self._bookmarks[-1].page_no + 1):
+ for bookmark in self._bookmarks:
+ if bookmark.belongstopage(i):
+ return bookmark
+
+ return None