def handle_diff_action(self, file_1, file_2) -> None: self.diff_lst = [] self.is_different = 0 if not file_1 or not file_2: self.show_popup("São necessários dois arquivos para o diff!!", "Por favor, escolha dois arquivos (comprimidos ou não) e tente novamente") return file1 = self.handle_file(file_1) file2 = self.handle_file(file_2) c = self.diff_lib.lcslen(file1, file2) self.get_differences(c, file1, file2, len(file1) - 1, len(file2) - 1) out_path = os.path.join(script_dir, "../../../diff/") + "diff.txt" if self.is_different > 0: arquivos_comparados = \ "==================================================== \n" + \ "Arquivos comparados: \n" + \ f"{file_1.split('/')[-1]} e \n" + \ f"{file_2.split('/')[-1]} \n\n" + \ "==================================================== \n" self.diff_lst.insert(0, arquivos_comparados) File.save_file( out_path, file_content= "".join(self.diff_lst), type='wt' ) self.show_popup("Foram encontradas diferenças entre os arquivos selecionados", "Você pode vê-las no arquivo gerado em:", out_path) else: self.show_popup("Não foram encontradas diferenças entre os arquivos selecionados")
def handle_decode_action(self, file_path: str, *args): file_extension = file_path.split("/")[-1].split( ".")[-1] == "greed_compressed" if not file_extension: self.show_popup( "Não foi possível abrir o arquivo selecionado", "Verifique se você escolheu um arquivo no formato .greed_compressed!!" ) return try: file = Commons.get_file(file_path=file_path, encode_type='rb') except Exception as ex: self.show_popup( "Não foi possível abrir o arquivo selecionado", "Verifique se você escolheu um arquivo no formato .greed_compressed!!" ) return decoded_text = DecodeCommons.get_decoded_text(file) decoded_content_path = abs_file_path + self.get_file_extension( file_path) + datetime.now().strftime("%Y-%m-%d_%H:%M:%S") + ".txt" decoded_file_path = os.path.join(decoded_content_path) File.save_file(decoded_file_path, file_content=decoded_text, type='wt') self.show_popup("Arquivo descomprimido com sucesso!!", "Você pode vê-lo na pasta:", decoded_file_path)
def handle_encode_action(self, file_path: str, *args): try: file = Commons.get_file(file_path=file_path, encode_type='r') except Exception as ex: print(ex) self.show_popup( "Não foi possível abrir o arquivo selecionado", "Verifique se você escolheu um arquivo no formato .txt!!") return file_content = EncodeCommons.encode_file(file) encoded_file_path = abs_file_path + self.get_file_extension( file_path) + ".greed_compressed" File.save_file(path=encoded_file_path, file_content=file_content.tobytes()) popup("Encode realizado com sucesso!!", "Você pode ver o arquivo comprmido em:", encoded_file_path, self.calculate_size_diference(file_path, encoded_file_path))