def importMHT():
# Ask for the .mht file.
file_path = getFile(mw, _("Import mht file"), None, key="import")
if not file_path:
return
file_path = unicode(file_path)
# Convert mht
parser = Parser(file_path)
output = parser.run()
# Creates a temp dir instead of file since windows
# won't allow subprocesses to access it otherwise.
# https://stackoverflow.com/questions/15169101/how-to-create-a-temporary-file-that-can-be-read-by-a-subprocess
try:
temp_dir = mkdtemp()
path = os.path.join(temp_dir, 'import.html')
with open(path, 'w+') as html:
html.write(output)
# Move temp images to collection.media
media_dir = os.path.join(mw.pm.profileFolder(), "collection.media")
for meta in parser.file_map.values():
temp_path = meta.get('path')
new_path = os.path.join(media_dir, meta.get('filename'))
shutil.move(temp_path, new_path)
# import into the collection
ti = TextImporter(mw.col, path)
ti.delimiter = '\t'
ti.allowHTML = True
ti.initMapping()
MHTImportDialog(mw, ti)
# Remove file
os.remove(path)
finally:
os.rmdir(temp_dir)
评论列表
文章目录