示例#1
0
class RequestService:
    def __init__(self):
        self.dbHandler = dbfry.getInterface('mongodb', configs.db)
        self.requestAPI = RequestAPI()
        self.collection = 'douban_book'
        pass

    def search_books(self, keyword, tag='', offset=0, limit=1):
        _res = self.requestAPI.search_books(keyword, tag, offset, limit)
        if _res.has_key('books'):
            try:
                self.dbHandler.connect()
                for _book in _res['books']:
                    self.dbHandler.insert(self.collection, _book)
            except BaseException as e:
                logging.error('error save search books')
                logging.exception(traceback.format_exc())
            finally:
                self.dbHandler.disconnect()
        return _res

    def search_book_by_isbn(self, isbn):
        _book = None
        try:
            self.dbHandler.connect()
            _book = self.dbHandler.find_one(self.collection,
                                            {'isbn13': str(isbn)})
        except BaseException as e:
            logging.error('error search book by isbn')
            logging.exception(traceback.format_exc())

        finally:
            self.dbHandler.disconnect()

        if _book is None:
            _book = self.requestAPI.get_book_by_isbn(
                str(isbn))  # ('9787532706907')

        return _book

    def get_book_reviews(self, id, offset=0, limit=5, orderby_time=False):
        _reviews = None
        _reviews = self.requestAPI.get_book_reviews(id,
                                                    offset=offset,
                                                    limit=limit,
                                                    orderby_time=orderby_time)

        if _reviews is None:
            return {}
        return _reviews

    def get_ratings(self, id):
        _ratings = self.requestAPI.get_ratings(id)

        return _ratings
示例#2
0
class RequestService:

    def __init__(self):
        self.dbHandler = dbfry.getInterface('mongodb', configs.db)
        self.requestAPI = RequestAPI()
        self.collection = 'douban_book'
        pass
        
    def search_books(self, keyword, tag='', offset=0, limit=1):
        _res = self.requestAPI.search_books(keyword, tag, offset, limit)
        if _res.has_key('books'):
            try:
                self.dbHandler.connect()
                for _book in _res['books']:
                    self.dbHandler.insert(self.collection, _book)
            except BaseException as e:
                logging.error('error save search books')
                logging.exception(traceback.format_exc())
            finally:
                self.dbHandler.disconnect()
        return _res
        
    def search_book_by_isbn(self, isbn):
        _book = None
        try:
            self.dbHandler.connect()
            _book = self.dbHandler.find_one(self.collection, {'isbn13' : str(isbn)})
        except BaseException as e:
            logging.error('error search book by isbn')
            logging.exception(traceback.format_exc())

        finally:
            self.dbHandler.disconnect()

        if _book is None:
            _book = self.requestAPI.get_book_by_isbn(str(isbn))  # ('9787532706907')
            
        return _book

    def get_book_reviews(self,id, offset=0, limit=5, orderby_time=False):
        _reviews = None
        _reviews = self.requestAPI.get_book_reviews(id, offset=offset, limit=limit, orderby_time=orderby_time)
        
        if _reviews is None:
            return {}
        return _reviews
        
    def get_ratings(self,id):
        _ratings = self.requestAPI.get_ratings(id)
        
        return _ratings