diff --git a/api/funkwhale_api/music/models.py b/api/funkwhale_api/music/models.py index 5ee5d851dc122f2aa632952eed2b218d76b0dfd7..64c6e9913df47ff8ecacdb30d84f5b7b34238a59 100644 --- a/api/funkwhale_api/music/models.py +++ b/api/funkwhale_api/music/models.py @@ -467,7 +467,7 @@ class TrackFile(models.Model): @property def filename(self): - return '{}{}'.format( + return '{}.{}'.format( self.track.full_name, self.extension) diff --git a/api/funkwhale_api/music/views.py b/api/funkwhale_api/music/views.py index b104bf38991fc8b742ef05f8727295889456ea7a..f06f86f1d036f9c5cd0839957ff96b58f41bfb81 100644 --- a/api/funkwhale_api/music/views.py +++ b/api/funkwhale_api/music/views.py @@ -275,7 +275,10 @@ def handle_serve(track_file): file_path = get_file_path(audio_file) elif f.source and f.source.startswith('file://'): file_path = get_file_path(f.source.replace('file://', '', 1)) - response = Response() + if mt: + response = Response(content_type=mt) + else: + response = Response() filename = f.filename mapping = { 'nginx': 'X-Accel-Redirect', diff --git a/api/tests/music/test_models.py b/api/tests/music/test_models.py index 9f52ba8874e50c10ea0216cacc8363ab767d6396..d76c09a01e41a4e63416e5b4da7a1f07a24d9515 100644 --- a/api/tests/music/test_models.py +++ b/api/tests/music/test_models.py @@ -77,3 +77,11 @@ def test_audio_track_mime_type(extention, mimetype, factories): tf = factories['music.TrackFile'](audio_file__from_path=path) assert tf.mimetype == mimetype + + +def test_track_file_file_name(factories): + name = 'test.mp3' + path = os.path.join(DATA_DIR, name) + tf = factories['music.TrackFile'](audio_file__from_path=path) + + assert tf.filename == tf.track.full_name + '.mp3' diff --git a/changes/changelog.d/204.bugfix b/changes/changelog.d/204.bugfix new file mode 100644 index 0000000000000000000000000000000000000000..370f1d837784513970bb2f1b9fa155895d6d5737 --- /dev/null +++ b/changes/changelog.d/204.bugfix @@ -0,0 +1 @@ +Fixed missing dot when downloading file (#204)