Module wpl_file
[hide private]
[frames] | no frames]

Source Code for Module wpl_file

 1  ### BITPIM 
 2  ### 
 3  ### Copyright (C) 2006 Joe Pham <djpham@netzero.com> 
 4  ### 
 5  ### This program is free software; you can redistribute it and/or modify 
 6  ### it under the terms of the BitPim license as detailed in the LICENSE file. 
 7  ### 
 8  ### $Id: wpl_file.py 3542 2006-08-31 03:40:06Z djpham $ 
 9   
10  """Handle MS Windows Media Player Play List (wpl) files""" 
11   
12  # System modules 
13  import xml.dom.minidom as dom 
14   
15 -class WPL(object):
16 - def __init__(self, data=None, filename=None):
17 self.title='' 18 self.songs=[] 19 try: 20 if data: 21 self._decode(data) 22 elif filename: 23 self._decode(file(filename, 'rt').read()) 24 except (IndexError, IOError): 25 pass
26
27 - def _node_value(self, node, name):
28 try: 29 return node.getElementsByTagName(name)[0].firstChild.data 30 except IndexError: 31 # the tag does not exist 32 return None 33 except: 34 if __debug__: raise 35 return None
36
37 - def _decode(self, data):
38 # decode the xml stream 39 _wpl=dom.parseString(data) 40 _head=_wpl.getElementsByTagName('head')[0] 41 self.title=self._node_value(_head, 'title') 42 _seq=_wpl.getElementsByTagName('seq')[0] 43 _media=_seq.getElementsByTagName('media') 44 for _item in _media: 45 self.songs.append(_item.getAttribute('src'))
46