Skip to content
Snippets Groups Projects
Commit 53660f84 authored by Eliot Berriot's avatar Eliot Berriot
Browse files

Merge branch '564-delete-old-federated-tracks' into 'develop'

Fix #564: Added a script to prune pre 0.17 federated tracks

Closes #564

See merge request funkwhale/funkwhale!535
parents b453769a 6aaa51e8
No related branches found
No related tags found
No related merge requests found
......@@ -2,6 +2,7 @@ from . import create_actors
from . import create_image_variations
from . import django_permissions_to_user_permissions
from . import migrate_to_user_libraries
from . import delete_pre_017_federated_uploads
from . import test
......@@ -10,5 +11,6 @@ __all__ = [
"create_image_variations",
"django_permissions_to_user_permissions",
"migrate_to_user_libraries",
"delete_pre_017_federated_uploads",
"test",
]
"""
Compute different sizes of image used for Album covers and User avatars
"""
from funkwhale_api.music.models import Upload
def main(command, **kwargs):
queryset = Upload.objects.filter(
source__startswith="http", source__contains="/federation/music/file/"
).exclude(source__contains="youtube")
total = queryset.count()
command.stdout.write("{} uploads found".format(total))
queryset.delete()
......@@ -12,7 +12,12 @@ def command():
@pytest.mark.parametrize(
"script_name", ["django_permissions_to_user_permissions", "test"]
"script_name",
[
"django_permissions_to_user_permissions",
"test",
"delete_pre_017_federated_uploads",
],
)
def test_script_command_list(command, script_name, mocker):
mocked = mocker.patch("funkwhale_api.common.scripts.{}.main".format(script_name))
......@@ -235,3 +240,17 @@ def test_migrate_to_users_libraries_command(
for part in ["followers", "following"]:
generate_actor_urls.assert_any_call(part, command.stdout)
def test_delete_pre_017_federated_uploads(factories, command):
to_delete = factories["music.Upload"](
source="https://test.com/federation/music/file/1"
)
to_keep = factories["music.Upload"](source="https://hello.world")
scripts.delete_pre_017_federated_uploads.main(command)
to_keep.refresh_from_db()
with pytest.raises(to_delete.__class__.DoesNotExist):
to_delete.refresh_from_db()
Added a script to prune pre 0.17 federated tracks (#564)
......@@ -52,6 +52,25 @@ Funkwhale will successfully extract licensing data for the following licenses:
Support for other licenses such as Art Libre or WTFPL will be added in future releases.
Delete pre 0.17 federated tracks [manual action suggested]
----------------------------------------------------------
If you were using Funkwhale before the 0.17 release and federated with other instances,
it's possible that you still have some unplayable federated files in the database.
To purge the database of those entries, you can run the following command:
On docker setups::
docker-compose run --rm api python manage.py script delete_pre_017_federated_uploads --no-input
On non-docker setups::
python manage.py script delete_pre_017_federated_uploads --no-input
Enable gzip compression [manual action suggested]
-------------------------------------------------
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment