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

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

parent b453769a
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