Ejemplo n.º 1
0
 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))
Ejemplo n.º 2
0
 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)
Ejemplo n.º 3
0
 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)
Ejemplo n.º 4
0
 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,
         )
     )
Ejemplo n.º 5
0
 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)
Ejemplo n.º 6
0
 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")
Ejemplo n.º 7
0
 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)