forked from LiveCarta/BookConverter
Rewrite local converting
This commit is contained in:
33
consumer.py
33
consumer.py
@@ -28,35 +28,18 @@ def configure_file_logger(name, filename='logs/converter.log', filemode='w+',
|
|||||||
logger.setLevel(logging_level)
|
logger.setLevel(logging_level)
|
||||||
return logger
|
return logger
|
||||||
|
|
||||||
def local_convert_book(filename, locker):
|
def convert_book(book_type: [DocxBook, EpubBook], book_id, logger, params: dict,):
|
||||||
logger = configure_file_logger('consumer')
|
|
||||||
logger.info(f'Start processing book-{filename}.')
|
|
||||||
|
|
||||||
folder_path = os.path.dirname(os.path.abspath("__file__"))
|
|
||||||
output_path = Path(os.path.join(folder_path, f'json/{filename}.json'))
|
|
||||||
try:
|
|
||||||
book = DocxBook(book_id=filename,
|
|
||||||
main_logger=logger,
|
|
||||||
libra_locker=locker)
|
|
||||||
book.test_conversion()
|
|
||||||
|
|
||||||
except Exception as exc:
|
|
||||||
raise exc
|
|
||||||
|
|
||||||
logger.info(f'Book-{filename} has been proceeded.')
|
|
||||||
|
|
||||||
def convert_book(book_type: [DocxBook, EpubBook], params: dict, logger, book_id):
|
|
||||||
logger.info(f'Start processing book-{book_id}.')
|
logger.info(f'Start processing book-{book_id}.')
|
||||||
|
|
||||||
try:
|
try:
|
||||||
book = book_type(book_id=book_id, main_logger=logger, **params)
|
book = book_type(book_id=book_id, main_logger=logger, **params)
|
||||||
|
book.conversion_local('9781641051217')
|
||||||
book.conversion()
|
book.conversion()
|
||||||
except Exception as exc:
|
except Exception as exc:
|
||||||
raise exc
|
raise exc
|
||||||
|
|
||||||
logger.info(f'Book-{book_id} has been proceeded.')
|
logger.info(f'Book-{book_id} has been proceeded.')
|
||||||
|
|
||||||
|
|
||||||
def callback(ch, method, properties, body, logger, libra_locker):
|
def callback(ch, method, properties, body, logger, libra_locker):
|
||||||
print(f'Message: {body}.')
|
print(f'Message: {body}.')
|
||||||
logger.info(f'Message: {body}.')
|
logger.info(f'Message: {body}.')
|
||||||
@@ -92,18 +75,6 @@ def callback(ch, method, properties, body, logger, libra_locker):
|
|||||||
finally:
|
finally:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def local_run(books):
|
|
||||||
locker = Event()
|
|
||||||
locker.set()
|
|
||||||
|
|
||||||
threads = []
|
|
||||||
for book_name in books:
|
|
||||||
logging.info("Main : create and start thread %d.", book_name)
|
|
||||||
x = Thread(target=local_convert_book, args=(book_name, locker))
|
|
||||||
threads.append(x)
|
|
||||||
|
|
||||||
[x.start() for x in threads]
|
|
||||||
|
|
||||||
def server_run():
|
def server_run():
|
||||||
logger = configure_file_logger('consumer')
|
logger = configure_file_logger('consumer')
|
||||||
|
|
||||||
|
|||||||
@@ -107,21 +107,6 @@ class BookSolver:
|
|||||||
self.status_wrapper.set_generating()
|
self.status_wrapper.set_generating()
|
||||||
return {}
|
return {}
|
||||||
|
|
||||||
def test_conversion(self):
|
|
||||||
"""
|
|
||||||
Function
|
|
||||||
- without sending to server
|
|
||||||
"""
|
|
||||||
self.logger_object.log('Beginning of the test.')
|
|
||||||
folder_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
|
||||||
folder_path = os.path.join(folder_path, f'{self.book_type}')
|
|
||||||
file_path = os.path.join(folder_path, f'{self.book_id}.{self.book_type}')
|
|
||||||
self.file_path = pathlib.Path(file_path)
|
|
||||||
self.logger_object.log(f'Test on {self.book_type}: {self.file_path}')
|
|
||||||
content_dict = self.get_converted_book()
|
|
||||||
self.write_to_json(content_dict)
|
|
||||||
self.logger_object.log('End of the test.')
|
|
||||||
|
|
||||||
def conversion(self):
|
def conversion(self):
|
||||||
"""
|
"""
|
||||||
Function
|
Function
|
||||||
@@ -143,17 +128,20 @@ class BookSolver:
|
|||||||
self.logger_object.log_error_to_main_log(str(exc))
|
self.logger_object.log_error_to_main_log(str(exc))
|
||||||
raise exc
|
raise exc
|
||||||
|
|
||||||
def conversion_local(self):
|
def conversion_local(self, file_name: str):
|
||||||
"""
|
"""
|
||||||
Function
|
Function
|
||||||
- without downloading book from server (local)
|
- without downloading book from server (local)
|
||||||
- with sending to server
|
- with sending to server
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
self.logger_object.log(f'Data has been downloaded from tmp.json file: {self.file_path}')
|
self.logger_object.log(f'Data has been downloaded from {file_name}.json file: {self.file_path}')
|
||||||
with codecs.open('json/tmp.json', 'r', encoding='utf-8') as f_json:
|
self.status_wrapper.set_processing()
|
||||||
|
with codecs.open(f'json/{file_name}.json', 'r', encoding='utf-8') as f_json:
|
||||||
content_dict = json.load(f_json)
|
content_dict = json.load(f_json)
|
||||||
self.send_json_content_to_server(content_dict)
|
self.send_json_content_to_server(content_dict)
|
||||||
self.logger_object.log(f'End of the conversion to LiveCarta format. Check {self.output_path}.')
|
self.logger_object.log(f'End of the conversion to LiveCarta format. Check {self.output_path}.')
|
||||||
except Exception as exc:
|
except Exception as exc:
|
||||||
|
self.status_wrapper.set_error()
|
||||||
self.logger_object.log('Error has occurred while reading json file.' + str(exc), logging.ERROR)
|
self.logger_object.log('Error has occurred while reading json file.' + str(exc), logging.ERROR)
|
||||||
|
self.logger_object.log_error_to_main_log(str(exc))
|
||||||
@@ -502,17 +502,13 @@ class EpubConverter:
|
|||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
filename = '9781641051217'
|
||||||
logger = logging.getLogger('epub')
|
logger = logging.getLogger('epub')
|
||||||
stream_handler = logging.StreamHandler()
|
logger_object = BookLogger(name=f'epub', main_logger=logger, book_id=filename)
|
||||||
logger.addHandler(stream_handler)
|
|
||||||
file_handler = logging.FileHandler('../../logs/epub.log', mode='w+')
|
|
||||||
logger.addHandler(file_handler)
|
|
||||||
|
|
||||||
logger_object = BookLogger(name=f'epub', main_logger=logger, book_id=0)
|
json_converter = EpubConverter(f'../../epub/{filename}.epub',
|
||||||
|
|
||||||
json_converter = EpubConverter('../../epub/9781634254878.epub',
|
|
||||||
logger=logger_object)
|
logger=logger_object)
|
||||||
tmp = json_converter.convert_to_dict()
|
content_dict = json_converter.convert_to_dict()
|
||||||
|
|
||||||
with codecs.open('../../json/tmp.json', 'w', encoding='utf-8') as f:
|
with codecs.open(f'../../json/{filename}.json', 'w', encoding='utf-8') as f:
|
||||||
json.dump(tmp, f, ensure_ascii=False)
|
json.dump(content_dict, f, ensure_ascii=False)
|
||||||
Reference in New Issue
Block a user