ebf97d66004f159135abf4364c2d9552b3eedcc5
[jamaendo] / scripts / query
1 #!/usr/bin/env python
2 from jamaendo.api import LocalDB, Queries, refresh_dump
3 import sys, time
4
5 class Refresher(object):
6     def __init__(self):
7         self.done = False
8         self.last_percent = 0
9         print "..."
10     def complete(self):
11         print "Done."
12         self.done = True
13     def progress(self, percent):
14         if percent - self.last_percent >= 5:
15             print "\r%d%%" % (percent),
16             self.last_percent = percent
17
18     def run(self):
19         refresh_dump(self.complete, self.progress, force=False)
20         while not self.done:
21             time.sleep(1)
22
23
24 def pprint(x):
25     import json
26     print json.dumps(x, sort_keys=True, indent=4)
27
28 def main():
29     Refresher().run()
30
31     query = sys.argv[1]
32
33     if query == 'today':
34         result = Queries.albums_today()
35         pprint(result)
36     elif query == 'tracks_this_month':
37         result = Queries.tracks_this_month()
38         pprint(result)
39     elif query == 'artist':
40         q = sys.argv[2]
41         db = LocalDB()
42         db.connect()
43         for artist in db.search_artists(q):
44             pprint(artist)
45     elif query == 'album':
46         q = sys.argv[2]
47         db = LocalDB()
48         db.connect()
49         for album in db.search_albums(q):
50             pprint(album)
51
52 if __name__=="__main__":
53     main()