From 5a3688abf780fd1e89368b6cde434851241acb05 Mon Sep 17 00:00:00 2001 From: Rafael Tavares Juliani Date: Wed, 18 Oct 2023 19:54:28 -0300 Subject: [PATCH] =?UTF-8?q?Conclus=C3=A3o=20do=20script=20Python=20Gerador?= =?UTF-8?q?=20ARK?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ark_lista.json | 410 ++++++++++++++++++++++++------------------------- ark_lista.yml | 138 +++++++---------- gerar_ark.py | 379 +++++++++++++++++++++++++++++++++++++-------- 3 files changed, 580 insertions(+), 347 deletions(-) diff --git a/ark_lista.json b/ark_lista.json index 8465d1f..3e436c0 100644 --- a/ark_lista.json +++ b/ark_lista.json @@ -1,206 +1,206 @@ { - "68745/eM485": { - "título": "Dicionários de Significados Alterados", - "formato": "Coleção de Livros Digitais (online) com Volumes também em Versões Impressas", - "autor": "Wagner Azevedo", - "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eM485.json" - }, - "68745/eM485/B6": { - "título": "Dicionário de Plantas com Outros Significados", - "formato": "Livro Digital (online)", - "autor": "Wagner Azevedo", - "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eM485_b_B6.json" - }, - "68745/eM485/B6.NT": { - "título": "Dicionário de Plantas com Outros Significados", - "formato": "Livro Impresso", - "autor": "Wagner Azevedo", - "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eM485_b_B6_p_NT.json" - }, - "68745/eM485/33": { - "título": "Dicionário de Números com Outros Significados", - "formato": "Livro Digital (online)", - "autor": "Wagner Azevedo", - "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eM485_b_33.json" - }, - "68745/eM485/33.37": { - "título": "Dicionário de Números com Outros Significados", - "formato": "Livro Impresso", - "autor": "Wagner Azevedo", - "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eM485_b_33_p_37.json" - }, - "68745/eMR8J.4N": { - "título": "As funções trigonométricas circulares e hiperbólicas", - "formato": "Livro Impresso", - "autor": "Sandro Marcos Guzzo", - "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eMR8J_p_4N.json" - }, - "68745/eMR8J": { - "título": "As funções trigonométricas circulares e hiperbólicas", - "formato": "Livro Digital (online)", - "autor": "Sandro Marcos Guzzo", - "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eMR8J.json" - }, - "68745/eMPTN.f7": { - "título": "As fábulas: O lobo e o cordeiro, A raposa e as uvas", - "formato": "Livro Impresso", - "autor": "Padre Marcos André, Márcio Moitinha", - "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eMPTN_p_f7.json" - }, - "68745/eMPTN": { - "título": "As fábulas: O lobo e o cordeiro, A raposa e as uvas", - "formato": "Livro Digital (online)", - "autor": "Padre Marcos André, Márcio Moitinha", - "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eMPTN.json" - }, - "68745/eMdbp.tm": { - "título": "Jean: entre jogos e brincadeiras", - "formato": "Livro Impresso", - "autor": "Diullye Miola (Autora e organizadora), Demitry Wallace dos Santos (Autor e Ilustrador), Guilherme Bigilini, Gustavo Cosmo Rodrigues, Helena Sgarbi de Oliveira, Isabella de Morais Santos, João Pedro Miranda FernandesLucas Pietruszynski de Souza, Mariana Martins Meyer, Mateus Possa Tonini, Murilo Pompeu Brandalize Nascimento", - "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eMdbp_p_tm.json" - }, - "68745/eMdbp": { - "título": "Jean: entre jogos e brincadeiras", - "formato": "Livro Digital (online)", - "autor": "Diullye Miola (Autora e organizadora), Demitry Wallace dos Santos (Autor e Ilustrador), Guilherme Bigilini, Gustavo Cosmo Rodrigues, Helena Sgarbi de Oliveira, Isabella de Morais Santos, João Pedro Miranda FernandesLucas Pietruszynski de Souza, Mariana Martins Meyer, Mateus Possa Tonini, Murilo Pompeu Brandalize Nascimento", - "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eMdbp.json" - }, - "68745/eM37B/TM.nG": { - "título": "Dicionário de Onomatopeias e Vocábulos Expressivos de Monteiro Lobato", - "formato": "Livro Impresso", - "autor": "Wagner Azevedo", - "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eM37B_b_TM_p_nG.json" - }, - "68745/eM37B/TM": { - "título": "Dicionário de Onomatopeias e Vocábulos Expressivos de Monteiro Lobato", - "formato": "Livro Digital (online)", - "autor": "Wagner Azevedo", - "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eM37B_b_TM.json" - }, - "68745/eM37B/pM": { - "título": "Dicionário de Onomatopeias e Neologismos de Mário de Andrade", - "formato": "Livro Digital (online)", - "autor": "Wagner Azevedo", - "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eM37B_b_pM.json" - }, - "68745/eM37B/pM.MG": { - "título": "Dicionário de Onomatopeias e Neologismos de Mário de Andrade", - "formato": "Livro Impresso", - "autor": "Wagner Azevedo", - "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eM37B_b_pM_p_MG.json" - }, - "68745/eMNQM": { - "título": "Dicionário de Vocábulos Populares da Língua Portuguesa", - "formato": "Livro Digital (online)", - "autor": "Wagner Azevedo", - "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eMNQM.json" - }, - "68745/eMNQM.gm": { - "título": "Dicionário de Vocábulos Populares da Língua Portuguesa", - "formato": "Livro Impresso", - "autor": "Wagner Azevedo", - "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eMNQM_p_gm.json" - }, - "68745/eMm5p": { - "título": "Dicionário das 1000 Expressões Inéditas na Língua Portuguesa do Brasil", - "formato": "Livro Digital (online)", - "autor": "Wagner Azevedo", - "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eMm5p.json" - }, - "68745/eMm5p.g4": { - "título": "Dicionário das 1000 Expressões Ineddar na Língua Portuguesa do Brasil", - "formato": "Livro Impresso", - "autor": "Wagner Azevedo", - "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eMm5p_p_g4.json" - }, - "68745/eMMN2": { - "título": "Figuras de Linguagem", - "formato": "Coleção de Livros Digitais (online) com Volumes também em Versões Impressas", - "autor": "Wagner Azevedo", - "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eMMN2.json" - }, - "68745/eMMN2/f6": { - "título": "Dicionário de Pleonasmo", - "formato": "Livro Digital (online)", - "autor": "Wagner Azevedo", - "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eMMN2_b_f6.json" - }, - "68745/eMMN2/f6.b9": { - "título": "Dicionário de Pleonasmo", - "formato": "Livro Impresso", - "autor": "Wagner Azevedo", - "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eMMN2_b_f6_p_b9.json" - }, - "68745/eMMN2/TD": { - "título": "Dicionário de Antanáclases", - "formato": "Livro Digital (online)", - "autor": "Wagner Azevedo", - "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eMMN2_b_TD.json" - }, - "68745/eMMN2/TD.qR": { - "título": "Dicionário de Antanáclases", - "formato": "Livro Impresso", - "autor": "Wagner Azevedo", - "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eMMN2_b_TD_p_qR.json" - }, - "68745/eMMN2/DB": { - "título": "Dicionário de Antonomásia", - "formato": "Livro Digital (online)", - "autor": "Wagner Azevedo", - "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eMMN2_b_DB.json" - }, - "68745/eMMN2/DB.n4": { - "título": "Dicionário de Antonomásia", - "formato": "Livro Impresso", - "autor": "Wagner Azevedo", - "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eMMN2_b_DB_p_n4.json" - }, - "68745/eM37B": { - "título": "Escritores Brasileiros", - "formato": "Coleção de Livros Digitais (online) com Volumes também em Versões Impressas", - "autor": "Wagner Azevedo", - "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eM37B.json" - }, - "68745/eM37b/qQ": { - "título": "Dicionário de Onomatopeias e Vocábulos Expressivos de Carlos Drummond de Andrade", - "formato": "Livro Digital (online)", - "autor": "Wagner Azevedo", - "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eM37B_b_qQ.json" - }, - "68745/eM37B/qQ.7D": { - "título": "Dicionário de Onomatopeias e Vocábulos Expressivos de Carlos Drummond de Andrade", - "formato": "Livro Impresso", - "autor": "Wagner Azevedo", - "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eM37B_b_qQ_p_7D.json" - }, - "68745/eMNBr": { - "título": "Dicionário de Onomatopeias e Vocábulos Expressivos", - "formato": "Livro Digital (online)", - "autor": "Wagner Azevedo", - "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eMNBr.json" - }, - "68745/eMNBr.Bh": { - "título": "Dicionário de Onomatopeias e Vocábulos Expressivos", - "formato": "Livro Impresso", - "autor": "Wagner Azevedo", - "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eMNBr_p_Bh.json" - }, - "68745/eMJh3": { - "título": "Coleção Compositores da MPB", - "formato": "Coleção de Livros Digitais (online) com Volumes também em Versões Impressas – Nenhum Volume Publicado Ainda", - "autor": "Wagner Azevedo", - "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eMJh3.json" - }, - "68745/eMJh3/8N": { - "título": "Dicionário De Nomes Nas Canções De Caetano Veloso", - "formato": "Livro Digital (online) quando for publicado", - "autor": "Wagner Azevedo", - "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eMJh3_b_8N.json" - }, - "68745/eMJh3/mr": { - "título": "Dicionário De Nomes Nas Canções De Gilberto Gil", - "formato": "Livro Digital (online) quando for publicado", - "autor": "Wagner Azevedo", - "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eMJh3_b_mr.json" - } - } \ No newline at end of file + "68745/eM485": { + "título": "Dicionários de Significados Alterados", + "formato": "Coleção de Livros Digitais (online) com Volumes também em Versões Impressas", + "autor": "Wagner Azevedo", + "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eM485.json" + }, + "68745/eM485/B6": { + "título": "Dicionário de Plantas com Outros Significados", + "formato": "Livro Digital (online)", + "autor": "Wagner Azevedo", + "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eM485_b_B6.json" + }, + "68745/eM485/B6.NT": { + "título": "Dicionário de Plantas com Outros Significados", + "formato": "Livro Impresso", + "autor": "Wagner Azevedo", + "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eM485_b_B6_p_NT.json" + }, + "68745/eM485/33": { + "título": "Dicionário de Números com Outros Significados", + "formato": "Livro Digital (online)", + "autor": "Wagner Azevedo", + "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eM485_b_33.json" + }, + "68745/eM485/33.37": { + "título": "Dicionário de Números com Outros Significados", + "formato": "Livro Impresso", + "autor": "Wagner Azevedo", + "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eM485_b_33_p_37.json" + }, + "68745/eMR8J.4N": { + "título": "As funções trigonométricas circulares e hiperbólicas", + "formato": "Livro Impresso", + "autor": "Sandro Marcos Guzzo", + "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eMR8J_p_4N.json" + }, + "68745/eMR8J": { + "título": "As funções trigonométricas circulares e hiperbólicas", + "formato": "Livro Digital (online)", + "autor": "Sandro Marcos Guzzo", + "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eMR8J.json" + }, + "68745/eMPTN.f7": { + "título": "As fábulas: O lobo e o cordeiro, A raposa e as uvas", + "formato": "Livro Impresso", + "autor": "Padre Marcos André, Márcio Moitinha", + "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eMPTN_p_f7.json" + }, + "68745/eMPTN": { + "título": "As fábulas: O lobo e o cordeiro, A raposa e as uvas", + "formato": "Livro Digital (online)", + "autor": "Padre Marcos André, Márcio Moitinha", + "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eMPTN.json" + }, + "68745/eMdbp.tm": { + "título": "Jean: entre jogos e brincadeiras", + "formato": "Livro Impresso", + "autor": "Diullye Miola (Autora e organizadora), Demitry Wallace dos Santos (Autor e Ilustrador), Guilherme Bigilini, Gustavo Cosmo Rodrigues, Helena Sgarbi de Oliveira, Isabella de Morais Santos, João Pedro Miranda FernandesLucas Pietruszynski de Souza, Mariana Martins Meyer, Mateus Possa Tonini, Murilo Pompeu Brandalize Nascimento", + "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eMdbp_p_tm.json" + }, + "68745/eMdbp": { + "título": "Jean: entre jogos e brincadeiras", + "formato": "Livro Digital (online)", + "autor": "Diullye Miola (Autora e organizadora), Demitry Wallace dos Santos (Autor e Ilustrador), Guilherme Bigilini, Gustavo Cosmo Rodrigues, Helena Sgarbi de Oliveira, Isabella de Morais Santos, João Pedro Miranda FernandesLucas Pietruszynski de Souza, Mariana Martins Meyer, Mateus Possa Tonini, Murilo Pompeu Brandalize Nascimento", + "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eMdbp.json" + }, + "68745/eM37B/TM.nG": { + "título": "Dicionário de Onomatopeias e Vocábulos Expressivos de Monteiro Lobato", + "formato": "Livro Impresso", + "autor": "Wagner Azevedo", + "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eM37B_b_TM_p_nG.json" + }, + "68745/eM37B/TM": { + "título": "Dicionário de Onomatopeias e Vocábulos Expressivos de Monteiro Lobato", + "formato": "Livro Digital (online)", + "autor": "Wagner Azevedo", + "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eM37B_b_TM.json" + }, + "68745/eM37B/pM": { + "título": "Dicionário de Onomatopeias e Neologismos de Mário de Andrade", + "formato": "Livro Digital (online)", + "autor": "Wagner Azevedo", + "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eM37B_b_pM.json" + }, + "68745/eM37B/pM.MG": { + "título": "Dicionário de Onomatopeias e Neologismos de Mário de Andrade", + "formato": "Livro Impresso", + "autor": "Wagner Azevedo", + "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eM37B_b_pM_p_MG.json" + }, + "68745/eMNQM": { + "título": "Dicionário de Vocábulos Populares da Língua Portuguesa", + "formato": "Livro Digital (online)", + "autor": "Wagner Azevedo", + "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eMNQM.json" + }, + "68745/eMNQM.gm": { + "título": "Dicionário de Vocábulos Populares da Língua Portuguesa", + "formato": "Livro Impresso", + "autor": "Wagner Azevedo", + "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eMNQM_p_gm.json" + }, + "68745/eMm5p": { + "título": "Dicionário das 1000 Expressões Inéditas na Língua Portuguesa do Brasil", + "formato": "Livro Digital (online)", + "autor": "Wagner Azevedo", + "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eMm5p.json" + }, + "68745/eMm5p.g4": { + "título": "Dicionário das 1000 Expressões Ineddar na Língua Portuguesa do Brasil", + "formato": "Livro Impresso", + "autor": "Wagner Azevedo", + "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eMm5p_p_g4.json" + }, + "68745/eMMN2": { + "título": "Figuras de Linguagem", + "formato": "Coleção de Livros Digitais (online) com Volumes também em Versões Impressas", + "autor": "Wagner Azevedo", + "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eMMN2.json" + }, + "68745/eMMN2/f6": { + "título": "Dicionário de Pleonasmo", + "formato": "Livro Digital (online)", + "autor": "Wagner Azevedo", + "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eMMN2_b_f6.json" + }, + "68745/eMMN2/f6.b9": { + "título": "Dicionário de Pleonasmo", + "formato": "Livro Impresso", + "autor": "Wagner Azevedo", + "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eMMN2_b_f6_p_b9.json" + }, + "68745/eMMN2/TD": { + "título": "Dicionário de Antanáclases", + "formato": "Livro Digital (online)", + "autor": "Wagner Azevedo", + "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eMMN2_b_TD.json" + }, + "68745/eMMN2/TD.qR": { + "título": "Dicionário de Antanáclases", + "formato": "Livro Impresso", + "autor": "Wagner Azevedo", + "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eMMN2_b_TD_p_qR.json" + }, + "68745/eMMN2/DB": { + "título": "Dicionário de Antonomásia", + "formato": "Livro Digital (online)", + "autor": "Wagner Azevedo", + "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eMMN2_b_DB.json" + }, + "68745/eMMN2/DB.n4": { + "título": "Dicionário de Antonomásia", + "formato": "Livro Impresso", + "autor": "Wagner Azevedo", + "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eMMN2_b_DB_p_n4.json" + }, + "68745/eM37B": { + "título": "Escritores Brasileiros", + "formato": "Coleção de Livros Digitais (online) com Volumes também em Versões Impressas", + "autor": "Wagner Azevedo", + "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eM37B.json" + }, + "68745/eM37b/qQ": { + "título": "Dicionário de Onomatopeias e Vocábulos Expressivos de Carlos Drummond de Andrade", + "formato": "Livro Digital (online)", + "autor": "Wagner Azevedo", + "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eM37B_b_qQ.json" + }, + "68745/eM37B/qQ.7D": { + "título": "Dicionário de Onomatopeias e Vocábulos Expressivos de Carlos Drummond de Andrade", + "formato": "Livro Impresso", + "autor": "Wagner Azevedo", + "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eM37B_b_qQ_p_7D.json" + }, + "68745/eMNBr": { + "título": "Dicionário de Onomatopeias e Vocábulos Expressivos", + "formato": "Livro Digital (online)", + "autor": "Wagner Azevedo", + "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eMNBr.json" + }, + "68745/eMNBr.Bh": { + "título": "Dicionário de Onomatopeias e Vocábulos Expressivos", + "formato": "Livro Impresso", + "autor": "Wagner Azevedo", + "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eMNBr_p_Bh.json" + }, + "68745/eMJh3": { + "título": "Coleção Compositores da MPB", + "formato": "Coleção de Livros Digitais (online) com Volumes também em Versões Impressas – Nenhum Volume Publicado Ainda", + "autor": "Wagner Azevedo", + "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eMJh3.json" + }, + "68745/eMJh3/8N": { + "título": "Dicionário De Nomes Nas Canções De Caetano Veloso", + "formato": "Livro Digital (online) quando for publicado", + "autor": "Wagner Azevedo", + "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eMJh3_b_8N.json" + }, + "68745/eMJh3/mr": { + "título": "Dicionário De Nomes Nas Canções De Gilberto Gil", + "formato": "Livro Digital (online) quando for publicado", + "autor": "Wagner Azevedo", + "link_metadados": "https://ark.livro.online/ark_dp_68745_b_eMJh3_b_mr.json" + } +} \ No newline at end of file diff --git a/ark_lista.yml b/ark_lista.yml index ef72a98..e164f9b 100644 --- a/ark_lista.yml +++ b/ark_lista.yml @@ -1,203 +1,179 @@ -"68745/eM485": +68745/eM485: título: Dicionários de Significados Alterados formato: Coleção de Livros Digitais (online) com Volumes também em Versões Impressas autor: Wagner Azevedo link_metadados: https://ark.livro.online/ark_dp_68745_b_eM485.yml - -"68745/eM485/B6": +68745/eM485/B6: título: Dicionário de Plantas com Outros Significados formato: Livro Digital (online) autor: Wagner Azevedo link_metadados: https://ark.livro.online/ark_dp_68745_b_eM485_b_B6.yml - -"68745/eM485/B6.NT": +68745/eM485/B6.NT: título: Dicionário de Plantas com Outros Significados formato: Livro Impresso autor: Wagner Azevedo link_metadados: https://ark.livro.online/ark_dp_68745_b_eM485_b_B6_p_NT.yml - -"68745/eM485/33": - título : "Dicionário de Números com Outros Significados" +68745/eM485/33: + título: Dicionário de Números com Outros Significados formato: Livro Digital (online) autor: Wagner Azevedo link_metadados: https://ark.livro.online/ark_dp_68745_b_eM485_b_33.yml - -"68745/eM485/33.37": - título : "Dicionário de Números com Outros Significados" +68745/eM485/33.37: + título: Dicionário de Números com Outros Significados formato: Livro Impresso autor: Wagner Azevedo link_metadados: https://ark.livro.online/ark_dp_68745_b_eM485_b_33_p_37.yml - -"68745/eMR8J.4N": - título: "As funções trigonométricas circulares e hiperbólicas" +68745/eMR8J.4N: + título: As funções trigonométricas circulares e hiperbólicas formato: Livro Impresso autor: Sandro Marcos Guzzo link_metadados: https://ark.livro.online/ark_dp_68745_b_eMR8J_p_4N.yml - -"68745/eMR8J": +68745/eMR8J: título: As funções trigonométricas circulares e hiperbólicas formato: Livro Digital (online) autor: Sandro Marcos Guzzo link_metadados: https://ark.livro.online/ark_dp_68745_b_eMR8J.yml - -"68745/eMPTN.f7": - título: "As fábulas: O lobo e o cordeiro, A raposa e as uvas" +68745/eMPTN.f7: + título: 'As fábulas: O lobo e o cordeiro, A raposa e as uvas' formato: Livro Impresso autor: Padre Marcos André, Márcio Moitinha link_metadados: https://ark.livro.online/ark_dp_68745_b_eMPTN_p_f7.yml - -"68745/eMPTN": - título: "As fábulas: O lobo e o cordeiro, A raposa e as uvas" +68745/eMPTN: + título: 'As fábulas: O lobo e o cordeiro, A raposa e as uvas' formato: Livro Digital (online) autor: Padre Marcos André, Márcio Moitinha link_metadados: https://ark.livro.online/ark_dp_68745_b_eMPTN.yml - -"68745/eMdbp.tm": - título: "Jean: entre jogos e brincadeiras" +68745/eMdbp.tm: + título: 'Jean: entre jogos e brincadeiras' formato: Livro Impresso - autor: Diullye Miola (Autora e organizadora), Demitry Wallace dos Santos (Autor e Ilustrador), Guilherme Bigilini, Gustavo Cosmo Rodrigues, Helena Sgarbi de Oliveira, Isabella de Morais Santos, João Pedro Miranda FernandesLucas Pietruszynski de Souza, Mariana Martins Meyer, Mateus Possa Tonini, Murilo Pompeu Brandalize Nascimento + autor: Diullye Miola (Autora e organizadora), Demitry Wallace dos Santos (Autor + e Ilustrador), Guilherme Bigilini, Gustavo Cosmo Rodrigues, Helena Sgarbi de Oliveira, + Isabella de Morais Santos, João Pedro Miranda FernandesLucas Pietruszynski de + Souza, Mariana Martins Meyer, Mateus Possa Tonini, Murilo Pompeu Brandalize Nascimento link_metadados: https://ark.livro.online/ark_dp_68745_b_eMdbp_p_tm.yml - -"68745/eMdbp": - título: "Jean: entre jogos e brincadeiras" +68745/eMdbp: + título: 'Jean: entre jogos e brincadeiras' formato: Livro Digital (online) - autor: Diullye Miola (Autora e organizadora), Demitry Wallace dos Santos (Autor e Ilustrador), Guilherme Bigilini, Gustavo Cosmo Rodrigues, Helena Sgarbi de Oliveira, Isabella de Morais Santos, João Pedro Miranda FernandesLucas Pietruszynski de Souza, Mariana Martins Meyer, Mateus Possa Tonini, Murilo Pompeu Brandalize Nascimento + autor: Diullye Miola (Autora e organizadora), Demitry Wallace dos Santos (Autor + e Ilustrador), Guilherme Bigilini, Gustavo Cosmo Rodrigues, Helena Sgarbi de Oliveira, + Isabella de Morais Santos, João Pedro Miranda FernandesLucas Pietruszynski de + Souza, Mariana Martins Meyer, Mateus Possa Tonini, Murilo Pompeu Brandalize Nascimento link_metadados: https://ark.livro.online/ark_dp_68745_b_eMdbp.yml - -"68745/eM37B/TM.nG": +68745/eM37B/TM.nG: título: Dicionário de Onomatopeias e Vocábulos Expressivos de Monteiro Lobato formato: Livro Impresso autor: Wagner Azevedo link_metadados: https://ark.livro.online/ark_dp_68745_b_eM37B_b_TM_p_nG.yml - -"68745/eM37B/TM": +68745/eM37B/TM: título: Dicionário de Onomatopeias e Vocábulos Expressivos de Monteiro Lobato formato: Livro Digital (online) autor: Wagner Azevedo link_metadados: https://ark.livro.online/ark_dp_68745_b_eM37B_b_TM.yml - -"68745/eM37B/pM": +68745/eM37B/pM: título: Dicionário de Onomatopeias e Neologismos de Mário de Andrade formato: Livro Digital (online) autor: Wagner Azevedo link_metadados: https://ark.livro.online/ark_dp_68745_b_eM37B_b_pM.yml - -"68745/eM37B/pM.MG": +68745/eM37B/pM.MG: título: Dicionário de Onomatopeias e Neologismos de Mário de Andrade formato: Livro Impresso autor: Wagner Azevedo link_metadados: https://ark.livro.online/ark_dp_68745_b_eM37B_b_pM_p_MG.yml - -"68745/eMNQM": +68745/eMNQM: título: Dicionário de Vocábulos Populares da Língua Portuguesa formato: Livro Digital (online) autor: Wagner Azevedo link_metadados: https://ark.livro.online/ark_dp_68745_b_eMNQM.yml - -"68745/eMNQM.gm": +68745/eMNQM.gm: título: Dicionário de Vocábulos Populares da Língua Portuguesa formato: Livro Impresso autor: Wagner Azevedo link_metadados: https://ark.livro.online/ark_dp_68745_b_eMNQM_p_gm.yml - -"68745/eMm5p": +68745/eMm5p: título: Dicionário das 1000 Expressões Inéditas na Língua Portuguesa do Brasil formato: Livro Digital (online) autor: Wagner Azevedo link_metadados: https://ark.livro.online/ark_dp_68745_b_eMm5p.yml - -"68745/eMm5p.g4": +68745/eMm5p.g4: título: Dicionário das 1000 Expressões Ineddar na Língua Portuguesa do Brasil formato: Livro Impresso autor: Wagner Azevedo link_metadados: https://ark.livro.online/ark_dp_68745_b_eMm5p_p_g4.yml - -"68745/eMMN2": +68745/eMMN2: título: Figuras de Linguagem formato: Coleção de Livros Digitais (online) com Volumes também em Versões Impressas autor: Wagner Azevedo link_metadados: https://ark.livro.online/ark_dp_68745_b_eMMN2.yml - -"68745/eMMN2/f6": +68745/eMMN2/f6: título: Dicionário de Pleonasmo formato: Livro Digital (online) autor: Wagner Azevedo link_metadados: https://ark.livro.online/ark_dp_68745_b_eMMN2_b_f6.yml - -"68745/eMMN2/f6.b9": +68745/eMMN2/f6.b9: título: Dicionário de Pleonasmo formato: Livro Impresso autor: Wagner Azevedo link_metadados: https://ark.livro.online/ark_dp_68745_b_eMMN2_b_f6_p_b9.yml - -"68745/eMMN2/TD": +68745/eMMN2/TD: título: Dicionário de Antanáclases formato: Livro Digital (online) autor: Wagner Azevedo link_metadados: https://ark.livro.online/ark_dp_68745_b_eMMN2_b_TD.yml - -"68745/eMMN2/TD.qR": +68745/eMMN2/TD.qR: título: Dicionário de Antanáclases formato: Livro Impresso autor: Wagner Azevedo link_metadados: https://ark.livro.online/ark_dp_68745_b_eMMN2_b_TD_p_qR.yml - -"68745/eMMN2/DB": +68745/eMMN2/DB: título: Dicionário de Antonomásia formato: Livro Digital (online) autor: Wagner Azevedo link_metadados: https://ark.livro.online/ark_dp_68745_b_eMMN2_b_DB.yml - -"68745/eMMN2/DB.n4": +68745/eMMN2/DB.n4: título: Dicionário de Antonomásia formato: Livro Impresso autor: Wagner Azevedo link_metadados: https://ark.livro.online/ark_dp_68745_b_eMMN2_b_DB_p_n4.yml - -"68745/eM37B": +68745/eM37B: título: Escritores Brasileiros formato: Coleção de Livros Digitais (online) com Volumes também em Versões Impressas autor: Wagner Azevedo link_metadados: https://ark.livro.online/ark_dp_68745_b_eM37B.yml - -"68745/eM37b/qQ": - título: Dicionário de Onomatopeias e Vocábulos Expressivos de Carlos Drummond de Andrade +68745/eM37b/qQ: + título: Dicionário de Onomatopeias e Vocábulos Expressivos de Carlos Drummond de + Andrade formato: Livro Digital (online) autor: Wagner Azevedo - link_metadados: https://ark.livro.online/ark_dp_68745_b_eM37B_b_qQ.yml - -"68745/eM37B/qQ.7D": - título: Dicionário de Onomatopeias e Vocábulos Expressivos de Carlos Drummond de Andrade + link_metadados: https://ark.livro.online/ark_dp_68745_b_eM37B_b_qQ.yml +68745/eM37B/qQ.7D: + título: Dicionário de Onomatopeias e Vocábulos Expressivos de Carlos Drummond de + Andrade formato: Livro Impresso autor: Wagner Azevedo link_metadados: https://ark.livro.online/ark_dp_68745_b_eM37B_b_qQ_p_7D.yml - -"68745/eMNBr": +68745/eMNBr: título: Dicionário de Onomatopeias e Vocábulos Expressivos formato: Livro Digital (online) autor: Wagner Azevedo link_metadados: https://ark.livro.online/ark_dp_68745_b_eMNBr.yml - -"68745/eMNBr.Bh": +68745/eMNBr.Bh: título: Dicionário de Onomatopeias e Vocábulos Expressivos formato: Livro Impresso autor: Wagner Azevedo link_metadados: https://ark.livro.online/ark_dp_68745_b_eMNBr_p_Bh.yml - -"68745/eMJh3": +68745/eMJh3: título: Coleção Compositores da MPB - formato: Coleção de Livros Digitais (online) com Volumes também em Versões Impressas – Nenhum Volume Publicado Ainda + formato: Coleção de Livros Digitais (online) com Volumes também em Versões Impressas + – Nenhum Volume Publicado Ainda autor: Wagner Azevedo link_metadados: https://ark.livro.online/ark_dp_68745_b_eMJh3.yml - -"68745/eMJh3/8N": +68745/eMJh3/8N: título: Dicionário De Nomes Nas Canções De Caetano Veloso formato: Livro Digital (online) quando for publicado autor: Wagner Azevedo link_metadados: https://ark.livro.online/ark_dp_68745_b_eMJh3_b_8N.yml - -"68745/eMJh3/mr": +68745/eMJh3/mr: título: Dicionário De Nomes Nas Canções De Gilberto Gil formato: Livro Digital (online) quando for publicado autor: Wagner Azevedo - link_metadados: https://ark.livro.online/ark_dp_68745_b_eMJh3_b_mr.yml \ No newline at end of file + link_metadados: https://ark.livro.online/ark_dp_68745_b_eMJh3_b_mr.yml diff --git a/gerar_ark.py b/gerar_ark.py index 46fcb14..b8f0fd4 100644 --- a/gerar_ark.py +++ b/gerar_ark.py @@ -24,7 +24,9 @@ def main(): config_geral = { "prefixo": "eM", # Você pode escolher o melhor para você ou deixar uma string vazia se não quiser usar prefixo - "qtde_digitos": 3, # Quantidade de dígitos sem contar o prefixo. Na Editora Moan estamos usando 3, mas você pode mudar de acordo com suas necessidades + "qtde_digitos_ark_nivel_1": 3, # Quantidade de dígitos sem contar o prefixo. Na Editora Moan estamos usando 3, mas você pode mudar de acordo com suas necessidades + "qtde_digitos_ark_nivel_2": 2, # Quantidade de dígitos para um ARK filho. Na Editora Moan estamos usando 2, mas você pode mudar de acordo com suas necessidades + "qtde_digitos_ark_nivel_3": 2, # Quantidade de dígitos para um ARK de variação. Na Editora Moan estamos usando 2, mas você pode mudar de acordo com suas necessidades "naan": "68745", # NAAN da Editora Moan na Ark Alliance "simbolos": "23456789bBdDfFgGhHjJmMnNpPqQrRtT", # Símbolos permitidos na geração do ark. Sinta-se a vontade, se quiser mudar. "pasta_yaml": "yaml", # Nome da pasta em que o programa verificará se já existe o ARK gerado. Nessa pasta, são armazenados os metadados em yaml do ARK gerado @@ -80,13 +82,13 @@ def main(): elif func == "2": - atualizar_identificador_ARK() + atualizar_identificador_ARK(config_geral, metadados) -def filtrar(config_geral, ark): +def filtrar(ark): # essa função transforma o identificador ARK na forma em que os arquivos ARK são nomeados. Um ark pode ter ":" (dois pontos), "/" (barra) ou "." (ponto). Mas isso, em um nome de arquivo atrapalha a url. Assim, transformaremos : em _dp_, / em _b_ e . em _p_. @@ -106,8 +108,6 @@ def criar_identificador_ARK(config_geral, metadados, nivel, ark_pai=None): # pegando as configurações gerais prefixo = config_geral["prefixo"] - qtde_digitos = config_geral["qtde_digitos"] - naan = config_geral["naan"] simbolos = config_geral["simbolos"] @@ -122,82 +122,222 @@ def criar_identificador_ARK(config_geral, metadados, nivel, ark_pai=None): - # criando o ARK de nível 1 - if nivel == "1": + + - print(BLUE+"\nCriando o identificador ARK...\n"+RESET) + print(BLUE+"\nCriando o identificador ARK...\n"+RESET) - while True: + while True: + + # criando o ARK de nível 1 + if nivel == "1": ark = naan + "/" + prefixo + qtde_digitos = config_geral["qtde_digitos_ark_nivel_1"] - for i in range(qtde_digitos): - numero_sorteado = random.randint(0, 31) + # criando o ARK de nível 2, o u qualquer nível conforme o ark_pai passado + elif nivel == "2": - ark += simbolos[numero_sorteado] + ark = naan + "/" + ark_pai + "/" + + qtde_digitos = config_geral["qtde_digitos_ark_nivel_2"] + + + + # criando o ARK de variação + elif nivel == "3": + + ark = naan + "/" + ark_pai + "." + + qtde_digitos = config_geral["qtde_digitos_ark_nivel_3"] + + + + + for i in range(qtde_digitos): + + numero_sorteado = random.randint(0, 31) + + ark += simbolos[numero_sorteado] - ark_filtrado = filtrar(config_geral, ark) + ark_filtrado = filtrar(ark) - nome_arquivo_ark_yml = ark_filtrado + ".yml" + nome_arquivo_ark_yml = ark_filtrado + ".yml" - caminho_completo_gravacao_yml = os.path.join(pasta_yaml, nome_arquivo_ark_yml) + caminho_completo_gravacao_yml = os.path.join(pasta_yaml, nome_arquivo_ark_yml) - # Verificar se o arquivo já existe na pasta yaml. Se existir, gerar um novo identificador ARK. Agora, se não existir, pega o caminho do metadados e cria o arquivo, lançando a mensagem de ARK criado com sucesso... + # Verificar se o arquivo já existe na pasta yaml. Se existir, gerar um novo identificador ARK. Agora, se não existir, pega o caminho do metadados e cria o arquivo, lançando a mensagem de ARK criado com sucesso... - if os.path.exists(caminho_completo_gravacao_yml): + if os.path.exists(caminho_completo_gravacao_yml): - print(RED+f"\nO identificador 'ark:{ark}' já existe. \nVamos gerar outro. Aguarde...\n"+RESET) + print(RED+f"\nO identificador 'ark:{ark}' já existe. \nVamos gerar outro. Aguarde...\n"+RESET) - continue + continue - else: + else: - # Verifique se o arquivo YAML com os metadados para gerar o ARK existe. Aqui na Editora Moan, usamos o arquivo _quarto.yml - if not os.path.exists(metadados): + # Verifique se o arquivo YAML com os metadados para gerar o ARK existe. Aqui na Editora Moan, usamos o arquivo _quarto.yml + if not os.path.exists(metadados): - print(RED+"\nArquivo YAML não encontrado.\n"+RESET) + print(RED+"\nArquivo YAML não encontrado.\n"+RESET) - time.sleep(2) + time.sleep(2) - break + break - # Mensagem de ARK criado com sucesso. Iniciando a gravação dos metadados... - print(GREEN+f"\nO identificador 'ark:{ark}' foi criado com sucesso!\n\nAgora vamos gravar os metadados e gerar os arquivos nas pastas correspondentes... Aguarde...\n"+RESET) + # Mensagem de ARK criado com sucesso. Iniciando a gravação dos metadados... + print(GREEN+f"\nO identificador 'ark:{ark}' foi criado com sucesso!\n\nAgora vamos gravar os metadados e gerar os arquivos nas pastas correspondentes... Aguarde...\n"+RESET) - time.sleep(1) + time.sleep(1) - # Carregue o arquivo YAML - with open(metadados, 'r', encoding='utf-8') as arquivo_yaml: + # Carregue o arquivo YAML + with open(metadados, 'r', encoding='utf-8') as arquivo_yaml: - dados_yaml = yaml.load(arquivo_yaml, Loader=yaml.FullLoader) + dados_yaml = yaml.load(arquivo_yaml, Loader=yaml.FullLoader) - # Verifique se 'chave_primaria_yaml' (no caso da Editora Moan, ela é moan-dados) existe e 'ark' não existe dentro dele - if chave_primaria_yaml in dados_yaml and 'ark' not in dados_yaml[chave_primaria_yaml]: + # Verifique se 'chave_primaria_yaml' (no caso da Editora Moan, ela é moan-dados) existe e 'ark' não existe dentro dele + if chave_primaria_yaml in dados_yaml and 'ark' not in dados_yaml[chave_primaria_yaml]: + + + # As chaves 'título', 'formato' e 'autor' são obrigatorias para geração de identificador ARK + if 'título' in dados_yaml[chave_primaria_yaml] and 'formato' in dados_yaml[chave_primaria_yaml] and 'autor' in dados_yaml[chave_primaria_yaml]: + # Adicione 'ark' ao 'chave_primaria_yaml' com o valor de ark. Quero que o ark seja a primeira chave, por isso coloquei da forma que está abaixo dados_yaml[chave_primaria_yaml] = {'ark' : ark, **dados_yaml[chave_primaria_yaml]} + + + # Salve os dados atualizados no arquivo original with open(metadados, 'w', encoding='utf-8') as arquivo_yaml: yaml.dump(dados_yaml, arquivo_yaml, default_style='', sort_keys=False, allow_unicode=True) + # Crie um novo dicionário contendo apenas os dados da chave_primaria_yaml 'moan-dados' + metadados_yaml_a_gravar = dados_yaml[chave_primaria_yaml] + + + + # Salve os dados atualizados em um novo arquivo YAML + with open(caminho_completo_gravacao_yml, 'w', encoding='utf-8') as novo_arquivo_yaml: + + yaml.dump(metadados_yaml_a_gravar, novo_arquivo_yaml, default_style='', sort_keys=False, allow_unicode=True, default_flow_style=False) + + + + # Resumo dos metadados em YAML + metadados_resumo_yaml_a_gravar = {dados_yaml[chave_primaria_yaml]['ark']: + + { + + 'título': dados_yaml[chave_primaria_yaml]['título'], + 'formato': dados_yaml[chave_primaria_yaml]['formato'], + 'autor': dados_yaml[chave_primaria_yaml]['autor'], + + } + + } + + + #pega o diretório atual + diretorio_atual = os.getcwd() + + caminho_completo_yaml_existente = os.path.join(diretorio_atual, "ark_lista.yml") + + + # Abre o arquivo YAML existente em modo de leitura + with open(caminho_completo_yaml_existente, 'r', encoding='utf-8') as arquivo_yaml_existente: + + # Carrega o conteúdo do arquivo YAML existente + dados_yaml_existente = yaml.load(arquivo_yaml_existente, Loader=yaml.FullLoader) + + + + # Atualiza com os dados novos + dados_yaml_existente.update(metadados_resumo_yaml_a_gravar) + + + # Salve o resumo dos metadados em um novo arquivo YAML + with open(caminho_completo_yaml_existente, 'w', encoding='utf-8') as arquivo_yaml_existente: + + yaml.dump(dados_yaml_existente, arquivo_yaml_existente, default_style='', sort_keys=False, allow_unicode=True, default_flow_style=False) + + + + # Converta os dados para JSON + metadados_json_a_gravar = json.dumps(dados_yaml[chave_primaria_yaml], ensure_ascii=False, indent=2) + + + + # Salve os dados JSON em um arquivo JSON + caminho_completo_gravacao_json = os.path.join(pasta_json, ark_filtrado + '.json') + + with open(caminho_completo_gravacao_json, 'w', encoding='utf-8') as novo_arquivo_json: + + novo_arquivo_json.write(metadados_json_a_gravar) + + + + + + + # Resumo dos metadados em JSON + metadados_resumo_json_a_gravar = { + + dados_yaml[chave_primaria_yaml]['ark']: { + + 'título': dados_yaml[chave_primaria_yaml]['título'], + 'formato': dados_yaml[chave_primaria_yaml]['formato'], + 'autor': dados_yaml[chave_primaria_yaml]['autor'], + + } + } + + + # Caminho completo para o arquivo JSON existente + caminho_completo_json_existente = os.path.join(diretorio_atual, "ark_lista.json") + + # Abre o arquivo JSON existente em modo de leitura + with open(caminho_completo_json_existente, 'r', encoding='utf-8') as arquivo_json_existente: + + # Carrega o conteúdo do arquivo JSON existente + dados_json_existente = json.load(arquivo_json_existente) + + # Atualiza com os dados novos + dados_json_existente.update(metadados_resumo_json_a_gravar) + + # Salve o resumo dos metadados em um novo arquivo JSON + with open(caminho_completo_json_existente, 'w', encoding='utf-8') as arquivo_json_existente: + + json.dump(dados_json_existente, arquivo_json_existente, ensure_ascii=False, indent=2) + + + + + + + print(BLUE+f"\n*********************\n*********************\n\n"+GREEN+"O identificador "+YELLOW+f"'ark:{ark}'"+GREEN+" foi criado com sucesso e os seus "+YELLOW+"metadados foram gravados.\n\n"+BLUE+"*********************\n*********************\n"+RESET) + + time.sleep(2) + + break + + else: - # Ou a chave moan-dados não foi configurada no arquivo YAML com os metadados (o arquivo _quarto.yml, no caso da Editora Moan), ou então a chave ark já existe, o que indica que você deve usar a função de atualizar, e não gerar um novo ARK. - - print(RED+f"\nOu a chave chave_primaria_yaml, que está registrada como {chave_primaria_yaml} no dicionário Python config_geral no início da função main, não foi configurada no arquivo YAML com os metadados (o arquivo _quarto.yml, no caso da Editora Moan), ou então a chave ark já existe, o que indica que você deve usar a função de atualizar, e não gerar um novo ARK.\n"+RESET) + print(RED+f"\nAs chaves 'título', 'formato' e 'autor' são obrigatorias para geração de identificador ARK.\n"+RESET) time.sleep(2) @@ -205,46 +345,163 @@ def criar_identificador_ARK(config_geral, metadados, nivel, ark_pai=None): - # Crie um novo dicionário contendo apenas os dados da chave_primaria_yaml 'moan-dados' - metadados_yaml_a_gravar = dados_yaml[chave_primaria_yaml] + + else: - # Salve os dados atualizados em um novo arquivo YAML - with open(caminho_completo_gravacao_yml, 'w', encoding='utf-8') as novo_arquivo_yaml: + # Ou a chave moan-dados não foi configurada no arquivo YAML com os metadados (o arquivo _quarto.yml, no caso da Editora Moan), ou então a chave ark já existe, o que indica que você deve usar a função de atualizar, e não gerar um novo ARK. - yaml.dump(metadados_yaml_a_gravar, novo_arquivo_yaml, default_style='', sort_keys=False, allow_unicode=True, default_flow_style=False) - - - - # Converta os dados para JSON - metadados_json_a_gravar = json.dumps(dados_yaml[chave_primaria_yaml], ensure_ascii=False, indent=2) - - - - # Salve os dados JSON em um arquivo JSON - caminho_completo_gravacao_json = os.path.join(pasta_json, ark_filtrado + '.json') - - with open(caminho_completo_gravacao_json, 'w', encoding='utf-8') as novo_arquivo_json: - - novo_arquivo_json.write(metadados_json_a_gravar) - - - - print(BLUE+f"\n*********************\n*********************\n\n"+GREEN+"O identificador "+YELLOW+f"'ark:{ark}'"+GREEN+" foi criado com sucesso e os seus "+YELLOW+"metadados foram gravados.\n\n"+BLUE+"*********************\n*********************\n"+RESET) + print(RED+f"\nOu a chave chave_primaria_yaml, que está registrada como {chave_primaria_yaml} no dicionário Python config_geral no início da função main, não foi configurada no arquivo YAML com os metadados (o arquivo _quarto.yml, no caso da Editora Moan), ou então a chave ark já existe, o que indica que você deve usar a função de atualizar, e não gerar um novo ARK.\n"+RESET) time.sleep(2) break + -def atualizar_identificador_ARK(): +def atualizar_identificador_ARK(config_geral, arquivo_atualizado): - print("Função de atualização de identificador ARK") + # pegando as configurações gerais + pasta_yaml = config_geral["pasta_yaml"] + + pasta_json = config_geral["pasta_json"] + + chave_primaria_yaml = config_geral["chave_primaria_yaml"] + + + if os.path.exists(arquivo_atualizado): + + print(BLUE+"\nAtualizando os metadados do identificador ARK...\n"+RESET) + + + # Carregue o arquivo YAML com os metadados atualizados + with open(arquivo_atualizado, 'r', encoding='utf-8') as arquivo_yaml: + + dados_yaml = yaml.load(arquivo_yaml, Loader=yaml.FullLoader) + + ark_atualizado = dados_yaml[chave_primaria_yaml]['ark'] + + arquivo_yaml_a_ser_atualizado = filtrar(ark_atualizado)+".yml" + + caminho_completo_atualizacao_yml = os.path.join(pasta_yaml, arquivo_yaml_a_ser_atualizado) + + arquivo_json_a_ser_atualizado = filtrar(ark_atualizado)+".json" + + caminho_completo_atualizacao_json = os.path.join(pasta_json, arquivo_json_a_ser_atualizado) + + + + + if os.path.exists(caminho_completo_atualizacao_yml): + + # Crie um novo dicionário contendo apenas os dados da chave_primaria_yaml 'moan-dados' + metadados_yaml_a_atualizar = dados_yaml[chave_primaria_yaml] + + + + # Salve os dados atualizados em um novo arquivo YAML + with open(caminho_completo_atualizacao_yml, 'w', encoding='utf-8') as novo_arquivo_yaml: + + yaml.dump(metadados_yaml_a_atualizar, novo_arquivo_yaml, default_style='', sort_keys=False, allow_unicode=True, default_flow_style=False) + + print(GREEN+"\nArquivo "+YELLOW+caminho_completo_atualizacao_yml+GREEN+" atualizado com sucesso.\n"+RESET) + + else: + + print(RED+"\nO arquivo "+YELLOW+caminho_completo_atualizacao_yml+RED+" não foi encontrado. Isso indica seu arquivo tem um identificador ARK, mas o mesmo não tem um arquivo de metadados YAML público.\n"+RESET) + + return + + + # Carregue o arquivo YAML ark_lista + with open("ark_lista.yml", 'r', encoding='utf-8') as arquivo_yaml: + + dados_yaml_lista = yaml.load(arquivo_yaml, Loader=yaml.FullLoader) + + + metadados_resumo_yaml_atualizacao = { + + 'título': dados_yaml[chave_primaria_yaml]['título'], + 'formato': dados_yaml[chave_primaria_yaml]['formato'], + 'autor': dados_yaml[chave_primaria_yaml]['autor'], + + } + + + + dados_yaml_lista[ark_atualizado] = metadados_resumo_yaml_atualizacao + + with open("ark_lista.yml", 'w', encoding='utf-8') as atualizacao_arquivo_yaml: + + yaml.dump(dados_yaml_lista, atualizacao_arquivo_yaml, default_style='', sort_keys=False, allow_unicode=True, default_flow_style=False) + + + print(GREEN+"\nArquivo "+YELLOW+"ark_lista.yml"+GREEN+" atualizado com sucesso.\n"+RESET) + + + + + + if os.path.exists(caminho_completo_atualizacao_json): + + # Converta os dados para JSON + metadados_json_atualizacao = json.dumps(dados_yaml[chave_primaria_yaml], ensure_ascii=False, indent=2) + + + # Faz a Atualização do arquivo JSON + with open(caminho_completo_atualizacao_json, 'w', encoding='utf-8') as novo_arquivo_json: + + novo_arquivo_json.write(metadados_json_atualizacao) + + + print(GREEN+"\nArquivo "+YELLOW+caminho_completo_atualizacao_json+GREEN+" atualizado com sucesso.\n"+RESET) + + + # Abre o ark_lista.json em modo de leitura + with open("ark_lista.json", 'r', encoding='utf-8') as atualizacao_arquivo_json: + + ark_lista_json = json.load(atualizacao_arquivo_json) + + + chave_atualizacao = dados_yaml[chave_primaria_yaml]['ark'] + + + # Resumo dos metadados em JSON + ark_lista_json[chave_atualizacao].update( { + + 'título': dados_yaml[chave_primaria_yaml]['título'], + 'formato': dados_yaml[chave_primaria_yaml]['formato'], + 'autor': dados_yaml[chave_primaria_yaml]['autor'], + + }) + + + # Salve as atualizações de volta no arquivo JSON + with open("ark_lista.json", 'w', encoding='utf-8') as atualizacao_arquivo_json: + + json.dump(ark_lista_json, atualizacao_arquivo_json, ensure_ascii=False, indent=2) + + + print(GREEN+"\nArquivo "+YELLOW+"ark_lista.json"+GREEN+" atualizado com sucesso.\n"+RESET) + + + + else: + + print(RED+"\nO arquivo "+YELLOW+caminho_completo_atualizacao_json+RED+" não foi encontrado. Isso indica seu arquivo tem um identificador ARK, mas o mesmo não tem um arquivo de metadados JSON público.\n"+RESET) + + return + + + else: + + print(RED+"\nO arquivo "+YELLOW+arquivo_atualizado+RED+" não foi encontrado.\n"+RESET) +