mirror of
https://github.com/YunoHost/yunohost.git
synced 2024-09-03 20:06:10 +02:00
Checking for 404 error and valid json format
This commit is contained in:
parent
991b64db92
commit
a61445c9c3
2 changed files with 15 additions and 2 deletions
|
@ -31,6 +31,7 @@
|
||||||
"appslist_fetched": "The app list has been fetched",
|
"appslist_fetched": "The app list has been fetched",
|
||||||
"appslist_removed": "The app list has been removed",
|
"appslist_removed": "The app list has been removed",
|
||||||
"appslist_retrieve_error": "Unable to retrieve the remote app list: {error}",
|
"appslist_retrieve_error": "Unable to retrieve the remote app list: {error}",
|
||||||
|
"appslist_retrieve_bad_format": "Retrieved file is not a valid app list",
|
||||||
"appslist_unknown": "Unknown app list",
|
"appslist_unknown": "Unknown app list",
|
||||||
"ask_current_admin_password": "Current administration password",
|
"ask_current_admin_password": "Current administration password",
|
||||||
"ask_email": "Email address",
|
"ask_email": "Email address",
|
||||||
|
|
|
@ -100,10 +100,22 @@ def app_fetchlist(url=None, name=None):
|
||||||
|
|
||||||
# Download file
|
# Download file
|
||||||
try:
|
try:
|
||||||
applist = requests.get(url, timeout=30).text
|
applist_request = requests.get(url, timeout=30)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
raise MoulinetteError(errno.EBADR, m18n.n('appslist_retrieve_error', error=str(e)))
|
raise MoulinetteError(errno.EBADR, m18n.n('appslist_retrieve_error', error=str(e)))
|
||||||
|
|
||||||
|
if (applist_request.status_code != 200):
|
||||||
|
raise MoulinetteError(errno.EBADR, m18n.n('appslist_retrieve_error', error="404, not found"))
|
||||||
|
|
||||||
|
# Validate app list format
|
||||||
|
# TODO / Possible improvement : better validation for app list (check that
|
||||||
|
# json fields actually look like an app list and not any json file)
|
||||||
|
applist = applist_request.text
|
||||||
|
try:
|
||||||
|
json.loads(applist)
|
||||||
|
except ValueError, e:
|
||||||
|
raise MoulinetteError(errno.EBADR, m18n.n('appslist_retrieve_bad_format'))
|
||||||
|
|
||||||
# Write app list to file
|
# Write app list to file
|
||||||
list_file = '%s/%s.json' % (repo_path, name)
|
list_file = '%s/%s.json' % (repo_path, name)
|
||||||
with open(list_file, "w") as f:
|
with open(list_file, "w") as f:
|
||||||
|
|
Loading…
Add table
Reference in a new issue