From 19e999ff0d7a7123b9ec424443fe2e0f52d4c292 Mon Sep 17 00:00:00 2001 From: Ciaran Gultnieks Date: Tue, 4 Sep 2012 18:46:06 +0100 Subject: [PATCH] Back-end support for multiple categories --- fdroidserver/update.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/fdroidserver/update.py b/fdroidserver/update.py index 83896e32..e7f0b5da 100644 --- a/fdroidserver/update.py +++ b/fdroidserver/update.py @@ -212,8 +212,10 @@ def main(): # Generate a list of categories... categories = [] for app in apps: - if app['Category'] not in categories: - categories.append(app['Category']) + cats = app['Category'].Split(';') + for cat in cats + if cat not in categories: + categories.append(cat) # Read known apks data (will be updated and written back when we've finished) knownapks = common.KnownApks() @@ -506,7 +508,12 @@ def main(): common.parse_description(app['Description']), doc, apel) addElement('license', app['License'], doc, apel) if 'Category' in app: - addElement('category', app['Category'], doc, apel) + # We put the first (primary) category in LAST, which will have + # the desired effect of making clients that only understand one + # category see that one. + cats = app['Category'].split(';').reverse() + for cat in cats: + addElement('category', cat, doc, apel) addElement('web', app['Web Site'], doc, apel) addElement('source', app['Source Code'], doc, apel) addElement('tracker', app['Issue Tracker'], doc, apel)