Verified Commit 119df013 authored by Agate's avatar Agate 💬

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

parent 2b7dac21
Pipeline #4061 passed with stages
in 2 minutes and 33 seconds
......@@ -3,6 +3,7 @@ import memoize.djangocache
import funkwhale_api
from funkwhale_api.common import preferences
from funkwhale_api.federation import actors
from funkwhale_api.music import utils as music_utils
from . import stats
......@@ -34,6 +35,7 @@ def get():
"common__api_authentication_required"
),
},
"supportedUploadExtensions": music_utils.SUPPORTED_EXTENSIONS,
},
}
if share_stats:
......
......@@ -39,6 +39,10 @@ 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}
SUPPORTED_EXTENSIONS = list(
sorted(set([ext for ext, _ in AUDIO_EXTENSIONS_AND_MIMETYPE]))
)
def get_ext_from_type(mimetype):
return MIMETYPE_TO_EXTENSION.get(mimetype)
......
import funkwhale_api
from funkwhale_api.instance import nodeinfo
from funkwhale_api.federation import actors
from funkwhale_api.music import utils as music_utils
def test_nodeinfo_dump(preferences, mocker):
......@@ -46,6 +47,7 @@ def test_nodeinfo_dump(preferences, mocker):
"favorites": {"tracks": {"total": stats["track_favorites"]}},
"listenings": {"total": stats["listenings"]},
},
"supportedUploadExtensions": music_utils.SUPPORTED_EXTENSIONS,
},
}
assert nodeinfo.get() == expected
......@@ -76,6 +78,7 @@ def test_nodeinfo_dump_stats_disabled(preferences, mocker):
"common__api_authentication_required"
],
},
"supportedUploadExtensions": music_utils.SUPPORTED_EXTENSIONS,
},
}
assert nodeinfo.get() == expected
Advertise the list of supported upload extensions in the Nodeinfo endpoint (#808)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment