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:
parent
3ff5a3d3a7
commit
5b7e29dd93
2 changed files with 64 additions and 0 deletions
44
store/app.py
44
store/app.py
|
@ -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 #
|
||||
|
|
20
store/assets/badges/fetch_badges
Normal file
20
store/assets/badges/fetch_badges
Normal 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
|
Loading…
Add table
Reference in a new issue