From 4a89141cc3a1c20ac04c8110b3c984d4f234ec44 Mon Sep 17 00:00:00 2001 From: shirshasa Date: Fri, 23 Apr 2021 15:22:20 +0300 Subject: [PATCH] epub converter: consumer.py --- src/consumer.py | 37 +++++++++++++++++++++++++++++-------- 1 file changed, 29 insertions(+), 8 deletions(-) diff --git a/src/consumer.py b/src/consumer.py index 9abf4b7..948b014 100644 --- a/src/consumer.py +++ b/src/consumer.py @@ -11,6 +11,7 @@ import pika from access import Access from docx_converter import Book +from src.epub_converter import EpubBook def configure_file_logger(name, filename='logs/converter_log.log', filemode='w+', @@ -43,6 +44,19 @@ def convert_book(book_id, access, logger, libra_locker): 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.conversion() + except Exception as exc: + raise exc + + logger.info(f'Book-{book_id} has been proceeded.') + print('Book has been proceeded.') + + def callback(ch, method, properties, body, logger, libra_locker): print(f'Message: {body}.') logger.info(f'Message: {body}.') @@ -50,14 +64,21 @@ def callback(ch, method, properties, body, logger, libra_locker): data = json.loads(body) assert 'apiURL' in data, 'No apiURL field in received message.' - params = { - 'book_id': data['id'], - 'access': Access(url=data['apiURL']), - 'logger': logger, - 'libra_locker': libra_locker - } - - thread = Thread(target=convert_book, kwargs=params) + 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) thread.start() logging.log(logging.INFO, f'Active threads: {active_count()}.') # print(f'Active threads: {active_count()}.')