#!/usr/bin/env python from daap import DAAPClient import sys class DAAPProxy(object): def __init__( self, host, port = 3689): self.host = host self.port = port self.client = DAAPClient() self.client.connect( host, port) self.session = self.client.login() self.databases = self.session.databases() libid = self.session.library().id self.database = None for d in self.databases: if str( d.id) == str( id): self.database = d if self.database == None: self.database = d self.tracks = self.database.tracks() def generate_url( self, track): return 'http://%s:%d/databases/%d/items/%d.%s?session-id=%d' % ( self.host, self.port, self.database.id, track.id, track.type, self.session.sessionid ) def print_rss( self, file = sys.stdout): file.write( '\n') file.write( '\n') file.write( '\n') file.write( '%s (daap)\n' % ( self.host )) file.write( 'Live RSS feed generated by DAAP-Proxy.\n') file.write( 'http://%s:%s/\n' % ( self.host, self.port )) for t in self.tracks: try: name = ascii( '%s - %s' % ( t.artist, t.name )) except: name = '%s - %s' % ( repr( t.artist), repr( t.name) ) file.write( '\n') file.write( '%s\n' % ( name )) file.write( '%s\n' % ( name )) file.write( '\n' % ( self.generate_url( t) )) file.write( '\n') file.write( '\n') # testing code proxy = DAAPProxy( "ignition") proxy.print_rss() proxy.print_rss( open( "test.rss", "w")) sys.stdin.readline()