def diff_compare_files(): def is_docx(file): docx_mime = 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' return file.filename.endswith( '.docx') and file.content_type == docx_mime def is_text(file): return file.content_type.startswith('text/') if request.method == 'POST': files = [] for k, v in request.files.items(): if k.startswith('file'): files.append(v) if not files or len(files) != 2: flash('Not enough files') return redirect('/diff') for f in files: if not f.filename: flash('No selected file') return redirect('/diff') file1, file2 = files body1 = None body2 = None print(file1) print(file2) if is_docx(file1) and is_docx(file2): dr = DocReader() body1 = list(dr.process(file1.stream)) body2 = list(dr.process(file2.stream)) elif is_text(file1) and is_text(file2): body1 = file1.stream.read().decode("utf-8").splitlines() body2 = file2.stream.read().decode("utf-8").splitlines() else: flash('unsupported.') return diff_compare(files[0].filename, body1, files[1].filename, body2)