0001 ### BITPIM 0002 ### 0003 ### Copyright (C) 2006 Joe Pham <djpham@netzero.com> 0004 ### 0005 ### This program is free software; you can redistribute it and/or modify 0006 ### it under the terms of the BitPim license as detailed in the LICENSE file. 0007 ### 0008 ### $Id: wpl_file.py 3542 2006-08-31 03:40:06Z djpham $ 0009 0010 """Handle MS Windows Media Player Play List (wpl) files""" 0011 0012 # System modules 0013 import xml.dom.minidom as dom 0014 0015 class WPL(object): 0016 def __init__(self, data=None, filename=None): 0017 self.title='' 0018 self.songs=[] 0019 try: 0020 if data: 0021 self._decode(data) 0022 elif filename: 0023 self._decode(file(filename, 'rt').read()) 0024 except (IndexError, IOError): 0025 pass 0026 0027 def _node_value(self, node, name): 0028 try: 0029 return node.getElementsByTagName(name)[0].firstChild.data 0030 except IndexError: 0031 # the tag does not exist 0032 return None 0033 except: 0034 if __debug__: raise 0035 return None 0036 0037 def _decode(self, data): 0038 # decode the xml stream 0039 _wpl=dom.parseString(data) 0040 _head=_wpl.getElementsByTagName('head')[0] 0041 self.title=self._node_value(_head, 'title') 0042 _seq=_wpl.getElementsByTagName('seq')[0] 0043 _media=_seq.getElementsByTagName('media') 0044 for _item in _media: 0045 self.songs.append(_item.getAttribute('src')) 0046
Generated by PyXR 0.9.4