1 # console interface to jamaui/jamaendo
3 # debugging hack - add . to path
5 local_module_dir = os.path.join(os.path.dirname(sys.argv[0]), '..')
6 if os.path.isdir(local_module_dir):
7 sys.path.append(local_module_dir)
9 from jamaendo.api import LocalDB, Query, Queries, refresh_dump
10 from jamaui.player import Player, Playlist
13 class Refresher(object):
17 print "Preparing local database..."
20 def progress(self, percent):
21 if percent - self.last_percent >= 5:
22 print "\r%d%%" % (percent),
23 self.last_percent = percent
26 refresh_dump(self.complete, self.progress, force=False)
33 print json.dumps(x, sort_keys=True, indent=4)
35 class Console(object):
48 getattr(self, "query_"+query)()
50 print "Valid queries: " + ", ".join(queries)
52 def query_today(self):
53 result = Queries.albums_today()
56 def query_tracks_this_month(self):
57 result = Queries.tracks_this_month()
60 def query_artist(self):
64 for artist in db.search_artists(q):
67 def query_album(self):
71 for album in db.search_albums(q):
72 print "%s: %s - %s" % (album['id'], album['artist'], album['name'])
74 def query_play_track(self):
75 trackid = int(sys.argv[2])
76 uri = Query.track_mp3(trackid)
78 playlist = Playlist(items)
82 def query_play_album(self):
83 albumid = int(sys.argv[2])
87 for a in db.get_albums([albumid]):
92 print "%s - %s" % (album['artist'], album['name'])
93 items = [Query.track_mp3(int(track['id'])) for track in album['tracks']]
95 playlist = Playlist(items)
99 while player.playing():
102 if __name__=="__main__":