mirror of
				https://github.com/devine-dl/devine.git
				synced 2025-11-04 03:44:49 +00:00 
			
		
		
		
	HLS: Skip merging continuity if all segments were skipped
If all segments of a continuity is skipped, i.e. by OnSegmentFilter, then this code fails as the folder wouldn't exist.
This commit is contained in:
		
							parent
							
								
									cd194e3192
								
							
						
					
					
						commit
						bd185126b6
					
				@ -325,20 +325,21 @@ class HLS:
 | 
			
		||||
                            last_speed_refresh = now
 | 
			
		||||
                            download_sizes.clear()
 | 
			
		||||
 | 
			
		||||
            with open(discontinuity_save_path, "wb") as f:
 | 
			
		||||
                for segment_file in sorted(discontinuity_save_dir.iterdir()):
 | 
			
		||||
                    segment_data = segment_file.read_bytes()
 | 
			
		||||
                    if isinstance(track, Subtitle):
 | 
			
		||||
                        segment_data = try_ensure_utf8(segment_data)
 | 
			
		||||
                        if track.codec not in (Subtitle.Codec.fVTT, Subtitle.Codec.fTTML):
 | 
			
		||||
                            # decode text direction entities or SubtitleEdit's /ReverseRtlStartEnd won't work
 | 
			
		||||
                            segment_data = segment_data.decode("utf8"). \
 | 
			
		||||
                                replace("‎", html.unescape("‎")). \
 | 
			
		||||
                                replace("‏", html.unescape("‏")). \
 | 
			
		||||
                                encode("utf8")
 | 
			
		||||
                    f.write(segment_data)
 | 
			
		||||
                    segment_file.unlink()
 | 
			
		||||
                shutil.rmtree(discontinuity_save_dir)
 | 
			
		||||
            if discontinuity_save_dir.exists():
 | 
			
		||||
                with open(discontinuity_save_path, "wb") as f:
 | 
			
		||||
                    for segment_file in sorted(discontinuity_save_dir.iterdir()):
 | 
			
		||||
                        segment_data = segment_file.read_bytes()
 | 
			
		||||
                        if isinstance(track, Subtitle):
 | 
			
		||||
                            segment_data = try_ensure_utf8(segment_data)
 | 
			
		||||
                            if track.codec not in (Subtitle.Codec.fVTT, Subtitle.Codec.fTTML):
 | 
			
		||||
                                # decode text direction entities or SubtitleEdit's /ReverseRtlStartEnd won't work
 | 
			
		||||
                                segment_data = segment_data.decode("utf8"). \
 | 
			
		||||
                                    replace("‎", html.unescape("‎")). \
 | 
			
		||||
                                    replace("‏", html.unescape("‏")). \
 | 
			
		||||
                                    encode("utf8")
 | 
			
		||||
                        f.write(segment_data)
 | 
			
		||||
                        segment_file.unlink()
 | 
			
		||||
                    shutil.rmtree(discontinuity_save_dir)
 | 
			
		||||
 | 
			
		||||
        if DOWNLOAD_LICENCE_ONLY.is_set():
 | 
			
		||||
            return
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user