]> git.decadent.org.uk Git - dak.git/blob - dakweb/queries/madison.py
Allow json format for madison
[dak.git] / dakweb / queries / madison.py
1 import bottle
2 import json
3
4 from daklib.ls import list_packages
5 from dakweb.webregister import QueryRegister
6
7 @bottle.route('/madison')
8 def madison():
9     r = bottle.request
10
11     packages = r.query.get('package', '').split()
12     kwargs = dict()
13
14     binary_type = r.query.get('b', None)
15     if binary_type is not None:
16         kwargs['binary_types'] = [binary_type]
17     component = r.query.get('c', None)
18     if component is not None:
19         kwargs['components'] = component.split(",")
20     suite = r.query.get('s', None)
21     if suite is not None:
22         kwargs['suites'] = suite.split(",")
23     if 'S' in r.query:
24         kwargs['source_and_binary'] = True
25     #if 'r' in r.query:
26     #    kwargs['regex'] = True
27     format = r.query.get('f', None)
28     if format is not None:
29         kwargs['format'] = 'python'
30
31     result = list_packages(packages, **kwargs)
32
33     if format is None:
34         bottle.response.content_type = 'text/plain'
35         for row in result:
36             yield row
37             yield "\n"
38     else:
39         yield json.dumps(list(result))
40
41
42 QueryRegister().register_path('/madison', madison)