home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyc (Python 2.6)
-
- import xml.sax as xml
- import xml.sax.handler as xml
- markups = [
- 'JamendoData',
- 'Artists',
- 'artist',
- 'Albums',
- 'album',
- 'Tracks',
- 'track']
- ignore = [
- 'location',
- 'country',
- 'state',
- 'city',
- 'latitude',
- 'longitude']
-
- class JamendoSaxHandler(xml.sax.handler.ContentHandler):
-
- def __init__(self):
- xml.sax.handler.ContentHandler.__init__(self)
- self.current = { }
-
-
- def startElement(self, name, attrs):
- self._JamendoSaxHandler__text = ''
- self._JamendoSaxHandler__ignore = False
- if name in markups:
- fct = getattr(self, 'start' + name)
- fct(attrs)
-
- if name in ignore:
- self._JamendoSaxHandler__ignore = True
-
-
-
- def endElement(self, name):
- if name in markups:
- fct = getattr(self, 'end' + name)
- fct()
- elif self._JamendoSaxHandler__ignore is False:
- self.current[name] = self._JamendoSaxHandler__text
-
-
-
- def characters(self, content):
- if self._JamendoSaxHandler__ignore is False:
- self._JamendoSaxHandler__text = self._JamendoSaxHandler__text + content
-
-
-
- def startJamendoData(self, attrs):
- pass
-
-
- def startArtists(self, attrs):
- self.artists = { }
-
-
- def startartist(self, attrs):
- self.artist = { }
- for attr in attrs.getNames():
- self.artist[attr] = attrs[attr]
-
- self.current = self.artist
-
-
- def startAlbums(self, attrs):
- self.albums = { }
-
-
- def startalbum(self, attrs):
- self.album = { }
- for attr in attrs.getNames():
- self.album[attr] = attrs[attr]
-
- self.current = self.album
-
-
- def startTracks(self, attrs):
- self.tracks = { }
-
-
- def starttrack(self, attrs):
- self.track = { }
- for attr in attrs.getNames():
- self.track[attr] = attrs[attr]
-
- self.current = self.track
-
-
- def endJamendoData(self):
- pass
-
-
- def endArtists(self):
- pass
-
-
- def endartist(self):
- self.artists[self.artist['id']] = self.artist
-
-
- def endAlbums(self):
- self.artist['ALBUMS'] = self.albums
-
-
- def endalbum(self):
- self.albums[self.album['id']] = self.album
-
-
- def endTracks(self):
- self.album['TRACKS'] = self.tracks
-
-
- def endtrack(self):
- self.tracks[self.track['id']] = self.track
-
-
- if __name__ == '__main__':
- parser = xml.sax.make_parser()
- handler = JamendoSaxHandler()
- parser.setContentHandler(handler)
- datasource = open('/tmp/dbdump.en.xml')
- parser.parse(datasource)
- tracks = handler.tracks
- artists = handler.artists
- albums = handler.albums
- for track_key in tracks.keys():
- track = tracks[track_key]
- album = albums[track['albumID']]
- artist = artists[album['artistID']]
- print album['P2PLinks']
-
-
-