Пример #1
0
    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'
Пример #2
0
 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'
         ]
Пример #3
0
    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
Пример #4
0
    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')
Пример #5
0
 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))
Пример #6
0
 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))
Пример #7
0
    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')
Пример #8
0
    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        
Пример #9
0
    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'
Пример #10
0
 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']