import xmlrpclib import mx.DateTime parsetime = mx.DateTime.ISO.ParseDateTime class RadioAggregator: def __init__(self, username, password, host=None, numitems=50): self.user = username self.passwd = password if host is None: self.host = "http://127.0.0.1:5335/RPC2" else: self.host = host self.numitems = numitems server = xmlrpclib.Server(self.host) self.radio = server.aggregator def get_last_scan_info(self): res = self.radio.getLastScanInfo(self.user, self.passwd) if res['flScanRunningNow'] is True: print 'Scan in progress' else: t = res['whenComplete'].value print 'Last Last scan completed at %s. %s new items' % ( parsetime(t), res['ctNewItems']) return True def get_recent_items(self): current_channel = None res = self.radio.getRecentItems(self.numitems, self.user, self.passwd) for item in res.keys(): text = res[item]['itemText'] if text: title = res[item]['channelTitle'] url = res[item]['url'] when = res[item]['when'].value item_id = res[item]['itemId'] if current_channel != url: print '\n\n%s (%s) %s' % (title, url, parsetime(when)) current_channel = url print 'itemId: %s\n%s' % (item_id, text) if __name__ == '__main__': a = RadioAggregator('myusername', 'mypasssord') if a.get_last_scan_info(): a.get_recent_items()