From 43cf40d795233db287178da00a7b879ac0ec5d23 Mon Sep 17 00:00:00 2001 From: shirshasa Date: Fri, 3 Sep 2021 16:19:46 +0300 Subject: [PATCH] epub converter: prettify consumer.py --- src/consumer.py | 45 +++++++++++++++------------------------------ 1 file changed, 15 insertions(+), 30 deletions(-) diff --git a/src/consumer.py b/src/consumer.py index 7a0a6d5..eab90cb 100644 --- a/src/consumer.py +++ b/src/consumer.py @@ -31,24 +31,11 @@ def configure_file_logger(name, filename='logs/converter_log.log', filemode='w+' return logger -def convert_book(book_id, access, logger, libra_locker): +def convert_book(book_type: [Book, EpubBook], params: dict, logger, book_id): logger.info(f'Start processing book-{book_id}.') try: - book = Book(book_id, access, main_logger=logger, libra_locker=libra_locker) - book.conversion() - except Exception as exc: - raise exc - - logger.info(f'Book-{book_id} has been proceeded.') - print('Book has been proceeded.') - - -def convert_epub_book(book_id, access, logger=None): - logger.info(f'Start processing epub book-{book_id}.') - - try: - book = EpubBook(book_id=book_id, access=access, main_logger=logger) + book = book_type(book_id=book_id, main_logger=logger, **params) book.conversion() except Exception as exc: raise exc @@ -63,22 +50,20 @@ def callback(ch, method, properties, body, logger, libra_locker): try: data = json.loads(body) assert 'apiURL' in data, 'No apiURL field in received message.' + assert data.get('fileExtension') in ['epub', 'docx'], 'Wrong book type received.' - if data.get('fileExtension') == 'epub': - params = { - 'book_id': data['id'], - 'access': Access(url=data['apiURL']), - 'logger': logger, - } - thread = Thread(target=convert_epub_book, kwargs=params) - else: - params = { - 'book_id': data['id'], - 'access': Access(url=data['apiURL']), - 'logger': logger, - 'libra_locker': libra_locker - } - thread = Thread(target=convert_book, kwargs=params) + book_params = {'access': Access(url=data['apiURL'])} + if data.get('fileExtension') == 'docx': + book_params.update({'libra_locker': libra_locker}) + + params = { + 'book_type': EpubBook if data.get('fileExtension') == 'epub' else Book, + 'book_id': data['id'], + 'logger': logger, + 'params': book_params + } + + thread = Thread(target=convert_book, kwargs=params) thread.start() logging.log(logging.INFO, f'Active threads: {active_count()}.') # print(f'Active threads: {active_count()}.')