PyXR

c:\projects\bitpim\src \ wpl_file.py



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