class AssStyles: """ AssEntryStyle """ def __init__(self): self.styles = [] self.format = AssEntry('', '[Styles]') self.trueversion = -1 def parse(self, line, version): if line.startswith('Format:'): try: item_list = line.split(':', 1)[1].split(',') #print item_list length = len(item_list) if length == 18: #v4.0 self.trueversion = 0 elif length == 23: #v4.0+ self.trueversion = 1 else: self.trueversion = version except IndexError, msg: print IndexError, ':', msg self.format.set_data( 'Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding' ) elif line.startswith('Style:'): try: style = AssEntryStyle(line, '[Styles]', self.trueversion) except UnknowDataError, err_msg: print UnknowDataError, ':', err_msg
class AssEvents: """ AssEvent """ def __init__(self): self.events = [] self.format = AssEntry("", "[Events]") self.trueversion = -1 def parse(self, line, version): if line.startswith("Format:"): self.format.set_data("Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text") # elif line.startswith('Dialogue:'): if line.startswith("Format:"): try: low_format_str = line.split(":", 1)[1].strip().lower() if low_format_str.startswith("marked"): # SSA style self.trueversion = 0 elif low_format_str.startswith("layer"): # ASS V4.0+ self.trueversion = 1 else: self.trueversion = version except IndexError, msg: print IndexError, ":", msg self.format.set_data("Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text") elif line.startswith("Dialogue:") or line.startswith("Comment:"): try: event = AssEntryDialogue(line, "[Events]", self.trueversion) except UnknowDataError, err_msg: print UnknowDataError, ":", err_msg
class AssStyles: """ AssEntryStyle """ def __init__(self): self.styles = [] self.format = AssEntry('', '[Styles]') self.trueversion = -1 def parse(self, line, version): if line.startswith('Format:'): try: item_list = line.split(':', 1)[1].split(',') #print item_list length = len(item_list) if length == 18: #v4.0 self.trueversion = 0 elif length == 23: #v4.0+ self.trueversion = 1 else: self.trueversion = version except IndexError, msg: print IndexError, ':', msg self.format.set_data('Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding') elif line.startswith('Style:'): try: style = AssEntryStyle(line, '[Styles]', self.trueversion) except UnknowDataError, err_msg: print UnknowDataError, ':', err_msg
class AssEvents: """ AssEvent """ def __init__(self): self.events = [] self.format = AssEntry('', '[Events]') self.trueversion = -1 def parse(self, line, version): if line.startswith('Format:'): self.format.set_data( 'Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text' ) #elif line.startswith('Dialogue:'): if line.startswith('Format:'): try: low_format_str = line.split(':', 1)[1].strip().lower() if low_format_str.startswith('marked'): #SSA style self.trueversion = 0 elif low_format_str.startswith('layer'): #ASS V4.0+ self.trueversion = 1 else: self.trueversion = version except IndexError, msg: print IndexError, ':', msg self.format.set_data( 'Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text' ) elif line.startswith('Dialogue:') or line.startswith('Comment:'): try: event = AssEntryDialogue(line, '[Events]', self.trueversion) except UnknowDataError, err_msg: print UnknowDataError, ':', err_msg
def __init__(self): self.events = [] self.format = AssEntry("", "[Events]") self.trueversion = -1
def __init__(self): self.styles = [] self.format = AssEntry('', '[Styles]') self.trueversion = -1
def __init__(self): self.events = [] self.format = AssEntry('', '[Events]') self.trueversion = -1