1
0
Fork 0
mirror of https://github.com/YunoHost/apps.git synced 2024-09-03 20:06:07 +02:00

store: port badge mechanism from the old tartiflette

This commit is contained in:
Alexandre Aubin 2024-05-11 19:43:09 +02:00
parent 3ff5a3d3a7
commit 5b7e29dd93
2 changed files with 64 additions and 0 deletions

View file

@ -511,6 +511,50 @@ def news_rss():
return response
# Badges
@app.route('/integration/<app>')
@app.route('/integration/<app>.svg')
@app.route('/badge/<type>/<app>')
@app.route('/badge/<type>/<app>.svg')
def badge(app, type="integration"):
data = get_dashboard_data()
catalog = get_catalog()["apps"]
catalog_level = catalog.get(app, {}).get("level")
main_ci_level = data.get(app, {}).get("ci_results", {}).get("main", {}).get("level", '?')
if type == "integration":
if app in catalog and main_ci_level:
badge = f"level{main_ci_level}"
else:
badge = "unknown"
elif type == "state":
if app not in catalog:
badge = "state-unknown"
else:
if catalog_level in [None, '?']:
badge = "state-just-got-added-to-catalog"
elif catalog_level in [0, -1]:
badge = "state-broken"
else:
badge = "state-working"
elif type == "maintained":
if app in catalog and catalog.get(app, {}).get("maintained") is False:
badge = "unmaintained"
else:
badge = "empty"
else:
badge = "empty"
svg = open(f"assets/badges/{badge}.svg").read()
response = make_response(svg)
response.content_type = 'image/svg+xml'
response.headers['Cache-Control'] = 'no-cache, no-store, must-revalidate'
response.headers['Pragma'] = 'no-cache'
return response
###############################################################################
# Session / SSO using Discourse #

View file

@ -0,0 +1,20 @@
wget -O - https://img.shields.io/badge/Integration-Level_9-blue.svg > level9.svg
wget -O - https://img.shields.io/badge/Integration-Level_8-brightgreen.svg > level8.svg
wget -O - https://img.shields.io/badge/Integration-Level_7-green.svg > level7.svg
wget -O - https://img.shields.io/badge/Integration-Level_6-yellowgreen.svg > level6.svg
wget -O - https://img.shields.io/badge/Integration-Level_5-yellowgreen.svg > level5.svg
wget -O - https://img.shields.io/badge/Integration-Level_4-yellow.svg > level4.svg
wget -O - https://img.shields.io/badge/Integration-Level_3-yellow.svg > level3.svg
wget -O - https://img.shields.io/badge/Integration-Level_2-orange.svg > level2.svg
wget -O - https://img.shields.io/badge/Integration-Level_1-orange.svg > level1.svg
wget -O - https://img.shields.io/badge/Integration-Level_0-red.svg > level0.svg
wget -O - https://img.shields.io/badge/Integration-Unknown-lightgrey.svg > unknown.svg
wget -O - https://upload.wikimedia.org/wikipedia/commons/1/1d/No_image.svg > empty.svg
wget -O - https://img.shields.io/badge/Status-Package%20not%20maintained-red.svg > unmaintained.svg
wget -O - https://img.shields.io/badge/Status-working-brightgreen.svg > state-working.svg
wget -O - https://img.shields.io/badge/Status-Just%20got%20added%20to%20catalog-yellowgreen.svg > state-just-got-added-to-catalog.svg
wget -O - https://img.shields.io/badge/Status-In%20progress-orange.svg > state-inprogress.svg
wget -O - https://img.shields.io/badge/Status-Not%20working-red.svg > state-notworking.svg
wget -O - https://img.shields.io/badge/Status-Broken-red.svg > state-broken.svg