From 7b68b9056996139b7a29ca371923a548b9483f6f Mon Sep 17 00:00:00 2001 From: =?utf8?q?Daniel=20Mart=C3=AD?= Date: Fri, 26 Jun 2015 17:41:19 +0200 Subject: [PATCH] update: never include empty elements in the index --- fdroidserver/update.py | 59 +++++++++++++++++++----------------------- 1 file changed, 26 insertions(+), 33 deletions(-) diff --git a/fdroidserver/update.py b/fdroidserver/update.py index 69fc0ec4..f44f3549 100644 --- a/fdroidserver/update.py +++ b/fdroidserver/update.py @@ -711,11 +711,15 @@ def make_index(apps, sortedids, apks, repodir, archive, categories): doc = Document() def addElement(name, value, doc, parent): + if not value: + return el = doc.createElement(name) el.appendChild(doc.createTextNode(value)) parent.appendChild(el) def addElementCDATA(name, value, doc, parent): + if not value: + return el = doc.createElement(name) el.appendChild(doc.createCDATASection(value)) parent.appendChild(el) @@ -795,8 +799,7 @@ def make_index(apps, sortedids, apks, repodir, archive, categories): addElement('lastupdated', time.strftime('%Y-%m-%d', app['lastupdated']), doc, apel) addElement('name', app['Name'], doc, apel) addElement('summary', app['Summary'], doc, apel) - if app['icon']: - addElement('icon', app['icon'], doc, apel) + addElement('icon', app['icon'], doc, apel) def linkres(appid): if appid in apps: @@ -807,7 +810,7 @@ def make_index(apps, sortedids, apks, repodir, archive, categories): metadata.description_html(app['Description'], linkres), doc, apel) addElement('license', app['License'], doc, apel) - if 'Categories' in app: + if 'Categories' in app and app['Categories']: addElement('categories', ','.join(app["Categories"]), doc, apel) # We put the first (primary) category in LAST, which will have # the desired effect of making clients that only understand one @@ -816,18 +819,12 @@ def make_index(apps, sortedids, apks, repodir, archive, categories): addElement('web', app['Web Site'], doc, apel) addElement('source', app['Source Code'], doc, apel) addElement('tracker', app['Issue Tracker'], doc, apel) - if app['Changelog']: - addElement('changelog', app['Changelog'], doc, apel) - if app['Donate']: - addElement('donate', app['Donate'], doc, apel) - if app['Bitcoin']: - addElement('bitcoin', app['Bitcoin'], doc, apel) - if app['Litecoin']: - addElement('litecoin', app['Litecoin'], doc, apel) - if app['Dogecoin']: - addElement('dogecoin', app['Dogecoin'], doc, apel) - if app['FlattrID']: - addElement('flattr', app['FlattrID'], doc, apel) + addElement('changelog', app['Changelog'], doc, apel) + addElement('donate', app['Donate'], doc, apel) + addElement('bitcoin', app['Bitcoin'], doc, apel) + addElement('litecoin', app['Litecoin'], doc, apel) + addElement('dogecoin', app['Dogecoin'], doc, apel) + addElement('flattr', app['FlattrID'], doc, apel) # These elements actually refer to the current version (i.e. which # one is recommended. They are historically mis-named, and need @@ -835,19 +832,17 @@ def make_index(apps, sortedids, apks, repodir, archive, categories): addElement('marketversion', app['Current Version'], doc, apel) addElement('marketvercode', app['Current Version Code'], doc, apel) - if app['AntiFeatures']: - af = app['AntiFeatures'].split(',') - # TODO: Temporarily not including UpstreamNonFree in the index, - # because current F-Droid clients do not understand it, and also - # look ugly when they encounter an unknown antifeature. This - # filtering can be removed in time... - if 'UpstreamNonFree' in af: - af.remove('UpstreamNonFree') - if af: - addElement('antifeatures', ','.join(af), doc, apel) - if app['Provides']: - pv = app['Provides'].split(',') - addElement('provides', ','.join(pv), doc, apel) + af = app['AntiFeatures'].split(',') + # TODO: Temporarily not including UpstreamNonFree in the index, + # because current F-Droid clients do not understand it, and also + # look ugly when they encounter an unknown antifeature. This + # filtering can be removed in time... + if 'UpstreamNonFree' in af: + af.remove('UpstreamNonFree') + if af: + addElement('antifeatures', ','.join(af), doc, apel) + pv = app['Provides'].split(',') + addElement('provides', ','.join(pv), doc, apel) if app['Requires Root']: addElement('requirements', 'root', doc, apel) @@ -892,12 +887,10 @@ def make_index(apps, sortedids, apks, repodir, archive, categories): addElement('maxsdkver', str(apk['maxsdkversion']), doc, apkel) if 'added' in apk: addElement('added', time.strftime('%Y-%m-%d', apk['added']), doc, apkel) - if len(apk['permissions']) > 0: - addElement('permissions', ','.join(apk['permissions']), doc, apkel) - if 'nativecode' in apk and len(apk['nativecode']) > 0: + addElement('permissions', ','.join(apk['permissions']), doc, apkel) + if 'nativecode' in apk: addElement('nativecode', ','.join(apk['nativecode']), doc, apkel) - if len(apk['features']) > 0: - addElement('features', ','.join(apk['features']), doc, apkel) + addElement('features', ','.join(apk['features']), doc, apkel) if current_version_file is not None \ and config['make_current_version_link'] \ -- 2.30.2