def get_already_read(self, page=1, limit=RESULTS_PER_PAGE): return self.process_logged_books( Bookshelves.get_users_logged_books( self.user.get_username(), bookshelf_id=Bookshelves.PRESET_BOOKSHELVES['Already Read'], page=page, limit=limit))
def get_already_read(self, page=1, limit=RESULTS_PER_PAGE): work_ids = [ '/works/OL%sW' % i['work_id'] for i in Bookshelves.get_users_logged_books( self.user.get_username(), bookshelf_id=Bookshelves.PRESET_BOOKSHELVES['Already Read'], page=page, limit=limit) ] return web.ctx.site.get_many(work_ids)
def get_want_to_read(self, page=1, limit=100): work_ids = [ '/works/OL%sW' % i['work_id'] for i in Bookshelves.get_users_logged_books( self.user.get_username(), bookshelf_id=Bookshelves.PRESET_BOOKSHELVES['Want to Read'], page=page, limit=limit) ] return web.ctx.site.get_many(work_ids)
def get_already_read( self, page=1, limit=RESULTS_PER_PAGE, sort='created', sort_order='desc' ): return self.process_logged_books( Bookshelves.get_users_logged_books( self.user.get_username(), bookshelf_id=Bookshelves.PRESET_BOOKSHELVES['Already Read'], page=page, limit=limit, sort=sort + ' ' + sort_order, ) )
def generate_reading_log(self, username): books = Bookshelves.get_users_logged_books(username, limit=10000) csv = [] csv.append('Work Id,Edition Id,Bookshelf\n') mapping = {1: 'Want to Read', 2: 'Currently Reading', 3: 'Already Read'} for book in books: row = [ 'OL{}W'.format(book['work_id']), 'OL{}M'.format(book['edition_id']) if book['edition_id'] else '', '{}\n'.format(mapping[book['bookshelf_id']]), ] csv.append(','.join(row)) return ''.join(csv)
def GET(self): user = accounts.get_current_user() username = user.key.split('/')[-1] books = Bookshelves.get_users_logged_books(username, limit=10000) csv = [] csv.append('Work Id,Edition Id,Bookshelf\n') mapping = {1:'Want to Read', 2:'Currently Reading', 3:'Already Read'} for book in books: row = [ 'OL{}W'.format(book['work_id']), 'OL{}M'.format(book['edition_id']) if book['edition_id'] else '', '{}\n'.format(mapping[book['bookshelf_id']]) ] csv.append(','.join(row)) web.header('Content-Type','text/csv') web.header('Content-disposition', 'attachment; filename=OpenLibrary_ReadingLog.csv') csv = ''.join(csv) return delegate.RawText(csv, content_type="text/csv")
def get_already_read(self, page=1, limit=100): work_ids = ['/works/OL%sW' % i['work_id'] for i in Bookshelves.get_users_logged_books( self.user.get_username(), bookshelf_id=Bookshelves.PRESET_BOOKSHELVES['Already Read'], page=page, limit=limit)] return web.ctx.site.get_many(work_ids)