diff --git a/KerbalStuff/blueprints/mods.py b/KerbalStuff/blueprints/mods.py index f9eea342..1402448e 100644 --- a/KerbalStuff/blueprints/mods.py +++ b/KerbalStuff/blueprints/mods.py @@ -480,14 +480,16 @@ def _allow_download(mod: Mod) -> bool: @mods.route('/mod//download/', defaults={'mod_name': None}) +@mods.route('/mod//download', defaults={'mod_name': None, 'version': None}) +@mods.route('/mod///download', defaults={'version': None}) @mods.route('/mod///download/') @with_session -def download(mod_id: int, mod_name: str, version: str) -> Optional[werkzeug.wrappers.Response]: +def download(mod_id: int, mod_name: Optional[str], version: Optional[str]) -> Optional[werkzeug.wrappers.Response]: mod, game = _get_mod_game_info(mod_id) if not _allow_download(mod): abort(401) - mod_version = ModVersion.query.filter(ModVersion.mod_id == mod_id, - ModVersion.friendly_version == version).first() + mod_version = mod.default_version if not version or version == 'download' \ + else next(filter(lambda v: v.friendly_version == version, mod.versions), None) if not mod_version: abort(404) download = DownloadEvent.query\ diff --git a/templates/mod.html b/templates/mod.html index 02b93820..cb506498 100644 --- a/templates/mod.html +++ b/templates/mod.html @@ -57,7 +57,7 @@

{% if user %} diff --git a/templates/mod_list.html b/templates/mod_list.html index 8d6967d9..9cbcccab 100644 --- a/templates/mod_list.html +++ b/templates/mod_list.html @@ -69,7 +69,7 @@

{% endif %}