Skip to content
Snippets Groups Projects
Verified Commit 119df013 authored by Eliot Berriot's avatar Eliot Berriot
Browse files

Fix #808: Advertise the list of supported upload extensions in the Nodeinfo endpoint

parent 2b7dac21
No related branches found
No related tags found
No related merge requests found
...@@ -3,6 +3,7 @@ import memoize.djangocache ...@@ -3,6 +3,7 @@ import memoize.djangocache
import funkwhale_api import funkwhale_api
from funkwhale_api.common import preferences from funkwhale_api.common import preferences
from funkwhale_api.federation import actors from funkwhale_api.federation import actors
from funkwhale_api.music import utils as music_utils
from . import stats from . import stats
...@@ -34,6 +35,7 @@ def get(): ...@@ -34,6 +35,7 @@ def get():
"common__api_authentication_required" "common__api_authentication_required"
), ),
}, },
"supportedUploadExtensions": music_utils.SUPPORTED_EXTENSIONS,
}, },
} }
if share_stats: if share_stats:
......
...@@ -39,6 +39,10 @@ AUDIO_EXTENSIONS_AND_MIMETYPE = [ ...@@ -39,6 +39,10 @@ AUDIO_EXTENSIONS_AND_MIMETYPE = [
EXTENSION_TO_MIMETYPE = {ext: mt for ext, mt in AUDIO_EXTENSIONS_AND_MIMETYPE} EXTENSION_TO_MIMETYPE = {ext: mt for ext, mt in AUDIO_EXTENSIONS_AND_MIMETYPE}
MIMETYPE_TO_EXTENSION = {mt: ext for ext, mt in AUDIO_EXTENSIONS_AND_MIMETYPE} MIMETYPE_TO_EXTENSION = {mt: ext for ext, mt in AUDIO_EXTENSIONS_AND_MIMETYPE}
SUPPORTED_EXTENSIONS = list(
sorted(set([ext for ext, _ in AUDIO_EXTENSIONS_AND_MIMETYPE]))
)
def get_ext_from_type(mimetype): def get_ext_from_type(mimetype):
return MIMETYPE_TO_EXTENSION.get(mimetype) return MIMETYPE_TO_EXTENSION.get(mimetype)
......
import funkwhale_api import funkwhale_api
from funkwhale_api.instance import nodeinfo from funkwhale_api.instance import nodeinfo
from funkwhale_api.federation import actors from funkwhale_api.federation import actors
from funkwhale_api.music import utils as music_utils
def test_nodeinfo_dump(preferences, mocker): def test_nodeinfo_dump(preferences, mocker):
...@@ -46,6 +47,7 @@ def test_nodeinfo_dump(preferences, mocker): ...@@ -46,6 +47,7 @@ def test_nodeinfo_dump(preferences, mocker):
"favorites": {"tracks": {"total": stats["track_favorites"]}}, "favorites": {"tracks": {"total": stats["track_favorites"]}},
"listenings": {"total": stats["listenings"]}, "listenings": {"total": stats["listenings"]},
}, },
"supportedUploadExtensions": music_utils.SUPPORTED_EXTENSIONS,
}, },
} }
assert nodeinfo.get() == expected assert nodeinfo.get() == expected
...@@ -76,6 +78,7 @@ def test_nodeinfo_dump_stats_disabled(preferences, mocker): ...@@ -76,6 +78,7 @@ def test_nodeinfo_dump_stats_disabled(preferences, mocker):
"common__api_authentication_required" "common__api_authentication_required"
], ],
}, },
"supportedUploadExtensions": music_utils.SUPPORTED_EXTENSIONS,
}, },
} }
assert nodeinfo.get() == expected assert nodeinfo.get() == expected
Advertise the list of supported upload extensions in the Nodeinfo endpoint (#808)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment