[utils,common] Merge format_srt_time and _subtitles_timecode
format_srt_time uses a comma as the delimiter between seconds and milliseconds while _subtitles_timecode uses a dot. All .srt examples I found on the Internet uses a comma, so I use a comma in the merged version. See http://matroska.org/technical/specs/subtitles/srt.html and http://devel.aegisub.org/wiki/SubtitleFormats/SRT
This commit is contained in:
		@@ -1072,9 +1072,6 @@ class InfoExtractor(object):
 | 
			
		||||
    def _get_automatic_captions(self, *args, **kwargs):
 | 
			
		||||
        raise NotImplementedError("This method must be implemented by subclasses")
 | 
			
		||||
 | 
			
		||||
    def _subtitles_timecode(self, seconds):
 | 
			
		||||
        return '%02d:%02d:%02d.%03d' % (seconds / 3600, (seconds % 3600) / 60, seconds % 60, (seconds % 1) * 1000)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class SearchInfoExtractor(InfoExtractor):
 | 
			
		||||
    """
 | 
			
		||||
 
 | 
			
		||||
@@ -7,6 +7,7 @@ from .common import InfoExtractor
 | 
			
		||||
from ..utils import (
 | 
			
		||||
    ExtractorError,
 | 
			
		||||
    float_or_none,
 | 
			
		||||
    srt_subtitles_timecode,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -39,8 +40,8 @@ class KanalPlayIE(InfoExtractor):
 | 
			
		||||
            '%s\r\n%s --> %s\r\n%s'
 | 
			
		||||
            % (
 | 
			
		||||
                num,
 | 
			
		||||
                self._subtitles_timecode(item['startMillis'] / 1000.0),
 | 
			
		||||
                self._subtitles_timecode(item['endMillis'] / 1000.0),
 | 
			
		||||
                srt_subtitles_timecode(item['startMillis'] / 1000.0),
 | 
			
		||||
                srt_subtitles_timecode(item['endMillis'] / 1000.0),
 | 
			
		||||
                item['text'],
 | 
			
		||||
            ) for num, item in enumerate(subs, 1))
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1835,12 +1835,8 @@ def parse_dfxp_time_expr(time_expr):
 | 
			
		||||
        return 3600 * int(mobj.group(1)) + 60 * int(mobj.group(2)) + float(mobj.group(3))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def format_srt_time(seconds):
 | 
			
		||||
    (mins, secs) = divmod(seconds, 60)
 | 
			
		||||
    (hours, mins) = divmod(mins, 60)
 | 
			
		||||
    millisecs = (secs - int(secs)) * 1000
 | 
			
		||||
    secs = int(secs)
 | 
			
		||||
    return '%02d:%02d:%02d,%03d' % (hours, mins, secs, millisecs)
 | 
			
		||||
def srt_subtitles_timecode(seconds):
 | 
			
		||||
    return '%02d:%02d:%02d,%03d' % (seconds / 3600, (seconds % 3600) / 60, seconds % 60, (seconds % 1) * 1000)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def dfxp2srt(dfxp_data):
 | 
			
		||||
@@ -1872,8 +1868,8 @@ def dfxp2srt(dfxp_data):
 | 
			
		||||
            end_time = begin_time + parse_dfxp_time_expr(para.attrib['dur'])
 | 
			
		||||
        out.append('%d\n%s --> %s\n%s\n\n' % (
 | 
			
		||||
            index,
 | 
			
		||||
            format_srt_time(begin_time),
 | 
			
		||||
            format_srt_time(end_time),
 | 
			
		||||
            srt_subtitles_timecode(begin_time),
 | 
			
		||||
            srt_subtitles_timecode(end_time),
 | 
			
		||||
            parse_node(para)))
 | 
			
		||||
 | 
			
		||||
    return ''.join(out)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user