mirror of
				https://github.com/devine-dl/devine.git
				synced 2025-11-04 03:44:49 +00:00 
			
		
		
		
	Only decode text direction entities in Sub files (cont.)
Already did this for HLS, but somehow forgot to for DASH and direct URLs.
This commit is contained in:
		
							parent
							
								
									4073cefc74
								
							
						
					
					
						commit
						97efb59e5f
					
				@ -906,10 +906,14 @@ class dl:
 | 
			
		||||
                                track.OnDecrypted(drm)
 | 
			
		||||
                            progress(downloaded="Decrypted", completed=100)
 | 
			
		||||
 | 
			
		||||
                        if isinstance(track, Subtitle):
 | 
			
		||||
                        if isinstance(track, Subtitle) and \
 | 
			
		||||
                           track.codec not in (Subtitle.Codec.fVTT, Subtitle.Codec.fTTML):
 | 
			
		||||
                            track_data = track.path.read_bytes()
 | 
			
		||||
                            track_data = try_ensure_utf8(track_data)
 | 
			
		||||
                            track_data = html.unescape(track_data.decode("utf8")).encode("utf8")
 | 
			
		||||
                            track_data = track_data.decode("utf8"). \
 | 
			
		||||
                                replace("‎", html.unescape("‎")). \
 | 
			
		||||
                                replace("‏", html.unescape("‏")). \
 | 
			
		||||
                                encode("utf8")
 | 
			
		||||
                            track.path.write_bytes(track_data)
 | 
			
		||||
 | 
			
		||||
                        progress(downloaded="Downloaded")
 | 
			
		||||
 | 
			
		||||
@ -482,7 +482,10 @@ class DASH:
 | 
			
		||||
                    track.codec not in (Subtitle.Codec.fVTT, Subtitle.Codec.fTTML)
 | 
			
		||||
                ):
 | 
			
		||||
                    segment_data = try_ensure_utf8(segment_data)
 | 
			
		||||
                    segment_data = html.unescape(segment_data.decode("utf8")).encode("utf8")
 | 
			
		||||
                    segment_data = segment_data.decode("utf8"). \
 | 
			
		||||
                        replace("‎", html.unescape("‎")). \
 | 
			
		||||
                        replace("‏", html.unescape("‏")). \
 | 
			
		||||
                        encode("utf8")
 | 
			
		||||
                f.write(segment_data)
 | 
			
		||||
                f.flush()
 | 
			
		||||
                segment_file.unlink()
 | 
			
		||||
 | 
			
		||||
@ -400,7 +400,6 @@ class HLS:
 | 
			
		||||
            if isinstance(track, Subtitle):
 | 
			
		||||
                segment_data = try_ensure_utf8(segment_file_path.read_bytes())
 | 
			
		||||
                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("‏")). \
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user