Sanitize remote tracks' saving locations with slashes on their names

For that case, the resulting saved file made use of these slashes to
store the tracks in subdirectories of federation_cache/xx/xx/xx, instead of
in the federation_cache/xx/xx/xx directory itself. As a consequence, the
tracks are downloaded in the wrong location, and upon any trial of
playing the tracks, funkwhale responds with the message
"The track cannot be loaded. You can have connectivity issues"

An example of a podcast with this kind of RSS items is located in
https://www.rtve.es/api/programas/2082/audios.rss

This commit overcomes this by a simple replacement of the offending
slashes to hyphens.
environments/review-front-1484-as24u7/deployments/7232
Blopware 2021-04-29 19:22:33 +02:00 zatwierdzone przez Georg Krause
rodzic 33f7993477
commit 0c8f4400b0
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: FD479B9A4D48E632
2 zmienionych plików z 5 dodań i 0 usunięć

Wyświetl plik

@ -75,11 +75,15 @@ def set_query_parameter(url, **kwargs):
@deconstructible
class ChunkedPath(object):
def sanitize_filename(self, filename):
return filename.replace("/", "-")
def __init__(self, root, preserve_file_name=True):
self.root = root
self.preserve_file_name = preserve_file_name
def __call__(self, instance, filename):
self.sanitize_filename(filename)
uid = str(uuid.uuid4())
chunk_size = 2
chunks = [uid[i : i + chunk_size] for i in range(0, len(uid), chunk_size)]

Wyświetl plik

@ -0,0 +1 @@
Sanitize remote tracks' saving locations with slashes on their names (#1435)