def generate_metadata_file(self, metadata_dict, bookid): try: tmp_file = tempfile.mkstemp() f = open(tmp_file[1], "aw") f.write("Título: " + metadata_dict["title"] + "\n") f.write("Subtítulo: " + metadata_dict["subtitle"] + "\n") f.write("Assunto: " + subject_table_map.get_subject(metadata_dict["subject"]) + "\n") f.write("Fontes: " + metadata_dict["source"] + "\n") f.write("Título do Livro: " + metadata_dict["book_title"] + "\n") f.write("Página do Livro: " + str(metadata_dict["page_number"]) + "\n") f.write("Número da Tabela: " + str(metadata_dict["table_number"]) + "\n") f.close() f = open(tmp_file[1], "rb") data_mngr2.record_metadata_file(dict( book_id=bookid, page_number=metadata_dict["page_number"], table_number=metadata_dict["table_number"], mt_file=f.read() )) f.close() os.unlink(f.name) msg = "Metadata file generated with success. Content: " + str(metadata_dict) logger.info(msg) except Exception as e: logger.error(e) raise e
def __record_page_table_and_metadata(self, answers): # retrieve page (testar none) book_id = self.get_book_id() page_num = self.task.info["page"] page = data_manager.get_page(book_id, page_num) if (page == None): logger.warn("The page from the book " + book_id + " and page number " + str(page_num) + " doesn't exist.") return for i in range(0, len(answers)): answer = answers[i] page_table_dict = dict(bookid=book_id, pageid=page.id, local_url="/books/" + book_id + "/metadados/tabelasBaixa/image" + str(page_num) + "_" + str(i) + ".png", top_pos=answer['top'], left_pos=answer['left'], right_pos=(answer['left'] + answer['width']), bottom_pos=(answer['top'] + answer['height'])) data_manager.record_page_table(page_table_dict) # retrieve page table page_table = data_manager.get_page_table_by_position(page.id, page_table_dict['top_pos'], page_table_dict['left_pos'], page_table_dict['right_pos'], page_table_dict['bottom_pos']) if (page_table == None): logger.warn("The page table from the book " + book_id + " and page " + str(page.id) + " doesn't exist.") return metadata = answer['text'] subject_name = priority_task_manager.get_subject(metadata['assunto']) data_manager.record_metadata(dict(bookid=book_id, pageid=page.id, pagetableid=page_table.id, source=metadata['fontes'], title=metadata['titulo'], subtitle=metadata['subtitulo'], subject=(metadata['outros'] if subject_name == "Outros" else subject_name), initial_date=metadata['dataInicial'], final_date=metadata['dataFinal']))