mirror of
				https://github.com/derrod/legendary.git
				synced 2025-11-04 10:24:49 +00:00 
			
		
		
		
	[cli/downloader.mp] Explicitly set UTF-8 encoding for resume/repair file
Fixes #297
This commit is contained in:
		
							parent
							
								
									e881e42d5f
								
							
						
					
					
						commit
						b319cb505c
					
				| 
						 | 
				
			
			@ -932,7 +932,7 @@ class LegendaryCLI:
 | 
			
		|||
        # always write repair file, even if all match
 | 
			
		||||
        if repair_file:
 | 
			
		||||
            repair_filename = os.path.join(self.core.lgd.get_tmp_path(), f'{args.app_name}.repair')
 | 
			
		||||
            with open(repair_filename, 'w') as f:
 | 
			
		||||
            with open(repair_filename, 'w', encoding='utf-8') as f:
 | 
			
		||||
                f.write('\n'.join(repair_file))
 | 
			
		||||
            logger.debug(f'Written repair file to "{repair_filename}"')
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -113,7 +113,7 @@ class DLManager(Process):
 | 
			
		|||
                mismatch = 0
 | 
			
		||||
                completed_files = set()
 | 
			
		||||
 | 
			
		||||
                for line in open(self.resume_file).readlines():
 | 
			
		||||
                for line in open(self.resume_file, encoding='utf-8').readlines():
 | 
			
		||||
                    file_hash, _, filename = line.strip().partition(':')
 | 
			
		||||
                    _p = os.path.join(self.dl_dir, filename)
 | 
			
		||||
                    if not os.path.exists(_p):
 | 
			
		||||
| 
						 | 
				
			
			@ -527,8 +527,8 @@ class DLManager(Process):
 | 
			
		|||
 | 
			
		||||
                    file_hash = self.hash_map[res.filename]
 | 
			
		||||
                    # write last completed file to super simple resume file
 | 
			
		||||
                    with open(self.resume_file, 'ab') as rf:
 | 
			
		||||
                        rf.write(f'{file_hash}:{res.filename}\n'.encode('utf-8'))
 | 
			
		||||
                    with open(self.resume_file, 'a', encoding='utf-8') as rf:
 | 
			
		||||
                        rf.write(f'{file_hash}:{res.filename}\n')
 | 
			
		||||
 | 
			
		||||
                if not res.success:
 | 
			
		||||
                    # todo make this kill the installation process or at least skip the file and mark it as failed
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue