|
@ -78,20 +78,21 @@ def br(obj): |
|
|
|
|
|
|
|
|
def guess_extension(fullname, buffer): |
|
|
def guess_extension(fullname, buffer): |
|
|
mime = magic.from_buffer(buffer, mime=True) |
|
|
mime = magic.from_buffer(buffer, mime=True) |
|
|
try: |
|
|
extensao = EXTENSOES.get(mime) |
|
|
return EXTENSOES[mime] |
|
|
if extensao is not None: |
|
|
except KeyError as e: |
|
|
return extensao |
|
|
|
|
|
else: |
|
|
possibilidades = '\n'.join( |
|
|
possibilidades = '\n'.join( |
|
|
[" '{}': '{}',".format(mime, ext) |
|
|
[" '{}': '{}',".format(mime, ext) |
|
|
for ext in mimetypes.guess_all_extensions(mime)]) |
|
|
for ext in mimetypes.guess_all_extensions(mime)]) |
|
|
msg = '''Extensão não conhecida para o arquivo: {} |
|
|
print('''Extensão não conhecida para o arquivo: {} |
|
|
e mimetype: {} |
|
|
e mimetype: {} |
|
|
Algumas possibilidades são: |
|
|
Algumas possibilidades são: |
|
|
{} |
|
|
{} |
|
|
Atualize o código do dicionário EXTENSOES! |
|
|
Atualize o código do dicionário EXTENSOES! |
|
|
'''.format(fullname, mime, possibilidades) |
|
|
'''.format(fullname, mime, possibilidades) |
|
|
print(msg) |
|
|
) |
|
|
raise Exception(msg, e) |
|
|
return '.DESCONHECIDO.{}'.format(mime.replace('/', '__')) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def get_conteudo_file(doc): |
|
|
def get_conteudo_file(doc): |
|
@ -154,7 +155,11 @@ def enumerate_btree(folder): |
|
|
obj, meta_type = br(obj), type(obj).__name__ |
|
|
obj, meta_type = br(obj), type(obj).__name__ |
|
|
yield id, obj, meta_type |
|
|
yield id, obj, meta_type |
|
|
# verificação de consistência |
|
|
# verificação de consistência |
|
|
assert contagem_esperada == contagem_real |
|
|
if contagem_esperada != contagem_real: |
|
|
|
|
|
print('ATENÇÃO: contagens diferentes na btree: ' |
|
|
|
|
|
'{} esperada: {} real: {}'.format(folder, |
|
|
|
|
|
contagem_esperada, |
|
|
|
|
|
contagem_real)) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
nao_identificados = defaultdict(list) |
|
|
nao_identificados = defaultdict(list) |
|
@ -333,7 +338,9 @@ def build_salvar(repo): |
|
|
def salvar(fullname, conteudo): |
|
|
def salvar(fullname, conteudo): |
|
|
sha = hashlib.sha256() |
|
|
sha = hashlib.sha256() |
|
|
sha.update(conteudo) |
|
|
sha.update(conteudo) |
|
|
if sha.hexdigest() not in hashes: |
|
|
if sha.hexdigest() in hashes: |
|
|
|
|
|
print('- hash encontrado - {}'.format(fullname)) |
|
|
|
|
|
else: |
|
|
fullname = ajusta_extensao(fullname, conteudo) |
|
|
fullname = ajusta_extensao(fullname, conteudo) |
|
|
if os.path.exists(fullname): |
|
|
if os.path.exists(fullname): |
|
|
# destrava arquivo pré-existente (o conteúdo mudou) |
|
|
# destrava arquivo pré-existente (o conteúdo mudou) |
|
@ -355,7 +362,7 @@ def dump_sapl(sigla): |
|
|
destino.mkdir(parents=True) |
|
|
destino.mkdir(parents=True) |
|
|
repo = git.Repo.init(destino) |
|
|
repo = git.Repo.init(destino) |
|
|
if TAG_ZOPE in repo.tags: |
|
|
if TAG_ZOPE in repo.tags: |
|
|
info('A exportação de documentos já está feita.') |
|
|
print('A exportação de documentos já está feita -- abortando') |
|
|
return |
|
|
return |
|
|
|
|
|
|
|
|
repo_execute(repo, 'git annex init') |
|
|
repo_execute(repo, 'git annex init') |
|
|