[xiph-commits] r14792 - trunk/subtle
jmesquita at svn.xiph.org
jmesquita at svn.xiph.org
Wed Apr 23 12:49:36 PDT 2008
Author: jmesquita
Date: 2008-04-23 12:49:35 -0700 (Wed, 23 Apr 2008)
New Revision: 14792
Added:
trunk/subtle/SubtleXML.py
Removed:
trunk/subtle/SouffleurXML.py
Log:
Continuing to do project renaming
Deleted: trunk/subtle/SouffleurXML.py
===================================================================
--- trunk/subtle/SouffleurXML.py 2008-04-23 18:01:02 UTC (rev 14791)
+++ trunk/subtle/SouffleurXML.py 2008-04-23 19:49:35 UTC (rev 14792)
@@ -1,266 +0,0 @@
-## \file SouffleurXML.py
-# Documentation for subtitles module of Souffleur project.
-# \author Maxim Litvinov (aka DarakuTenshi) <otaky at ukr.net>
-
-import xml.dom.minidom
-
-from Subtitles import Sub
-from Subtitles import Subtitles
-
-## ProjectXML class.
-# Class for working whith XML formated project file.
-class ProjectXML:
- ## Constructor
- def __init__(self):
- self.impl = xml.dom.minidom.getDOMImplementation()
- self.doc = self.impl.createDocument(None, "souffleur", None)
- self.root = self.doc.documentElement
-
- rootAttr= self.doc.createAttribute("type")
- rootAttr.nodeValue="project"
-
- self.root.setAttributeNode(rootAttr)
-
- versionEl = self.doc.createElement("version")
- versionTxt = self.doc.createTextNode("0")
- versionEl.appendChild(versionTxt)
- self.root.appendChild(versionEl)
-
- self.head = None
- self.body = None
- self.version = 0
-
- ## \var impl
- # DOMImplementation for XML parsing.
-
- ## \var doc
- # Document XML object.
-
- ## \var root
- # Root element ("souffleur" section) in the object.
-
- ## \var head
- # Object of the "head" section in the XML.
-
- ## \var body
- # Object of the "body" section in the XML.
-
- ## \var version
- # Version of the pfoject file format.
-
-#==============================================================================
- ## Load XML file.
- # Load XML tree from the file.
- # \param fileName - name of the XML project file.
- # \return self object or None.
- def load(self, fileName):
- self.root = None
- self.head = None
- self.body = None
- self.version = None
- self.doc = xml.dom.minidom.parse(fileName)
- if self.doc.documentElement.nodeName != "souffleur":
- return None
- self.root=self.doc.documentElement
- for i in self.root.childNodes:
- if i.nodeName=="head":
- self.head=i
- elif i.nodeName=="body":
- self.body=i
- elif i.nodeName=="version":
- self.version = i.childNodes[0].nodeValue
- return self
-
-#==============================================================================
- ## Write XML.
- # Write XML data to the file.
- # \param fileName - name of file to store data.
- def write(self, fileName):
- HDLR=file(fileName, "w")
- self.doc.writexml(HDLR)
- HDLR.close()
-
-#==============================================================================
- ## Add variable head.
- # Add some variable to the head section.
- # \param attrName - name of the attribute.
- # \param attrValue - value of the attribute.
- def addHeadInfo(self, attrName, attrValue):
- if not self.head:
- self.head=self.doc.createElement("head")
- self.root.appendChild(self.head)
-
- if not attrName or not attrValue:
- return
-
- attrEl = self.doc.createElement(attrName)
- attrTxt = self.doc.createTextNode(attrValue)
- attrEl.appendChild(attrTxt)
- self.head.appendChild(attrEl)
-
-#==============================================================================
- ## Add media.
- # Add media info to the body section.
- # \param media - Media class instance.
- def addMedia(self, media):
- if not media:
- return
- if type(media)!=type(Media()):
- return
- if not self.body:
- self.body=self.doc.createElement("body")
- self.root.appendChild(self.body)
-
- data = self.doc.createElement("data")
- self.body.appendChild(data)
-
- source = self.doc.createElement("source")
- sType= self.doc.createAttribute("type")
- sType.nodeValue=media.MIME
- source.setAttributeNode(sType)
- sTxt = self.doc.createTextNode(media.source)
- source.appendChild(sTxt)
- data.appendChild(source)
-
- for i in media.Streams:
- tmpMedia = self.doc.createElement("media")
- data.appendChild(tmpMedia)
-
- tmpEl = self.doc.createElement("type")
- tmpTxt = self.doc.createTextNode(i.MIME)
- tmpEl.appendChild(tmpTxt)
- tmpMedia.appendChild(tmpEl)
-
- tmpEl = self.doc.createElement("name")
- tmpTxt = self.doc.createTextNode(i.Name)
- tmpEl.appendChild(tmpTxt)
- tmpMedia.appendChild(tmpEl)
-
- tmpEl = self.doc.createElement("id")
- tmpTxt = self.doc.createTextNode(str(i.ID))
- tmpEl.appendChild(tmpTxt)
- tmpMedia.appendChild(tmpEl)
-
- if not i.attrs:
- continue
-
- attrs = self.doc.createElement("attrs")
- tmpMedia.appendChild(attrs)
- for j in i.attrs.keys():
- tmpEl = self.doc.createElement(j)
- tmpTxt = self.doc.createTextNode(i.attrs[j])
- tmpEl.appendChild(tmpTxt)
- attrs.appendChild(tmpEl)
-
-#==============================================================================
- ## Add subtitles.
- # Add subtitles to the body section.
- # \param subtitle - Subtitles class instance.
- def addSubtitle(self, subtitle):
- if not subtitle:
- return
- if type(subtitle)!=type(Subtitles()):
- return
- if not self.body:
- self.body=self.doc.createElement("body")
- self.root.appendChild(self.body)
-
- data = self.doc.createElement("subtitles")
- self.body.appendChild(data)
-
- source = self.doc.createElement("source")
- sTxt = self.doc.createTextNode(str(subtitle.subSource))
- source.appendChild(sTxt)
- data.appendChild(source)
-
- for i in subtitle.subKeys:
- sub = self.doc.createElement("sub")
- tmpEl = self.doc.createElement("start")
- tmpTxt = self.doc.createTextNode(str(subtitle.subs[i].start_time))
- tmpEl.appendChild(tmpTxt)
- sub.appendChild(tmpEl)
- tmpEl = self.doc.createElement("end")
- tmpTxt = self.doc.createTextNode(str(subtitle.subs[i].end_time))
- tmpEl.appendChild(tmpTxt)
- sub.appendChild(tmpEl)
- tmpEl = self.doc.createElement("text")
- tmpTxt = self.doc.createTextNode(str(subtitle.subs[i].text))
- tmpEl.appendChild(tmpTxt)
- sub.appendChild(tmpEl)
- data.appendChild(sub)
-
-#==============================================================================
- ##Get head
- # Get list of the head section attributes.
- # \return list of the attrName => attrValue
- def getHead(self):
- if not self.head:
- return None
- ret={}
- for i in self.head.childNodes:
- ret[i.nodeName]=i.childNodes[0].nodeValue
- return ret
-
-#==============================================================================
- ## Get media.
- # Get media info from XML.
- # \return List of the Media class.
- def getMedia(self):
- if not self.body:
- return None
- ret=[]
- for i in self.body.childNodes:
- if i.nodeName=="data":
- tMedia=Media()
- for j in i.childNodes:
- if j.nodeName=="source":
- mType=j.attributes["type"]
- if not mType:
- return None
- tMedia.MIME=mType.nodeValue
- tMedia.source=j.childNodes[0].nodeValue
- elif j.nodeName=="media":
- tStream = Stream()
- for k in j.childNodes:
- nodeName = k.nodeName
- if nodeName == "type":
- tStream.MIME = k.childNodes[0].nodeValue
- elif nodeName == "id":
- tStream.ID = k.childNodes[0].nodeValue
- elif nodeName == "name":
- tStream.Name = k.childNodes[0].nodeValue
- elif nodeName == "attrs":
- for l in k.childNodes:
- tStream.addAttr(l.nodeName, l.childNodes[0].nodeValue)
- tMedia.addStream(tStream)
- ret.append(tMedia)
- return ret
-
-#==============================================================================
- ##Get subtitles.
- # Get subtitles from XML project file.
- # \raturn Array of the Subtitles.
- def getSubtitle(self):
- if not self.body:
- return None
- ret=[]
- for i in self.body.childNodes:
- if i.nodeName=="subtitles":
- tSubtitles=Subtitles()
- for j in i.childNodes:
- if j.nodeName=="source":
- tSubtitles.subSource=j.childNodes[0].nodeValue
- elif j.nodeName=="sub":
- tSub=Sub()
- for k in j.childNodes:
- nodeName = k.nodeName
- if nodeName == "start":
- tSub.start_time=int(k.childNodes[0].nodeValue)
- elif nodeName == "end":
- tSub.end_time=int(k.childNodes[0].nodeValue)
- elif nodeName == "text":
- tSub.text=str(k.childNodes[0].nodeValue)
- tSubtitles.subs[tSub.start_time]=tSub
- tSubtitles.updateKeys()
- ret.append(tSubtitles)
- return ret
Copied: trunk/subtle/SubtleXML.py (from rev 14791, trunk/subtle/SouffleurXML.py)
===================================================================
--- trunk/subtle/SubtleXML.py (rev 0)
+++ trunk/subtle/SubtleXML.py 2008-04-23 19:49:35 UTC (rev 14792)
@@ -0,0 +1,266 @@
+## \file SouffleurXML.py
+# Documentation for subtitles module of Souffleur project.
+# \author Maxim Litvinov (aka DarakuTenshi) <otaky at ukr.net>
+
+import xml.dom.minidom
+
+from Subtitles import Sub
+from Subtitles import Subtitles
+
+## ProjectXML class.
+# Class for working whith XML formated project file.
+class ProjectXML:
+ ## Constructor
+ def __init__(self):
+ self.impl = xml.dom.minidom.getDOMImplementation()
+ self.doc = self.impl.createDocument(None, "souffleur", None)
+ self.root = self.doc.documentElement
+
+ rootAttr= self.doc.createAttribute("type")
+ rootAttr.nodeValue="project"
+
+ self.root.setAttributeNode(rootAttr)
+
+ versionEl = self.doc.createElement("version")
+ versionTxt = self.doc.createTextNode("0")
+ versionEl.appendChild(versionTxt)
+ self.root.appendChild(versionEl)
+
+ self.head = None
+ self.body = None
+ self.version = 0
+
+ ## \var impl
+ # DOMImplementation for XML parsing.
+
+ ## \var doc
+ # Document XML object.
+
+ ## \var root
+ # Root element ("souffleur" section) in the object.
+
+ ## \var head
+ # Object of the "head" section in the XML.
+
+ ## \var body
+ # Object of the "body" section in the XML.
+
+ ## \var version
+ # Version of the pfoject file format.
+
+#==============================================================================
+ ## Load XML file.
+ # Load XML tree from the file.
+ # \param fileName - name of the XML project file.
+ # \return self object or None.
+ def load(self, fileName):
+ self.root = None
+ self.head = None
+ self.body = None
+ self.version = None
+ self.doc = xml.dom.minidom.parse(fileName)
+ if self.doc.documentElement.nodeName != "souffleur":
+ return None
+ self.root=self.doc.documentElement
+ for i in self.root.childNodes:
+ if i.nodeName=="head":
+ self.head=i
+ elif i.nodeName=="body":
+ self.body=i
+ elif i.nodeName=="version":
+ self.version = i.childNodes[0].nodeValue
+ return self
+
+#==============================================================================
+ ## Write XML.
+ # Write XML data to the file.
+ # \param fileName - name of file to store data.
+ def write(self, fileName):
+ HDLR=file(fileName, "w")
+ self.doc.writexml(HDLR)
+ HDLR.close()
+
+#==============================================================================
+ ## Add variable head.
+ # Add some variable to the head section.
+ # \param attrName - name of the attribute.
+ # \param attrValue - value of the attribute.
+ def addHeadInfo(self, attrName, attrValue):
+ if not self.head:
+ self.head=self.doc.createElement("head")
+ self.root.appendChild(self.head)
+
+ if not attrName or not attrValue:
+ return
+
+ attrEl = self.doc.createElement(attrName)
+ attrTxt = self.doc.createTextNode(attrValue)
+ attrEl.appendChild(attrTxt)
+ self.head.appendChild(attrEl)
+
+#==============================================================================
+ ## Add media.
+ # Add media info to the body section.
+ # \param media - Media class instance.
+ def addMedia(self, media):
+ if not media:
+ return
+ if type(media)!=type(Media()):
+ return
+ if not self.body:
+ self.body=self.doc.createElement("body")
+ self.root.appendChild(self.body)
+
+ data = self.doc.createElement("data")
+ self.body.appendChild(data)
+
+ source = self.doc.createElement("source")
+ sType= self.doc.createAttribute("type")
+ sType.nodeValue=media.MIME
+ source.setAttributeNode(sType)
+ sTxt = self.doc.createTextNode(media.source)
+ source.appendChild(sTxt)
+ data.appendChild(source)
+
+ for i in media.Streams:
+ tmpMedia = self.doc.createElement("media")
+ data.appendChild(tmpMedia)
+
+ tmpEl = self.doc.createElement("type")
+ tmpTxt = self.doc.createTextNode(i.MIME)
+ tmpEl.appendChild(tmpTxt)
+ tmpMedia.appendChild(tmpEl)
+
+ tmpEl = self.doc.createElement("name")
+ tmpTxt = self.doc.createTextNode(i.Name)
+ tmpEl.appendChild(tmpTxt)
+ tmpMedia.appendChild(tmpEl)
+
+ tmpEl = self.doc.createElement("id")
+ tmpTxt = self.doc.createTextNode(str(i.ID))
+ tmpEl.appendChild(tmpTxt)
+ tmpMedia.appendChild(tmpEl)
+
+ if not i.attrs:
+ continue
+
+ attrs = self.doc.createElement("attrs")
+ tmpMedia.appendChild(attrs)
+ for j in i.attrs.keys():
+ tmpEl = self.doc.createElement(j)
+ tmpTxt = self.doc.createTextNode(i.attrs[j])
+ tmpEl.appendChild(tmpTxt)
+ attrs.appendChild(tmpEl)
+
+#==============================================================================
+ ## Add subtitles.
+ # Add subtitles to the body section.
+ # \param subtitle - Subtitles class instance.
+ def addSubtitle(self, subtitle):
+ if not subtitle:
+ return
+ if type(subtitle)!=type(Subtitles()):
+ return
+ if not self.body:
+ self.body=self.doc.createElement("body")
+ self.root.appendChild(self.body)
+
+ data = self.doc.createElement("subtitles")
+ self.body.appendChild(data)
+
+ source = self.doc.createElement("source")
+ sTxt = self.doc.createTextNode(str(subtitle.subSource))
+ source.appendChild(sTxt)
+ data.appendChild(source)
+
+ for i in subtitle.subKeys:
+ sub = self.doc.createElement("sub")
+ tmpEl = self.doc.createElement("start")
+ tmpTxt = self.doc.createTextNode(str(subtitle.subs[i].start_time))
+ tmpEl.appendChild(tmpTxt)
+ sub.appendChild(tmpEl)
+ tmpEl = self.doc.createElement("end")
+ tmpTxt = self.doc.createTextNode(str(subtitle.subs[i].end_time))
+ tmpEl.appendChild(tmpTxt)
+ sub.appendChild(tmpEl)
+ tmpEl = self.doc.createElement("text")
+ tmpTxt = self.doc.createTextNode(str(subtitle.subs[i].text))
+ tmpEl.appendChild(tmpTxt)
+ sub.appendChild(tmpEl)
+ data.appendChild(sub)
+
+#==============================================================================
+ ##Get head
+ # Get list of the head section attributes.
+ # \return list of the attrName => attrValue
+ def getHead(self):
+ if not self.head:
+ return None
+ ret={}
+ for i in self.head.childNodes:
+ ret[i.nodeName]=i.childNodes[0].nodeValue
+ return ret
+
+#==============================================================================
+ ## Get media.
+ # Get media info from XML.
+ # \return List of the Media class.
+ def getMedia(self):
+ if not self.body:
+ return None
+ ret=[]
+ for i in self.body.childNodes:
+ if i.nodeName=="data":
+ tMedia=Media()
+ for j in i.childNodes:
+ if j.nodeName=="source":
+ mType=j.attributes["type"]
+ if not mType:
+ return None
+ tMedia.MIME=mType.nodeValue
+ tMedia.source=j.childNodes[0].nodeValue
+ elif j.nodeName=="media":
+ tStream = Stream()
+ for k in j.childNodes:
+ nodeName = k.nodeName
+ if nodeName == "type":
+ tStream.MIME = k.childNodes[0].nodeValue
+ elif nodeName == "id":
+ tStream.ID = k.childNodes[0].nodeValue
+ elif nodeName == "name":
+ tStream.Name = k.childNodes[0].nodeValue
+ elif nodeName == "attrs":
+ for l in k.childNodes:
+ tStream.addAttr(l.nodeName, l.childNodes[0].nodeValue)
+ tMedia.addStream(tStream)
+ ret.append(tMedia)
+ return ret
+
+#==============================================================================
+ ##Get subtitles.
+ # Get subtitles from XML project file.
+ # \raturn Array of the Subtitles.
+ def getSubtitle(self):
+ if not self.body:
+ return None
+ ret=[]
+ for i in self.body.childNodes:
+ if i.nodeName=="subtitles":
+ tSubtitles=Subtitles()
+ for j in i.childNodes:
+ if j.nodeName=="source":
+ tSubtitles.subSource=j.childNodes[0].nodeValue
+ elif j.nodeName=="sub":
+ tSub=Sub()
+ for k in j.childNodes:
+ nodeName = k.nodeName
+ if nodeName == "start":
+ tSub.start_time=int(k.childNodes[0].nodeValue)
+ elif nodeName == "end":
+ tSub.end_time=int(k.childNodes[0].nodeValue)
+ elif nodeName == "text":
+ tSub.text=str(k.childNodes[0].nodeValue)
+ tSubtitles.subs[tSub.start_time]=tSub
+ tSubtitles.updateKeys()
+ ret.append(tSubtitles)
+ return ret
More information about the commits
mailing list