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

merge-requests/552/head
Eliot Berriot 2019-01-14 17:11:24 +01:00
rodzic b453769a32
commit 6aaa51e8e7
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: DD6965E2476E5C27
5 zmienionych plików z 56 dodań i 1 usunięć

Wyświetl plik

@ -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",
]

Wyświetl plik

@ -0,0 +1,14 @@
"""
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()

Wyświetl plik

@ -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()

Wyświetl plik

@ -0,0 +1 @@
Added a script to prune pre 0.17 federated tracks (#564)

Wyświetl plik

@ -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]
-------------------------------------------------