def __init__( self, dom=None, ): self.mediatype = None if dom: self.id = dom.getAttribute('id') self.source = 'dom' self.parsed = xml2dict(dom, go_deep=True) if not self.parsed: return # empty node #redundant self.pathurl = xmltextkey(dom, 'pathurl') self.name = xmltextkey(dom, 'name') try: self.timebase = float( xmltextkey(getFirstChild(dom, 'rate'), 'timebase')) self.duration = float(xmltextkey(dom, 'duration')) except IndexError: # not in this xmeml version self.timebase = self.duration = None m = self.parsed.get('media', KeyedArray()) if m.get('video', None): self.mediatype = 'video' elif m.get('audio', None): self.mediatype = 'audio'
def parse(self, dom): self.parsed = xml2dict(dom, go_deep=True) self.type = dom.tagName if self.type not in ('transitionitem', 'clipitem'): raise Error( 'track item only supports clipitem and transitionitem and not %s' % self.type) self.id = (dom.getAttribute('id') or None) #only for clipitem self.start_frame = int(self.parsed['start']) self.end_frame = int(self.parsed['end']) rate = getFirstChild(dom, 'rate') self.ntsc = xmltextkey(rate, 'ntsc') == u'TRUE' self.timebase = float(xmltextkey(rate, 'timebase')) if self.type == 'clipitem': self.name = self.parsed.get('name', None) self.in_frame = int(self.parsed.get('in', -1)) self.out_frame = int(self.parsed.get('out', -1)) self.duration = self.out_frame - self.in_frame firstfile = getFirstChild(dom, 'file') file_id = firstfile and firstfile.getAttribute('id') if file_id and self.source_files.has_key(file_id): self.file = self.source_files[file_id] else: self.file = XmemlFileRef(firstfile) self.filters = [ ItemFilter(f) for (k, f) in self.parsed.items() if k == 'filter' ]
def fromXml(self, xml): name = xml.getElementsByTagName("name")[0].childNodes[0].data.strip() path = xml.getElementsByTagName("path")[0].childNodes[0].data.strip() numeric = xml.getAttribute("numeric") format = xml.getElementsByTagName("name")[0].getAttribute("format") e = Episode(path, name, numeric, format) return e
def __init__(self, dom=None, ): if dom: self.dom = dom self.id = dom.getAttribute('id') self.source = 'dom' self.parsed = xml2dict(dom, go_deep=True) #redundant self.pathurl = xmltextkey(dom, 'pathurl') self.name = xmltextkey(dom, 'name')
def parse(self, dom): self.parsed = xml2dict(dom, go_deep=True) self.type = dom.tagName if self.type not in ('transitionitem','clipitem'): raise Error('track item only supports clipitem and transitionitem and not %s' % self.type) self.id=(dom.getAttribute('id') or None) #only for clipitem self.start_frame = int(self.parsed['start']) self.end_frame = int(self.parsed['end']) if self.type=='clipitem': self.in_frame = int(self.parsed.get('in',-1)) self.out_frame = int(self.parsed.get('out',-1))
def parse(self, dom): self.parsed = xml2dict(dom, go_deep=True) self.type = dom.tagName if self.type not in ('transitionitem', 'clipitem'): raise Error( 'track item only supports clipitem and transitionitem and not %s' % self.type) self.id = (dom.getAttribute('id') or None) #only for clipitem self.start_frame = int(self.parsed['start']) self.end_frame = int(self.parsed['end']) if self.type == 'clipitem': self.in_frame = int(self.parsed.get('in', -1)) self.out_frame = int(self.parsed.get('out', -1))
def __init__( self, dom=None, ): if dom: self.dom = dom self.id = dom.getAttribute('id') self.source = 'dom' self.parsed = xml2dict(dom, go_deep=True) #redundant self.pathurl = xmltextkey(dom, 'pathurl') self.name = xmltextkey(dom, 'name')
def fromXml(self, xml): episodes = xml.getElementsByTagName('episodes')[0] es = {} for x in episodes.getElementsByTagName('episode'): e = Episode.fromXml(x) es[e.name] = e xml.removeChild(episodes) name = xml.getElementsByTagName('name')[0].childNodes[0].data.strip() path = xml.getElementsByTagName('path')[0].childNodes[0].data.strip() numeric = xml.getAttribute('numeric') s = Season(path,name,numeric) s.episodeInfo = es return s
def __init__(self, dom=None, ): self.mediatype = None if dom: self.id = dom.getAttribute('id') self.source = 'dom' self.parsed = xml2dict(dom, go_deep=True) if not self.parsed: return # empty node #redundant self.pathurl = xmltextkey(dom, 'pathurl') self.name = xmltextkey(dom, 'name') try: self.timebase = float(xmltextkey(getFirstChild(dom, 'rate'), 'timebase')) self.duration = float(xmltextkey(dom, 'duration')) except IndexError: # not in this xmeml version self.timebase = self.duration = None m = self.parsed.get('media', KeyedArray()) if m.get('video', None): self.mediatype = 'video' elif m.get('audio', None): self.mediatype = 'audio'
def parse(self, dom): self.parsed = xml2dict(dom, go_deep=True) self.type = dom.tagName if self.type not in ('transitionitem','clipitem'): raise Error('track item only supports clipitem and transitionitem and not %s' % self.type) self.id=(dom.getAttribute('id') or None) #only for clipitem self.start_frame = int(self.parsed['start']) self.end_frame = int(self.parsed['end']) rate = getFirstChild(dom, 'rate') self.ntsc = xmltextkey(rate, 'ntsc') == u'TRUE' self.timebase = float(xmltextkey(rate, 'timebase')) if self.type=='clipitem': self.name = self.parsed.get('name',None) self.in_frame = int(self.parsed.get('in',-1)) self.out_frame = int(self.parsed.get('out',-1)) self.duration = self.out_frame - self.in_frame firstfile = getFirstChild(dom, 'file') file_id = firstfile and firstfile.getAttribute('id') if file_id and self.source_files.has_key(file_id): self.file = self.source_files[file_id] else: self.file = XmemlFileRef(firstfile) self.filters = [ItemFilter(f) for (k, f) in self.parsed.items() if k == 'filter']