|  |  |  | @ -1,6 +1,5 @@ | 
			
		
	
		
			
				
					|  |  |  |  | import base64 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | from Crypto.Hash import SHA256 | 
			
		
	
		
			
				
					|  |  |  |  | import os.path | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | from config import config | 
			
		
	
		
			
				
					|  |  |  |  | from entity.Letter import Letter | 
			
		
	
	
		
			
				
					|  |  |  | @ -55,9 +54,23 @@ def handleLetter(letter: Letter): | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     # 默认下载目录 | 
			
		
	
		
			
				
					|  |  |  |  |     download_dir = DownloadPathTool.get_download_directory() | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     with open(f"{download_dir}/{letter.fileName}", "wb") as f: | 
			
		
	
		
			
				
					|  |  |  |  |     filename = letter.fileName | 
			
		
	
		
			
				
					|  |  |  |  |     base_name, ext = os.path.splitext(filename)  # 分离文件名和扩展名 | 
			
		
	
		
			
				
					|  |  |  |  |     newName = None | 
			
		
	
		
			
				
					|  |  |  |  |     count = 0 | 
			
		
	
		
			
				
					|  |  |  |  |     while True: | 
			
		
	
		
			
				
					|  |  |  |  |         if count: | 
			
		
	
		
			
				
					|  |  |  |  |             newName = f"{base_name}({count}){ext}" | 
			
		
	
		
			
				
					|  |  |  |  |         else: | 
			
		
	
		
			
				
					|  |  |  |  |             newName = filename | 
			
		
	
		
			
				
					|  |  |  |  |         path = f"{download_dir}/{newName}" | 
			
		
	
		
			
				
					|  |  |  |  |         if os.path.exists(path): | 
			
		
	
		
			
				
					|  |  |  |  |             print(f"文件已存在,自动避免覆盖写入") | 
			
		
	
		
			
				
					|  |  |  |  |             count += 1 | 
			
		
	
		
			
				
					|  |  |  |  |         else: | 
			
		
	
		
			
				
					|  |  |  |  |             break | 
			
		
	
		
			
				
					|  |  |  |  |     with open(path, "wb") as f: | 
			
		
	
		
			
				
					|  |  |  |  |         f.write(data) | 
			
		
	
		
			
				
					|  |  |  |  |         print(f"确认收到来自 {Segwit.encodeSegwit(letter.senderPubKey.encode("utf-8"))} 的文件") | 
			
		
	
		
			
				
					|  |  |  |  |         print(f"签名验证有效,已将文件 {letter.fileName} 保存至 {download_dir} 下") | 
			
		
	
		
			
				
					|  |  |  |  |         print(f"签名验证有效,已将文件 {newName} 保存至 {download_dir} 下") | 
			
		
	
		
			
				
					|  |  |  |  |     return | 
			
		
	
	
		
			
				
					|  |  |  | 
 |