From 54c6d2210233ff36b2afaf56108032ef0959166c Mon Sep 17 00:00:00 2001 From: Shin'ya Minazuki Date: Sat, 24 Jan 2026 16:16:49 -0300 Subject: [PATCH] =?UTF-8?q?=E9=9F=B3=E6=A5=BD=E3=81=A7=E6=A5=BD=E3=81=97?= =?UTF-8?q?=E3=81=BF=E3=81=BE=E3=81=97=E3=82=87=E3=81=86=EF=BC=81-Let's=20?= =?UTF-8?q?have=20fun=20with=20music!-?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Shin'ya Minazuki --- .env.dev | 6 +- .gitlab/issue_templates/Bug.md | 2 +- Makefile | 1 - README.md | 29 +---- api/Readme.md | 16 +-- api/config/plugins.py | 2 +- api/config/settings/common.py | 114 +++++++++--------- api/config/settings/local.py | 6 +- api/config/settings/testing.py | 2 +- api/config/urls/api.py | 2 +- api/docker/server.sh | 2 +- .../__init__.py | 0 .../activity/__init__.py | 0 .../activity/apps.py | 0 .../activity/record.py | 0 .../activity/serializers.py | 0 .../activity/utils.py | 0 .../activity/views.py | 0 .../audio/__init__.py | 0 .../audio/admin.py | 0 .../audio/categories.py | 0 .../audio/dynamic_preferences_registry.py | 0 .../audio/factories.py | 0 .../audio/filters.py | 0 .../audio/migrations/0001_initial.py | 0 .../audio/migrations/0002_channel_metadata.py | 0 .../audio/migrations/0003_channel_rss_url.py | 0 .../migrations/0004_alter_channel_metadata.py | 0 .../audio/migrations/__init__.py | 0 .../audio/models.py | 0 .../audio/renderers.py | 0 .../audio/serializers.py | 0 .../audio/spa_views.py | 4 +- .../audio/tasks.py | 0 .../audio/views.py | 2 +- .../cli/__init__.py | 0 .../cli/base.py | 0 .../cli/library.py | 0 .../cli/main.py | 0 .../cli/media.py | 0 .../cli/plugins.py | 2 +- .../cli/users.py | 4 +- .../cli/utils.py | 0 .../common/__init__.py | 0 .../common/admin.py | 0 .../common/apps.py | 0 .../common/authentication.py | 0 .../common/cache.py | 0 .../common/channels.py | 0 .../common/consumers.py | 0 .../common/decorators.py | 0 .../common/dynamic_preferences_registry.py | 0 .../common/factories.py | 0 .../common/fields.py | 0 .../common/filters.py | 0 .../common/locales.py | 0 .../common/management/__init__.py | 0 .../common/management/commands/__init__.py | 0 .../management/commands/createsuperuser.py | 2 +- .../common/management/commands/gitpod.py | 2 +- .../management/commands/inplace_to_s3.py | 0 .../management/commands/load_test_data.py | 0 .../management/commands/makemigrations.py | 2 +- .../common/management/commands/migrate.py | 0 .../common/management/commands/script.py | 0 .../common/management/commands/testdata.py | 0 .../common/middleware.py | 12 +- .../common/migrations/0001_initial.py | 0 .../common/migrations/0002_mutation.py | 0 .../common/migrations/0003_cit_extension.py | 0 .../migrations/0004_auto_20191111_1338.py | 0 .../migrations/0005_auto_20191125_1421.py | 0 .../common/migrations/0006_content.py | 0 .../migrations/0007_auto_20200116_1610.py | 0 .../migrations/0008_auto_20200701_1317.py | 0 .../migrations/0009_auto_20220627_1915.py | 0 .../common/migrations/__init__.py | 0 .../common/mixins.py | 0 .../common/models.py | 0 .../common/mutations.py | 0 .../common/pagination.py | 2 +- .../common/permissions.py | 0 .../common/preferences.py | 0 .../common/renderers.py | 0 .../common/routers.py | 0 .../common/scripts/__init__.py | 0 .../common/scripts/create_actors.py | 0 .../common/scripts/create_image_variations.py | 0 .../delete_pre_017_federated_uploads.py | 0 .../django_permissions_to_user_permissions.py | 0 .../scripts/migrate_to_user_libraries.py | 4 +- .../common/scripts/test.py | 0 .../common/search.py | 0 .../common/serializers.py | 0 .../common/session.py | 6 +- .../common/signals.py | 0 .../common/storage.py | 0 .../common/tasks.py | 0 .../common/throttling.py | 8 +- .../common/utils.py | 6 +- .../common/validators.py | 0 .../common/views.py | 0 .../contrib/__init__.py | 0 .../contrib/listenbrainz/__init__.py | 0 .../contrib/listenbrainz/client.py | 0 .../contrib/listenbrainz/funkwhale_ready.py | 4 +- .../contrib/listenbrainz/funkwhale_startup.py | 2 +- .../contrib/maloja/__init__.py | 0 .../contrib/maloja/funkwhale_ready.py | 0 .../contrib/maloja/funkwhale_startup.py | 2 +- .../contrib/scrobbler/README.rst | 4 +- .../contrib/scrobbler/__init__.py | 0 .../contrib/scrobbler/funkwhale_ready.py | 0 .../contrib/scrobbler/funkwhale_startup.py | 2 +- .../contrib/scrobbler/scrobbler.py | 0 .../contrib/sites/__init__.py | 0 .../contrib/sites/migrations/0001_initial.py | 0 .../0002_set_site_domain_and_name.py | 0 .../migrations/0003_auto_20171214_2205.py | 0 .../migrations/0004_alter_site_options.py | 0 .../contrib/sites/migrations/__init__.py | 0 .../factories.py | 4 +- .../favorites/__init__.py | 0 .../favorites/activities.py | 0 .../favorites/admin.py | 0 .../favorites/consumers.py | 0 .../favorites/factories.py | 0 .../favorites/filters.py | 0 .../favorites/migrations/0001_initial.py | 0 .../favorites/migrations/__init__.py | 0 .../favorites/models.py | 0 .../favorites/serializers.py | 0 .../favorites/urls.py | 0 .../favorites/views.py | 0 .../federation/__init__.py | 0 .../federation/activity.py | 4 +- .../federation/actors.py | 0 .../federation/admin.py | 0 .../federation/api_serializers.py | 0 .../federation/api_urls.py | 0 .../federation/api_views.py | 2 +- .../federation/authentication.py | 0 .../federation/contexts.py | 4 +- .../federation/decorators.py | 0 .../dynamic_preferences_registry.py | 0 .../federation/exceptions.py | 0 .../federation/factories.py | 0 .../federation/fields.py | 0 .../federation/filters.py | 0 .../federation/jsonld.py | 2 +- .../federation/keys.py | 0 .../federation/library.py | 0 .../federation/management/__init__.py | 0 .../management/commands/__init__.py | 0 .../management/commands/fix_federation_ids.py | 0 .../federation/migrations/0001_initial.py | 0 .../migrations/0002_auto_20180403_1620.py | 0 .../migrations/0003_auto_20180407_1010.py | 0 .../migrations/0004_auto_20180410_2025.py | 0 .../migrations/0005_auto_20180413_1723.py | 0 .../migrations/0006_auto_20180521_1702.py | 0 .../migrations/0007_auto_20180807_1748.py | 0 .../migrations/0008_auto_20180807_1748.py | 0 .../migrations/0009_auto_20180822_1956.py | 0 .../migrations/0010_auto_20180904_2011.py | 0 .../migrations/0011_auto_20180910_1902.py | 0 .../migrations/0012_auto_20180920_1803.py | 0 .../migrations/0013_auto_20181226_1935.py | 0 .../migrations/0014_auto_20181205_0958.py | 0 .../migrations/0015_populate_domains.py | 0 .../migrations/0016_auto_20181227_1605.py | 0 .../migrations/0017_auto_20190130_0926.py | 0 .../federation/migrations/0018_fetch.py | 0 .../migrations/0019_auto_20190611_0851.py | 0 .../migrations/0020_auto_20190730_0846.py | 0 .../migrations/0021_auto_20191029_1257.py | 0 .../migrations/0022_auto_20191204_1539.py | 0 .../migrations/0023_actor_summary_obj.py | 0 .../migrations/0024_actor_attachment_icon.py | 0 .../migrations/0025_auto_20200317_0820.py | 0 .../migrations/0026_public_key_format.py | 0 .../migrations/0027_auto_20220627_1915.py | 0 .../migrations/0028_auto_20221027_1141.py | 0 .../federation/migrations/__init__.py | 0 .../federation/models.py | 0 .../federation/mrf_policies.py | 0 .../federation/parsers.py | 0 .../federation/renderers.py | 0 .../federation/routes.py | 0 .../federation/schema_org.py | 0 .../federation/serializers.py | 0 .../federation/signing.py | 0 .../federation/spa_views.py | 2 +- .../federation/tasks.py | 2 +- .../federation/urls.py | 0 .../federation/utils.py | 2 +- .../federation/views.py | 2 +- .../federation/webfinger.py | 0 .../history/__init__.py | 0 .../history/activities.py | 0 .../history/admin.py | 0 .../history/factories.py | 0 .../history/filters.py | 0 .../history/migrations/0001_initial.py | 0 .../migrations/0002_auto_20180325_1433.py | 0 .../history/migrations/__init__.py | 0 .../history/models.py | 0 .../history/serializers.py | 0 .../history/urls.py | 0 .../history/views.py | 0 .../instance/__init__.py | 0 .../instance/consumers.py | 0 .../instance/dynamic_preferences_registry.py | 6 +- .../instance/pwa-manifest.json | 4 +- .../instance/serializers.py | 6 +- .../instance/stats.py | 0 .../instance/urls.py | 0 .../instance/urls_v2.py | 0 .../instance/views.py | 0 api/{funkwhale_api => funquail_api}/main.py | 0 .../manage/__init__.py | 0 .../manage/filters.py | 0 .../manage/serializers.py | 0 .../manage/urls.py | 0 .../manage/views.py | 0 .../moderation/__init__.py | 0 .../moderation/admin.py | 0 .../moderation/apps.py | 0 .../dynamic_preferences_registry.py | 0 .../moderation/factories.py | 0 .../moderation/filters.py | 0 .../moderation/management/__init__.py | 0 .../management/commands/__init__.py | 0 .../management/commands/mrf_check.py | 0 .../moderation/migrations/0001_initial.py | 0 .../migrations/0002_auto_20190213_0927.py | 0 .../moderation/migrations/0003_report.py | 0 .../moderation/migrations/0004_note.py | 0 .../migrations/0005_auto_20200317_0820.py | 0 .../migrations/0006_auto_20200803_1222.py | 0 .../migrations/0007_auto_20220627_1915.py | 0 .../moderation/migrations/__init__.py | 0 .../moderation/models.py | 0 .../moderation/mrf.py | 0 .../moderation/mrf_policies.py | 0 .../moderation/serializers.py | 0 .../moderation/signals.py | 0 .../moderation/tasks.py | 12 +- .../moderation/urls.py | 0 .../moderation/utils.py | 0 .../moderation/views.py | 0 .../music/__init__.py | 0 .../music/admin.py | 0 .../music/dynamic_preferences_registry.py | 0 .../music/factories.py | 0 .../music/fake_data.py | 0 .../music/filters.py | 0 .../music/importers.py | 0 .../music/licenses.py | 0 .../music/management/__init__.py | 0 .../music/management/commands/__init__.py | 0 .../commands/check_inplace_files.py | 0 .../management/commands/check_licenses.py | 0 .../management/commands/create_library.py | 0 .../music/management/commands/fix_uploads.py | 0 .../commands/generate_typesense_index.py | 4 +- .../music/management/commands/import_files.py | 4 +- .../management/commands/prune_library.py | 0 .../commands/prune_skipped_uploads.py | 0 .../commands/rebuild_music_permissions.py | 0 .../music/metadata.py | 0 .../music/migrations/0001_initial.py | 0 .../migrations/0002_auto_20151215_1645.py | 0 .../migrations/0003_auto_20151222_2233.py | 0 .../music/migrations/0004_track_tags.py | 0 .../music/migrations/0005_deduplicate.py | 0 .../music/migrations/0006_unique_mbid.py | 0 .../music/migrations/0007_track_position.py | 0 .../migrations/0008_auto_20160529_1456.py | 0 .../migrations/0009_auto_20160920_1614.py | 0 .../migrations/0010_auto_20160920_1742.py | 0 .../music/migrations/0011_rename_files.py | 0 .../migrations/0012_auto_20161122_1905.py | 0 .../migrations/0013_auto_20171213_2211.py | 0 .../migrations/0014_importjob_track_file.py | 0 .../0015_bind_track_file_to_import_job.py | 0 .../0016_trackfile_acoustid_track_id.py | 0 .../migrations/0017_auto_20171227_1728.py | 0 .../migrations/0018_auto_20180218_1554.py | 0 .../migrations/0019_populate_mimetypes.py | 0 .../migrations/0020_importbatch_status.py | 0 .../migrations/0021_populate_batch_status.py | 0 .../0022_importbatch_import_request.py | 0 .../migrations/0023_auto_20180407_1010.py | 0 .../music/migrations/0024_populate_uuid.py | 0 .../migrations/0025_auto_20180419_2023.py | 0 .../0026_trackfile_accessed_date.py | 0 .../migrations/0027_auto_20180515_1808.py | 0 .../0028_importjob_replace_if_duplicate.py | 0 .../migrations/0029_auto_20180807_1748.py | 0 .../migrations/0030_auto_20180825_1411.py | 0 .../migrations/0031_auto_20180914_2007.py | 0 .../migrations/0032_track_file_to_upload.py | 0 .../migrations/0033_auto_20181023_1837.py | 0 .../migrations/0034_auto_20181127_0325.py | 0 .../migrations/0035_auto_20181203_1515.py | 0 .../migrations/0036_track_disc_number.py | 0 .../migrations/0037_auto_20190103_1757.py | 0 .../music/migrations/0038_attributed_to.py | 0 .../migrations/0039_auto_20190423_0820.py | 0 .../migrations/0040_auto_20191021_1318.py | 0 .../migrations/0041_auto_20191021_1705.py | 0 .../migrations/0042_album_attachment_cover.py | 0 .../migrations/0043_album_cover_attachment.py | 0 .../music/migrations/0044_full_text_search.py | 0 .../0045_full_text_search_stop_words.py | 0 .../migrations/0046_auto_20200113_1018.py | 0 .../migrations/0047_auto_20200116_1246.py | 0 .../migrations/0048_auto_20200120_0900.py | 0 .../migrations/0049_auto_20200122_1020.py | 0 .../migrations/0050_auto_20200129_1344.py | 0 .../migrations/0051_auto_20200319_1249.py | 0 .../migrations/0052_auto_20200505_0810.py | 0 .../0053_denormalize_audio_permissions.py | 0 .../0054_alter_uploadversion_mimetype.py | 0 .../migrations/0055_auto_20220627_1915.py | 0 .../0056_alter_artist_content_category.py | 0 .../migrations/0057_auto_20221118_2108.py | 0 .../music/migrations/__init__.py | 0 .../music/models.py | 4 +- .../music/mutations.py | 0 .../music/serializers.py | 4 +- .../music/signals.py | 0 .../music/spa_views.py | 26 ++-- .../music/tasks.py | 0 .../music/utils.py | 0 .../music/views.py | 0 .../musicbrainz/__init__.py | 0 .../musicbrainz/client.py | 2 +- .../musicbrainz/urls.py | 0 .../musicbrainz/views.py | 0 .../playlists/__init__.py | 0 .../playlists/admin.py | 0 .../playlists/dynamic_preferences_registry.py | 0 .../playlists/factories.py | 0 .../playlists/filters.py | 0 .../playlists/migrations/0001_initial.py | 0 .../migrations/0002_auto_20180316_2217.py | 0 .../migrations/0003_auto_20180319_1214.py | 0 .../migrations/0004_auto_20180320_1713.py | 0 .../playlists/migrations/__init__.py | 0 .../playlists/models.py | 0 .../playlists/serializers.py | 0 .../playlists/views.py | 0 .../providers/__init__.py | 0 .../providers/urls.py | 0 .../radios/__init__.py | 0 .../radios/admin.py | 0 .../radios/factories.py | 0 .../radios/filters.py | 0 .../radios/filtersets.py | 0 .../radios/lb_recommendations.py | 10 +- .../radios/migrations/0001_initial.py | 0 .../0002_radiosession_session_key.py | 0 .../migrations/0003_auto_20160521_1708.py | 0 .../migrations/0004_auto_20180107_1813.py | 0 .../migrations/0005_auto_20200803_1222.py | 0 .../migrations/0006_alter_radio_config.py | 0 .../migrations/0006_radiosession_config.py | 0 .../migrations/0007_merge_20220715_0801.py | 0 .../radios/migrations/__init__.py | 0 .../radios/models.py | 0 .../radios/radios.py | 2 +- .../radios/radios_v2.py | 2 +- .../radios/registries.py | 0 .../radios/registries_v2.py | 0 .../radios/serializers.py | 0 .../radios/urls.py | 0 .../radios/urls_v2.py | 0 .../radios/views.py | 0 .../requests/__init__.py | 0 .../requests/migrations/0001_initial.py | 0 .../requests/migrations/__init__.py | 0 .../requests/models.py | 0 api/{funkwhale_api => funquail_api}/schema.py | 0 .../images/podcasts-cover-placeholder.png | Bin .../static/music/sample1.ogg | Bin .../subsonic/__init__.py | 0 .../subsonic/authentication.py | 0 .../subsonic/dynamic_preferences_registry.py | 2 +- .../subsonic/filters.py | 0 .../subsonic/negotiation.py | 0 .../subsonic/renderers.py | 0 .../subsonic/serializers.py | 0 .../subsonic/views.py | 0 .../tags/__init__.py | 0 .../tags/admin.py | 0 .../tags/factories.py | 0 .../tags/filters.py | 0 .../tags/migrations/0001_initial.py | 0 .../migrations/0002_auto_20200803_1222.py | 0 .../tags/migrations/__init__.py | 0 .../tags/models.py | 0 .../tags/serializers.py | 0 .../tags/tasks.py | 0 .../tags/views.py | 0 .../taskapp/__init__.py | 0 .../taskapp/celery.py | 0 .../email/email_confirmation_message.txt | 0 .../registration/password_reset_email.html | 0 .../typesense/__init__.py | 0 .../typesense/factories.py | 0 .../typesense/tasks.py | 0 .../typesense/utils.py | 0 .../users/__init__.py | 0 .../users/adapters.py | 8 +- .../users/admin.py | 0 .../users/api_urls.py | 0 .../users/auth_backends.py | 0 .../users/authentication.py | 0 .../users/dynamic_preferences_registry.py | 0 .../users/factories.py | 0 .../users/middleware.py | 0 .../users/migrations/0001_initial.py | 0 .../migrations/0002_auto_20171214_2205.py | 0 .../migrations/0003_auto_20171226_1357.py | 0 .../migrations/0004_user_privacy_level.py | 0 .../0005_user_subsonic_api_token.py | 0 .../migrations/0006_auto_20180517_2324.py | 0 .../migrations/0007_auto_20180524_2009.py | 0 .../migrations/0008_auto_20180617_1531.py | 0 .../migrations/0009_auto_20180619_2024.py | 0 .../users/migrations/0010_user_avatar.py | 0 .../migrations/0011_auto_20180721_1317.py | 0 .../migrations/0012_user_upload_quota.py | 0 .../migrations/0013_auto_20181206_1008.py | 0 .../users/migrations/0014_oauth.py | 0 .../migrations/0015_application_scope.py | 0 .../migrations/0016_auto_20190920_0857.py | 2 +- .../users/migrations/0017_actor_avatar.py | 0 .../migrations/0018_auto_20200705_0829.py | 0 .../migrations/0019_auto_20200718_0741.py | 0 .../migrations/0020_application_token.py | 0 .../migrations/0021_auto_20210703_1810.py | 0 .../migrations/0022_alter_user_settings.py | 0 .../migrations/0022_auto_20221119_1819.py | 0 .../migrations/0023_merge_20221125_1902.py | 0 .../users/migrations/__init__.py | 0 .../users/models.py | 4 +- .../users/mutations.py | 0 .../users/oauth/__init__.py | 0 .../users/oauth/permissions.py | 0 .../users/oauth/scopes.py | 0 .../users/oauth/serializers.py | 0 .../users/oauth/server.py | 0 .../users/oauth/tasks.py | 0 .../users/oauth/urls.py | 0 .../users/oauth/views.py | 0 .../users/rest_auth_urls.py | 0 .../users/serializers.py | 0 .../users/tasks.py | 0 .../users/views.py | 0 .../users/wordlist.txt | 0 api/pyproject.toml | 32 ++--- api/tests/audio/test_spa_views.py | 12 +- api/tests/audio/test_views.py | 2 +- api/tests/common/test_middleware.py | 28 ++--- api/tests/common/test_pagination.py | 2 +- api/tests/common/test_scripts.py | 4 +- api/tests/common/test_session.py | 4 +- api/tests/common/test_throttling.py | 12 +- api/tests/common/test_utils.py | 4 +- api/tests/conftest.py | 4 +- api/tests/federation/test_serializers.py | 2 +- api/tests/federation/test_spa_views.py | 2 +- api/tests/federation/test_tasks.py | 2 +- api/tests/federation/test_utils.py | 2 +- api/tests/federation/test_views.py | 16 +-- api/tests/instance/test_nodeinfo.py | 2 +- api/tests/moderation/test_tasks.py | 8 +- api/tests/music/test_activity.py | 2 +- api/tests/music/test_spa_views.py | 36 +++--- api/tests/music/test_views.py | 24 ++-- api/tests/users/test_activity.py | 2 +- api/tests/users/test_models.py | 2 +- api/tests/users/test_views.py | 6 +- changes/template.md.j2 | 2 +- deploy/FreeBSD/README.md | 10 +- deploy/FreeBSD/funkwhale_beat | 39 ------ deploy/FreeBSD/funkwhale_server | 38 ------ deploy/FreeBSD/funkwhale_worker | 39 ------ deploy/FreeBSD/funquail_beat | 39 ++++++ deploy/FreeBSD/funquail_server | 38 ++++++ deploy/FreeBSD/funquail_worker | 39 ++++++ deploy/Gentoo/README.md | 8 +- .../Gentoo/{funkwhale_beat => funquail_beat} | 22 ++-- .../{funkwhale_server => funquail_server} | 22 ++-- .../{funkwhale_worker => funquail_worker} | 22 ++-- deploy/apache.conf | 56 ++++----- deploy/docker-compose.yml | 26 ++-- ..._proxy.conf => docker.funquail_proxy.conf} | 0 deploy/docker.proxy.template | 14 +-- deploy/env.prod.sample | 54 ++++----- deploy/funkwhale-beat.service | 18 --- deploy/funkwhale-server.service | 22 ---- deploy/funkwhale-worker.service | 20 --- deploy/funkwhale.target | 6 - deploy/funquail-beat.service | 18 +++ deploy/funquail-server.service | 22 ++++ deploy/funquail-worker.service | 20 +++ deploy/funquail.target | 6 + ...nkwhale_proxy.conf => funquail_proxy.conf} | 0 deploy/nginx.template | 56 ++++----- docs/Makefile | 6 - CHANGELOG.md => old/CHANGELOG.md | 0 CONTRIBUTING.md => old/CONTRIBUTING.md | 0 old/README.md | 26 ++++ 517 files changed, 637 insertions(+), 639 deletions(-) rename api/{funkwhale_api => funquail_api}/__init__.py (100%) rename api/{funkwhale_api => funquail_api}/activity/__init__.py (100%) rename api/{funkwhale_api => funquail_api}/activity/apps.py (100%) rename api/{funkwhale_api => funquail_api}/activity/record.py (100%) rename api/{funkwhale_api => funquail_api}/activity/serializers.py (100%) rename api/{funkwhale_api => funquail_api}/activity/utils.py (100%) rename api/{funkwhale_api => funquail_api}/activity/views.py (100%) rename api/{funkwhale_api => funquail_api}/audio/__init__.py (100%) rename api/{funkwhale_api => funquail_api}/audio/admin.py (100%) rename api/{funkwhale_api => funquail_api}/audio/categories.py (100%) rename api/{funkwhale_api => funquail_api}/audio/dynamic_preferences_registry.py (100%) rename api/{funkwhale_api => funquail_api}/audio/factories.py (100%) rename api/{funkwhale_api => funquail_api}/audio/filters.py (100%) rename api/{funkwhale_api => funquail_api}/audio/migrations/0001_initial.py (100%) rename api/{funkwhale_api => funquail_api}/audio/migrations/0002_channel_metadata.py (100%) rename api/{funkwhale_api => funquail_api}/audio/migrations/0003_channel_rss_url.py (100%) rename api/{funkwhale_api => funquail_api}/audio/migrations/0004_alter_channel_metadata.py (100%) rename api/{funkwhale_api => funquail_api}/audio/migrations/__init__.py (100%) rename api/{funkwhale_api => funquail_api}/audio/models.py (100%) rename api/{funkwhale_api => funquail_api}/audio/renderers.py (100%) rename api/{funkwhale_api => funquail_api}/audio/serializers.py (100%) rename api/{funkwhale_api => funquail_api}/audio/spa_views.py (96%) rename api/{funkwhale_api => funquail_api}/audio/tasks.py (100%) rename api/{funkwhale_api => funquail_api}/audio/views.py (99%) rename api/{funkwhale_api => funquail_api}/cli/__init__.py (100%) rename api/{funkwhale_api => funquail_api}/cli/base.py (100%) rename api/{funkwhale_api => funquail_api}/cli/library.py (100%) rename api/{funkwhale_api => funquail_api}/cli/main.py (100%) rename api/{funkwhale_api => funquail_api}/cli/media.py (100%) rename api/{funkwhale_api => funquail_api}/cli/plugins.py (91%) rename api/{funkwhale_api => funquail_api}/cli/users.py (98%) rename api/{funkwhale_api => funquail_api}/cli/utils.py (100%) rename api/{funkwhale_api => funquail_api}/common/__init__.py (100%) rename api/{funkwhale_api => funquail_api}/common/admin.py (100%) rename api/{funkwhale_api => funquail_api}/common/apps.py (100%) rename api/{funkwhale_api => funquail_api}/common/authentication.py (100%) rename api/{funkwhale_api => funquail_api}/common/cache.py (100%) rename api/{funkwhale_api => funquail_api}/common/channels.py (100%) rename api/{funkwhale_api => funquail_api}/common/consumers.py (100%) rename api/{funkwhale_api => funquail_api}/common/decorators.py (100%) rename api/{funkwhale_api => funquail_api}/common/dynamic_preferences_registry.py (100%) rename api/{funkwhale_api => funquail_api}/common/factories.py (100%) rename api/{funkwhale_api => funquail_api}/common/fields.py (100%) rename api/{funkwhale_api => funquail_api}/common/filters.py (100%) rename api/{funkwhale_api => funquail_api}/common/locales.py (100%) rename api/{funkwhale_api => funquail_api}/common/management/__init__.py (100%) rename api/{funkwhale_api => funquail_api}/common/management/commands/__init__.py (100%) rename api/{funkwhale_api => funquail_api}/common/management/commands/createsuperuser.py (88%) rename api/{funkwhale_api => funquail_api}/common/management/commands/gitpod.py (96%) rename api/{funkwhale_api => funquail_api}/common/management/commands/inplace_to_s3.py (100%) rename api/{funkwhale_api => funquail_api}/common/management/commands/load_test_data.py (100%) rename api/{funkwhale_api => funquail_api}/common/management/commands/makemigrations.py (88%) rename api/{funkwhale_api => funquail_api}/common/management/commands/migrate.py (100%) rename api/{funkwhale_api => funquail_api}/common/management/commands/script.py (100%) rename api/{funkwhale_api => funquail_api}/common/management/commands/testdata.py (100%) rename api/{funkwhale_api => funquail_api}/common/middleware.py (97%) rename api/{funkwhale_api => funquail_api}/common/migrations/0001_initial.py (100%) rename api/{funkwhale_api => funquail_api}/common/migrations/0002_mutation.py (100%) rename api/{funkwhale_api => funquail_api}/common/migrations/0003_cit_extension.py (100%) rename api/{funkwhale_api => funquail_api}/common/migrations/0004_auto_20191111_1338.py (100%) rename api/{funkwhale_api => funquail_api}/common/migrations/0005_auto_20191125_1421.py (100%) rename api/{funkwhale_api => funquail_api}/common/migrations/0006_content.py (100%) rename api/{funkwhale_api => funquail_api}/common/migrations/0007_auto_20200116_1610.py (100%) rename api/{funkwhale_api => funquail_api}/common/migrations/0008_auto_20200701_1317.py (100%) rename api/{funkwhale_api => funquail_api}/common/migrations/0009_auto_20220627_1915.py (100%) rename api/{funkwhale_api => funquail_api}/common/migrations/__init__.py (100%) rename api/{funkwhale_api => funquail_api}/common/mixins.py (100%) rename api/{funkwhale_api => funquail_api}/common/models.py (100%) rename api/{funkwhale_api => funquail_api}/common/mutations.py (100%) rename api/{funkwhale_api => funquail_api}/common/pagination.py (94%) rename api/{funkwhale_api => funquail_api}/common/permissions.py (100%) rename api/{funkwhale_api => funquail_api}/common/preferences.py (100%) rename api/{funkwhale_api => funquail_api}/common/renderers.py (100%) rename api/{funkwhale_api => funquail_api}/common/routers.py (100%) rename api/{funkwhale_api => funquail_api}/common/scripts/__init__.py (100%) rename api/{funkwhale_api => funquail_api}/common/scripts/create_actors.py (100%) rename api/{funkwhale_api => funquail_api}/common/scripts/create_image_variations.py (100%) rename api/{funkwhale_api => funquail_api}/common/scripts/delete_pre_017_federated_uploads.py (100%) rename api/{funkwhale_api => funquail_api}/common/scripts/django_permissions_to_user_permissions.py (100%) rename api/{funkwhale_api => funquail_api}/common/scripts/migrate_to_user_libraries.py (97%) rename api/{funkwhale_api => funquail_api}/common/scripts/test.py (100%) rename api/{funkwhale_api => funquail_api}/common/search.py (100%) rename api/{funkwhale_api => funquail_api}/common/serializers.py (100%) rename api/{funkwhale_api => funquail_api}/common/session.py (78%) rename api/{funkwhale_api => funquail_api}/common/signals.py (100%) rename api/{funkwhale_api => funquail_api}/common/storage.py (100%) rename api/{funkwhale_api => funquail_api}/common/tasks.py (100%) rename api/{funkwhale_api => funquail_api}/common/throttling.py (95%) rename api/{funkwhale_api => funquail_api}/common/utils.py (98%) rename api/{funkwhale_api => funquail_api}/common/validators.py (100%) rename api/{funkwhale_api => funquail_api}/common/views.py (100%) rename api/{funkwhale_api => funquail_api}/contrib/__init__.py (100%) rename api/{funkwhale_api => funquail_api}/contrib/listenbrainz/__init__.py (100%) rename api/{funkwhale_api => funquail_api}/contrib/listenbrainz/client.py (100%) rename api/{funkwhale_api => funquail_api}/contrib/listenbrainz/funkwhale_ready.py (93%) rename api/{funkwhale_api => funquail_api}/contrib/listenbrainz/funkwhale_startup.py (82%) rename api/{funkwhale_api => funquail_api}/contrib/maloja/__init__.py (100%) rename api/{funkwhale_api => funquail_api}/contrib/maloja/funkwhale_ready.py (100%) rename api/{funkwhale_api => funquail_api}/contrib/maloja/funkwhale_startup.py (86%) rename api/{funkwhale_api => funquail_api}/contrib/scrobbler/README.rst (68%) rename api/{funkwhale_api => funquail_api}/contrib/scrobbler/__init__.py (100%) rename api/{funkwhale_api => funquail_api}/contrib/scrobbler/funkwhale_ready.py (100%) rename api/{funkwhale_api => funquail_api}/contrib/scrobbler/funkwhale_startup.py (91%) rename api/{funkwhale_api => funquail_api}/contrib/scrobbler/scrobbler.py (100%) rename api/{funkwhale_api => funquail_api}/contrib/sites/__init__.py (100%) rename api/{funkwhale_api => funquail_api}/contrib/sites/migrations/0001_initial.py (100%) rename api/{funkwhale_api => funquail_api}/contrib/sites/migrations/0002_set_site_domain_and_name.py (100%) rename api/{funkwhale_api => funquail_api}/contrib/sites/migrations/0003_auto_20171214_2205.py (100%) rename api/{funkwhale_api => funquail_api}/contrib/sites/migrations/0004_alter_site_options.py (100%) rename api/{funkwhale_api => funquail_api}/contrib/sites/migrations/__init__.py (100%) rename api/{funkwhale_api => funquail_api}/factories.py (98%) rename api/{funkwhale_api => funquail_api}/favorites/__init__.py (100%) rename api/{funkwhale_api => funquail_api}/favorites/activities.py (100%) rename api/{funkwhale_api => funquail_api}/favorites/admin.py (100%) rename api/{funkwhale_api => funquail_api}/favorites/consumers.py (100%) rename api/{funkwhale_api => funquail_api}/favorites/factories.py (100%) rename api/{funkwhale_api => funquail_api}/favorites/filters.py (100%) rename api/{funkwhale_api => funquail_api}/favorites/migrations/0001_initial.py (100%) rename api/{funkwhale_api => funquail_api}/favorites/migrations/__init__.py (100%) rename api/{funkwhale_api => funquail_api}/favorites/models.py (100%) rename api/{funkwhale_api => funquail_api}/favorites/serializers.py (100%) rename api/{funkwhale_api => funquail_api}/favorites/urls.py (100%) rename api/{funkwhale_api => funquail_api}/favorites/views.py (100%) rename api/{funkwhale_api => funquail_api}/federation/__init__.py (100%) rename api/{funkwhale_api => funquail_api}/federation/activity.py (99%) rename api/{funkwhale_api => funquail_api}/federation/actors.py (100%) rename api/{funkwhale_api => funquail_api}/federation/admin.py (100%) rename api/{funkwhale_api => funquail_api}/federation/api_serializers.py (100%) rename api/{funkwhale_api => funquail_api}/federation/api_urls.py (100%) rename api/{funkwhale_api => funquail_api}/federation/api_views.py (99%) rename api/{funkwhale_api => funquail_api}/federation/authentication.py (100%) rename api/{funkwhale_api => funquail_api}/federation/contexts.py (99%) rename api/{funkwhale_api => funquail_api}/federation/decorators.py (100%) rename api/{funkwhale_api => funquail_api}/federation/dynamic_preferences_registry.py (100%) rename api/{funkwhale_api => funquail_api}/federation/exceptions.py (100%) rename api/{funkwhale_api => funquail_api}/federation/factories.py (100%) rename api/{funkwhale_api => funquail_api}/federation/fields.py (100%) rename api/{funkwhale_api => funquail_api}/federation/filters.py (100%) rename api/{funkwhale_api => funquail_api}/federation/jsonld.py (99%) rename api/{funkwhale_api => funquail_api}/federation/keys.py (100%) rename api/{funkwhale_api => funquail_api}/federation/library.py (100%) rename api/{funkwhale_api => funquail_api}/federation/management/__init__.py (100%) rename api/{funkwhale_api => funquail_api}/federation/management/commands/__init__.py (100%) rename api/{funkwhale_api => funquail_api}/federation/management/commands/fix_federation_ids.py (100%) rename api/{funkwhale_api => funquail_api}/federation/migrations/0001_initial.py (100%) rename api/{funkwhale_api => funquail_api}/federation/migrations/0002_auto_20180403_1620.py (100%) rename api/{funkwhale_api => funquail_api}/federation/migrations/0003_auto_20180407_1010.py (100%) rename api/{funkwhale_api => funquail_api}/federation/migrations/0004_auto_20180410_2025.py (100%) rename api/{funkwhale_api => funquail_api}/federation/migrations/0005_auto_20180413_1723.py (100%) rename api/{funkwhale_api => funquail_api}/federation/migrations/0006_auto_20180521_1702.py (100%) rename api/{funkwhale_api => funquail_api}/federation/migrations/0007_auto_20180807_1748.py (100%) rename api/{funkwhale_api => funquail_api}/federation/migrations/0008_auto_20180807_1748.py (100%) rename api/{funkwhale_api => funquail_api}/federation/migrations/0009_auto_20180822_1956.py (100%) rename api/{funkwhale_api => funquail_api}/federation/migrations/0010_auto_20180904_2011.py (100%) rename api/{funkwhale_api => funquail_api}/federation/migrations/0011_auto_20180910_1902.py (100%) rename api/{funkwhale_api => funquail_api}/federation/migrations/0012_auto_20180920_1803.py (100%) rename api/{funkwhale_api => funquail_api}/federation/migrations/0013_auto_20181226_1935.py (100%) rename api/{funkwhale_api => funquail_api}/federation/migrations/0014_auto_20181205_0958.py (100%) rename api/{funkwhale_api => funquail_api}/federation/migrations/0015_populate_domains.py (100%) rename api/{funkwhale_api => funquail_api}/federation/migrations/0016_auto_20181227_1605.py (100%) rename api/{funkwhale_api => funquail_api}/federation/migrations/0017_auto_20190130_0926.py (100%) rename api/{funkwhale_api => funquail_api}/federation/migrations/0018_fetch.py (100%) rename api/{funkwhale_api => funquail_api}/federation/migrations/0019_auto_20190611_0851.py (100%) rename api/{funkwhale_api => funquail_api}/federation/migrations/0020_auto_20190730_0846.py (100%) rename api/{funkwhale_api => funquail_api}/federation/migrations/0021_auto_20191029_1257.py (100%) rename api/{funkwhale_api => funquail_api}/federation/migrations/0022_auto_20191204_1539.py (100%) rename api/{funkwhale_api => funquail_api}/federation/migrations/0023_actor_summary_obj.py (100%) rename api/{funkwhale_api => funquail_api}/federation/migrations/0024_actor_attachment_icon.py (100%) rename api/{funkwhale_api => funquail_api}/federation/migrations/0025_auto_20200317_0820.py (100%) rename api/{funkwhale_api => funquail_api}/federation/migrations/0026_public_key_format.py (100%) rename api/{funkwhale_api => funquail_api}/federation/migrations/0027_auto_20220627_1915.py (100%) rename api/{funkwhale_api => funquail_api}/federation/migrations/0028_auto_20221027_1141.py (100%) rename api/{funkwhale_api => funquail_api}/federation/migrations/__init__.py (100%) rename api/{funkwhale_api => funquail_api}/federation/models.py (100%) rename api/{funkwhale_api => funquail_api}/federation/mrf_policies.py (100%) rename api/{funkwhale_api => funquail_api}/federation/parsers.py (100%) rename api/{funkwhale_api => funquail_api}/federation/renderers.py (100%) rename api/{funkwhale_api => funquail_api}/federation/routes.py (100%) rename api/{funkwhale_api => funquail_api}/federation/schema_org.py (100%) rename api/{funkwhale_api => funquail_api}/federation/serializers.py (100%) rename api/{funkwhale_api => funquail_api}/federation/signing.py (100%) rename api/{funkwhale_api => funquail_api}/federation/spa_views.py (98%) rename api/{funkwhale_api => funquail_api}/federation/tasks.py (99%) rename api/{funkwhale_api => funquail_api}/federation/urls.py (100%) rename api/{funkwhale_api => funquail_api}/federation/utils.py (99%) rename api/{funkwhale_api => funquail_api}/federation/views.py (99%) rename api/{funkwhale_api => funquail_api}/federation/webfinger.py (100%) rename api/{funkwhale_api => funquail_api}/history/__init__.py (100%) rename api/{funkwhale_api => funquail_api}/history/activities.py (100%) rename api/{funkwhale_api => funquail_api}/history/admin.py (100%) rename api/{funkwhale_api => funquail_api}/history/factories.py (100%) rename api/{funkwhale_api => funquail_api}/history/filters.py (100%) rename api/{funkwhale_api => funquail_api}/history/migrations/0001_initial.py (100%) rename api/{funkwhale_api => funquail_api}/history/migrations/0002_auto_20180325_1433.py (100%) rename api/{funkwhale_api => funquail_api}/history/migrations/__init__.py (100%) rename api/{funkwhale_api => funquail_api}/history/models.py (100%) rename api/{funkwhale_api => funquail_api}/history/serializers.py (100%) rename api/{funkwhale_api => funquail_api}/history/urls.py (100%) rename api/{funkwhale_api => funquail_api}/history/views.py (100%) rename api/{funkwhale_api => funquail_api}/instance/__init__.py (100%) rename api/{funkwhale_api => funquail_api}/instance/consumers.py (100%) rename api/{funkwhale_api => funquail_api}/instance/dynamic_preferences_registry.py (97%) rename api/{funkwhale_api => funquail_api}/instance/pwa-manifest.json (94%) rename api/{funkwhale_api => funquail_api}/instance/serializers.py (98%) rename api/{funkwhale_api => funquail_api}/instance/stats.py (100%) rename api/{funkwhale_api => funquail_api}/instance/urls.py (100%) rename api/{funkwhale_api => funquail_api}/instance/urls_v2.py (100%) rename api/{funkwhale_api => funquail_api}/instance/views.py (100%) rename api/{funkwhale_api => funquail_api}/main.py (100%) rename api/{funkwhale_api => funquail_api}/manage/__init__.py (100%) rename api/{funkwhale_api => funquail_api}/manage/filters.py (100%) rename api/{funkwhale_api => funquail_api}/manage/serializers.py (100%) rename api/{funkwhale_api => funquail_api}/manage/urls.py (100%) rename api/{funkwhale_api => funquail_api}/manage/views.py (100%) rename api/{funkwhale_api => funquail_api}/moderation/__init__.py (100%) rename api/{funkwhale_api => funquail_api}/moderation/admin.py (100%) rename api/{funkwhale_api => funquail_api}/moderation/apps.py (100%) rename api/{funkwhale_api => funquail_api}/moderation/dynamic_preferences_registry.py (100%) rename api/{funkwhale_api => funquail_api}/moderation/factories.py (100%) rename api/{funkwhale_api => funquail_api}/moderation/filters.py (100%) rename api/{funkwhale_api => funquail_api}/moderation/management/__init__.py (100%) rename api/{funkwhale_api => funquail_api}/moderation/management/commands/__init__.py (100%) rename api/{funkwhale_api => funquail_api}/moderation/management/commands/mrf_check.py (100%) rename api/{funkwhale_api => funquail_api}/moderation/migrations/0001_initial.py (100%) rename api/{funkwhale_api => funquail_api}/moderation/migrations/0002_auto_20190213_0927.py (100%) rename api/{funkwhale_api => funquail_api}/moderation/migrations/0003_report.py (100%) rename api/{funkwhale_api => funquail_api}/moderation/migrations/0004_note.py (100%) rename api/{funkwhale_api => funquail_api}/moderation/migrations/0005_auto_20200317_0820.py (100%) rename api/{funkwhale_api => funquail_api}/moderation/migrations/0006_auto_20200803_1222.py (100%) rename api/{funkwhale_api => funquail_api}/moderation/migrations/0007_auto_20220627_1915.py (100%) rename api/{funkwhale_api => funquail_api}/moderation/migrations/__init__.py (100%) rename api/{funkwhale_api => funquail_api}/moderation/models.py (100%) rename api/{funkwhale_api => funquail_api}/moderation/mrf.py (100%) rename api/{funkwhale_api => funquail_api}/moderation/mrf_policies.py (100%) rename api/{funkwhale_api => funquail_api}/moderation/serializers.py (100%) rename api/{funkwhale_api => funquail_api}/moderation/signals.py (100%) rename api/{funkwhale_api => funquail_api}/moderation/tasks.py (96%) rename api/{funkwhale_api => funquail_api}/moderation/urls.py (100%) rename api/{funkwhale_api => funquail_api}/moderation/utils.py (100%) rename api/{funkwhale_api => funquail_api}/moderation/views.py (100%) rename api/{funkwhale_api => funquail_api}/music/__init__.py (100%) rename api/{funkwhale_api => funquail_api}/music/admin.py (100%) rename api/{funkwhale_api => funquail_api}/music/dynamic_preferences_registry.py (100%) rename api/{funkwhale_api => funquail_api}/music/factories.py (100%) rename api/{funkwhale_api => funquail_api}/music/fake_data.py (100%) rename api/{funkwhale_api => funquail_api}/music/filters.py (100%) rename api/{funkwhale_api => funquail_api}/music/importers.py (100%) rename api/{funkwhale_api => funquail_api}/music/licenses.py (100%) rename api/{funkwhale_api => funquail_api}/music/management/__init__.py (100%) rename api/{funkwhale_api => funquail_api}/music/management/commands/__init__.py (100%) rename api/{funkwhale_api => funquail_api}/music/management/commands/check_inplace_files.py (100%) rename api/{funkwhale_api => funquail_api}/music/management/commands/check_licenses.py (100%) rename api/{funkwhale_api => funquail_api}/music/management/commands/create_library.py (100%) rename api/{funkwhale_api => funquail_api}/music/management/commands/fix_uploads.py (100%) rename api/{funkwhale_api => funquail_api}/music/management/commands/generate_typesense_index.py (78%) rename api/{funkwhale_api => funquail_api}/music/management/commands/import_files.py (99%) rename api/{funkwhale_api => funquail_api}/music/management/commands/prune_library.py (100%) rename api/{funkwhale_api => funquail_api}/music/management/commands/prune_skipped_uploads.py (100%) rename api/{funkwhale_api => funquail_api}/music/management/commands/rebuild_music_permissions.py (100%) rename api/{funkwhale_api => funquail_api}/music/metadata.py (100%) rename api/{funkwhale_api => funquail_api}/music/migrations/0001_initial.py (100%) rename api/{funkwhale_api => funquail_api}/music/migrations/0002_auto_20151215_1645.py (100%) rename api/{funkwhale_api => funquail_api}/music/migrations/0003_auto_20151222_2233.py (100%) rename api/{funkwhale_api => funquail_api}/music/migrations/0004_track_tags.py (100%) rename api/{funkwhale_api => funquail_api}/music/migrations/0005_deduplicate.py (100%) rename api/{funkwhale_api => funquail_api}/music/migrations/0006_unique_mbid.py (100%) rename api/{funkwhale_api => funquail_api}/music/migrations/0007_track_position.py (100%) rename api/{funkwhale_api => funquail_api}/music/migrations/0008_auto_20160529_1456.py (100%) rename api/{funkwhale_api => funquail_api}/music/migrations/0009_auto_20160920_1614.py (100%) rename api/{funkwhale_api => funquail_api}/music/migrations/0010_auto_20160920_1742.py (100%) rename api/{funkwhale_api => funquail_api}/music/migrations/0011_rename_files.py (100%) rename api/{funkwhale_api => funquail_api}/music/migrations/0012_auto_20161122_1905.py (100%) rename api/{funkwhale_api => funquail_api}/music/migrations/0013_auto_20171213_2211.py (100%) rename api/{funkwhale_api => funquail_api}/music/migrations/0014_importjob_track_file.py (100%) rename api/{funkwhale_api => funquail_api}/music/migrations/0015_bind_track_file_to_import_job.py (100%) rename api/{funkwhale_api => funquail_api}/music/migrations/0016_trackfile_acoustid_track_id.py (100%) rename api/{funkwhale_api => funquail_api}/music/migrations/0017_auto_20171227_1728.py (100%) rename api/{funkwhale_api => funquail_api}/music/migrations/0018_auto_20180218_1554.py (100%) rename api/{funkwhale_api => funquail_api}/music/migrations/0019_populate_mimetypes.py (100%) rename api/{funkwhale_api => funquail_api}/music/migrations/0020_importbatch_status.py (100%) rename api/{funkwhale_api => funquail_api}/music/migrations/0021_populate_batch_status.py (100%) rename api/{funkwhale_api => funquail_api}/music/migrations/0022_importbatch_import_request.py (100%) rename api/{funkwhale_api => funquail_api}/music/migrations/0023_auto_20180407_1010.py (100%) rename api/{funkwhale_api => funquail_api}/music/migrations/0024_populate_uuid.py (100%) rename api/{funkwhale_api => funquail_api}/music/migrations/0025_auto_20180419_2023.py (100%) rename api/{funkwhale_api => funquail_api}/music/migrations/0026_trackfile_accessed_date.py (100%) rename api/{funkwhale_api => funquail_api}/music/migrations/0027_auto_20180515_1808.py (100%) rename api/{funkwhale_api => funquail_api}/music/migrations/0028_importjob_replace_if_duplicate.py (100%) rename api/{funkwhale_api => funquail_api}/music/migrations/0029_auto_20180807_1748.py (100%) rename api/{funkwhale_api => funquail_api}/music/migrations/0030_auto_20180825_1411.py (100%) rename api/{funkwhale_api => funquail_api}/music/migrations/0031_auto_20180914_2007.py (100%) rename api/{funkwhale_api => funquail_api}/music/migrations/0032_track_file_to_upload.py (100%) rename api/{funkwhale_api => funquail_api}/music/migrations/0033_auto_20181023_1837.py (100%) rename api/{funkwhale_api => funquail_api}/music/migrations/0034_auto_20181127_0325.py (100%) rename api/{funkwhale_api => funquail_api}/music/migrations/0035_auto_20181203_1515.py (100%) rename api/{funkwhale_api => funquail_api}/music/migrations/0036_track_disc_number.py (100%) rename api/{funkwhale_api => funquail_api}/music/migrations/0037_auto_20190103_1757.py (100%) rename api/{funkwhale_api => funquail_api}/music/migrations/0038_attributed_to.py (100%) rename api/{funkwhale_api => funquail_api}/music/migrations/0039_auto_20190423_0820.py (100%) rename api/{funkwhale_api => funquail_api}/music/migrations/0040_auto_20191021_1318.py (100%) rename api/{funkwhale_api => funquail_api}/music/migrations/0041_auto_20191021_1705.py (100%) rename api/{funkwhale_api => funquail_api}/music/migrations/0042_album_attachment_cover.py (100%) rename api/{funkwhale_api => funquail_api}/music/migrations/0043_album_cover_attachment.py (100%) rename api/{funkwhale_api => funquail_api}/music/migrations/0044_full_text_search.py (100%) rename api/{funkwhale_api => funquail_api}/music/migrations/0045_full_text_search_stop_words.py (100%) rename api/{funkwhale_api => funquail_api}/music/migrations/0046_auto_20200113_1018.py (100%) rename api/{funkwhale_api => funquail_api}/music/migrations/0047_auto_20200116_1246.py (100%) rename api/{funkwhale_api => funquail_api}/music/migrations/0048_auto_20200120_0900.py (100%) rename api/{funkwhale_api => funquail_api}/music/migrations/0049_auto_20200122_1020.py (100%) rename api/{funkwhale_api => funquail_api}/music/migrations/0050_auto_20200129_1344.py (100%) rename api/{funkwhale_api => funquail_api}/music/migrations/0051_auto_20200319_1249.py (100%) rename api/{funkwhale_api => funquail_api}/music/migrations/0052_auto_20200505_0810.py (100%) rename api/{funkwhale_api => funquail_api}/music/migrations/0053_denormalize_audio_permissions.py (100%) rename api/{funkwhale_api => funquail_api}/music/migrations/0054_alter_uploadversion_mimetype.py (100%) rename api/{funkwhale_api => funquail_api}/music/migrations/0055_auto_20220627_1915.py (100%) rename api/{funkwhale_api => funquail_api}/music/migrations/0056_alter_artist_content_category.py (100%) rename api/{funkwhale_api => funquail_api}/music/migrations/0057_auto_20221118_2108.py (100%) rename api/{funkwhale_api => funquail_api}/music/migrations/__init__.py (100%) rename api/{funkwhale_api => funquail_api}/music/models.py (99%) rename api/{funkwhale_api => funquail_api}/music/mutations.py (100%) rename api/{funkwhale_api => funquail_api}/music/serializers.py (99%) rename api/{funkwhale_api => funquail_api}/music/signals.py (100%) rename api/{funkwhale_api => funquail_api}/music/spa_views.py (93%) rename api/{funkwhale_api => funquail_api}/music/tasks.py (100%) rename api/{funkwhale_api => funquail_api}/music/utils.py (100%) rename api/{funkwhale_api => funquail_api}/music/views.py (100%) rename api/{funkwhale_api => funquail_api}/musicbrainz/__init__.py (100%) rename api/{funkwhale_api => funquail_api}/musicbrainz/client.py (97%) rename api/{funkwhale_api => funquail_api}/musicbrainz/urls.py (100%) rename api/{funkwhale_api => funquail_api}/musicbrainz/views.py (100%) rename api/{funkwhale_api => funquail_api}/playlists/__init__.py (100%) rename api/{funkwhale_api => funquail_api}/playlists/admin.py (100%) rename api/{funkwhale_api => funquail_api}/playlists/dynamic_preferences_registry.py (100%) rename api/{funkwhale_api => funquail_api}/playlists/factories.py (100%) rename api/{funkwhale_api => funquail_api}/playlists/filters.py (100%) rename api/{funkwhale_api => funquail_api}/playlists/migrations/0001_initial.py (100%) rename api/{funkwhale_api => funquail_api}/playlists/migrations/0002_auto_20180316_2217.py (100%) rename api/{funkwhale_api => funquail_api}/playlists/migrations/0003_auto_20180319_1214.py (100%) rename api/{funkwhale_api => funquail_api}/playlists/migrations/0004_auto_20180320_1713.py (100%) rename api/{funkwhale_api => funquail_api}/playlists/migrations/__init__.py (100%) rename api/{funkwhale_api => funquail_api}/playlists/models.py (100%) rename api/{funkwhale_api => funquail_api}/playlists/serializers.py (100%) rename api/{funkwhale_api => funquail_api}/playlists/views.py (100%) rename api/{funkwhale_api => funquail_api}/providers/__init__.py (100%) rename api/{funkwhale_api => funquail_api}/providers/urls.py (100%) rename api/{funkwhale_api => funquail_api}/radios/__init__.py (100%) rename api/{funkwhale_api => funquail_api}/radios/admin.py (100%) rename api/{funkwhale_api => funquail_api}/radios/factories.py (100%) rename api/{funkwhale_api => funquail_api}/radios/filters.py (100%) rename api/{funkwhale_api => funquail_api}/radios/filtersets.py (100%) rename api/{funkwhale_api => funquail_api}/radios/lb_recommendations.py (92%) rename api/{funkwhale_api => funquail_api}/radios/migrations/0001_initial.py (100%) rename api/{funkwhale_api => funquail_api}/radios/migrations/0002_radiosession_session_key.py (100%) rename api/{funkwhale_api => funquail_api}/radios/migrations/0003_auto_20160521_1708.py (100%) rename api/{funkwhale_api => funquail_api}/radios/migrations/0004_auto_20180107_1813.py (100%) rename api/{funkwhale_api => funquail_api}/radios/migrations/0005_auto_20200803_1222.py (100%) rename api/{funkwhale_api => funquail_api}/radios/migrations/0006_alter_radio_config.py (100%) rename api/{funkwhale_api => funquail_api}/radios/migrations/0006_radiosession_config.py (100%) rename api/{funkwhale_api => funquail_api}/radios/migrations/0007_merge_20220715_0801.py (100%) rename api/{funkwhale_api => funquail_api}/radios/migrations/__init__.py (100%) rename api/{funkwhale_api => funquail_api}/radios/models.py (100%) rename api/{funkwhale_api => funquail_api}/radios/radios.py (99%) rename api/{funkwhale_api => funquail_api}/radios/radios_v2.py (99%) rename api/{funkwhale_api => funquail_api}/radios/registries.py (100%) rename api/{funkwhale_api => funquail_api}/radios/registries_v2.py (100%) rename api/{funkwhale_api => funquail_api}/radios/serializers.py (100%) rename api/{funkwhale_api => funquail_api}/radios/urls.py (100%) rename api/{funkwhale_api => funquail_api}/radios/urls_v2.py (100%) rename api/{funkwhale_api => funquail_api}/radios/views.py (100%) rename api/{funkwhale_api => funquail_api}/requests/__init__.py (100%) rename api/{funkwhale_api => funquail_api}/requests/migrations/0001_initial.py (100%) rename api/{funkwhale_api => funquail_api}/requests/migrations/__init__.py (100%) rename api/{funkwhale_api => funquail_api}/requests/models.py (100%) rename api/{funkwhale_api => funquail_api}/schema.py (100%) rename api/{funkwhale_api => funquail_api}/static/images/podcasts-cover-placeholder.png (100%) rename api/{funkwhale_api => funquail_api}/static/music/sample1.ogg (100%) rename api/{funkwhale_api => funquail_api}/subsonic/__init__.py (100%) rename api/{funkwhale_api => funquail_api}/subsonic/authentication.py (100%) rename api/{funkwhale_api => funquail_api}/subsonic/dynamic_preferences_registry.py (90%) rename api/{funkwhale_api => funquail_api}/subsonic/filters.py (100%) rename api/{funkwhale_api => funquail_api}/subsonic/negotiation.py (100%) rename api/{funkwhale_api => funquail_api}/subsonic/renderers.py (100%) rename api/{funkwhale_api => funquail_api}/subsonic/serializers.py (100%) rename api/{funkwhale_api => funquail_api}/subsonic/views.py (100%) rename api/{funkwhale_api => funquail_api}/tags/__init__.py (100%) rename api/{funkwhale_api => funquail_api}/tags/admin.py (100%) rename api/{funkwhale_api => funquail_api}/tags/factories.py (100%) rename api/{funkwhale_api => funquail_api}/tags/filters.py (100%) rename api/{funkwhale_api => funquail_api}/tags/migrations/0001_initial.py (100%) rename api/{funkwhale_api => funquail_api}/tags/migrations/0002_auto_20200803_1222.py (100%) rename api/{funkwhale_api => funquail_api}/tags/migrations/__init__.py (100%) rename api/{funkwhale_api => funquail_api}/tags/models.py (100%) rename api/{funkwhale_api => funquail_api}/tags/serializers.py (100%) rename api/{funkwhale_api => funquail_api}/tags/tasks.py (100%) rename api/{funkwhale_api => funquail_api}/tags/views.py (100%) rename api/{funkwhale_api => funquail_api}/taskapp/__init__.py (100%) rename api/{funkwhale_api => funquail_api}/taskapp/celery.py (100%) rename api/{funkwhale_api => funquail_api}/templates/account/email/email_confirmation_message.txt (100%) rename api/{funkwhale_api => funquail_api}/templates/registration/password_reset_email.html (100%) rename api/{funkwhale_api => funquail_api}/typesense/__init__.py (100%) rename api/{funkwhale_api => funquail_api}/typesense/factories.py (100%) rename api/{funkwhale_api => funquail_api}/typesense/tasks.py (100%) rename api/{funkwhale_api => funquail_api}/typesense/utils.py (100%) rename api/{funkwhale_api => funquail_api}/users/__init__.py (100%) rename api/{funkwhale_api => funquail_api}/users/adapters.py (78%) rename api/{funkwhale_api => funquail_api}/users/admin.py (100%) rename api/{funkwhale_api => funquail_api}/users/api_urls.py (100%) rename api/{funkwhale_api => funquail_api}/users/auth_backends.py (100%) rename api/{funkwhale_api => funquail_api}/users/authentication.py (100%) rename api/{funkwhale_api => funquail_api}/users/dynamic_preferences_registry.py (100%) rename api/{funkwhale_api => funquail_api}/users/factories.py (100%) rename api/{funkwhale_api => funquail_api}/users/middleware.py (100%) rename api/{funkwhale_api => funquail_api}/users/migrations/0001_initial.py (100%) rename api/{funkwhale_api => funquail_api}/users/migrations/0002_auto_20171214_2205.py (100%) rename api/{funkwhale_api => funquail_api}/users/migrations/0003_auto_20171226_1357.py (100%) rename api/{funkwhale_api => funquail_api}/users/migrations/0004_user_privacy_level.py (100%) rename api/{funkwhale_api => funquail_api}/users/migrations/0005_user_subsonic_api_token.py (100%) rename api/{funkwhale_api => funquail_api}/users/migrations/0006_auto_20180517_2324.py (100%) rename api/{funkwhale_api => funquail_api}/users/migrations/0007_auto_20180524_2009.py (100%) rename api/{funkwhale_api => funquail_api}/users/migrations/0008_auto_20180617_1531.py (100%) rename api/{funkwhale_api => funquail_api}/users/migrations/0009_auto_20180619_2024.py (100%) rename api/{funkwhale_api => funquail_api}/users/migrations/0010_user_avatar.py (100%) rename api/{funkwhale_api => funquail_api}/users/migrations/0011_auto_20180721_1317.py (100%) rename api/{funkwhale_api => funquail_api}/users/migrations/0012_user_upload_quota.py (100%) rename api/{funkwhale_api => funquail_api}/users/migrations/0013_auto_20181206_1008.py (100%) rename api/{funkwhale_api => funquail_api}/users/migrations/0014_oauth.py (100%) rename api/{funkwhale_api => funquail_api}/users/migrations/0015_application_scope.py (100%) rename api/{funkwhale_api => funquail_api}/users/migrations/0016_auto_20190920_0857.py (96%) rename api/{funkwhale_api => funquail_api}/users/migrations/0017_actor_avatar.py (100%) rename api/{funkwhale_api => funquail_api}/users/migrations/0018_auto_20200705_0829.py (100%) rename api/{funkwhale_api => funquail_api}/users/migrations/0019_auto_20200718_0741.py (100%) rename api/{funkwhale_api => funquail_api}/users/migrations/0020_application_token.py (100%) rename api/{funkwhale_api => funquail_api}/users/migrations/0021_auto_20210703_1810.py (100%) rename api/{funkwhale_api => funquail_api}/users/migrations/0022_alter_user_settings.py (100%) rename api/{funkwhale_api => funquail_api}/users/migrations/0022_auto_20221119_1819.py (100%) rename api/{funkwhale_api => funquail_api}/users/migrations/0023_merge_20221125_1902.py (100%) rename api/{funkwhale_api => funquail_api}/users/migrations/__init__.py (100%) rename api/{funkwhale_api => funquail_api}/users/models.py (99%) rename api/{funkwhale_api => funquail_api}/users/mutations.py (100%) rename api/{funkwhale_api => funquail_api}/users/oauth/__init__.py (100%) rename api/{funkwhale_api => funquail_api}/users/oauth/permissions.py (100%) rename api/{funkwhale_api => funquail_api}/users/oauth/scopes.py (100%) rename api/{funkwhale_api => funquail_api}/users/oauth/serializers.py (100%) rename api/{funkwhale_api => funquail_api}/users/oauth/server.py (100%) rename api/{funkwhale_api => funquail_api}/users/oauth/tasks.py (100%) rename api/{funkwhale_api => funquail_api}/users/oauth/urls.py (100%) rename api/{funkwhale_api => funquail_api}/users/oauth/views.py (100%) rename api/{funkwhale_api => funquail_api}/users/rest_auth_urls.py (100%) rename api/{funkwhale_api => funquail_api}/users/serializers.py (100%) rename api/{funkwhale_api => funquail_api}/users/tasks.py (100%) rename api/{funkwhale_api => funquail_api}/users/views.py (100%) rename api/{funkwhale_api => funquail_api}/users/wordlist.txt (100%) delete mode 100755 deploy/FreeBSD/funkwhale_beat delete mode 100755 deploy/FreeBSD/funkwhale_server delete mode 100755 deploy/FreeBSD/funkwhale_worker create mode 100755 deploy/FreeBSD/funquail_beat create mode 100755 deploy/FreeBSD/funquail_server create mode 100755 deploy/FreeBSD/funquail_worker rename deploy/Gentoo/{funkwhale_beat => funquail_beat} (54%) rename deploy/Gentoo/{funkwhale_server => funquail_server} (58%) rename deploy/Gentoo/{funkwhale_worker => funquail_worker} (53%) rename deploy/{docker.funkwhale_proxy.conf => docker.funquail_proxy.conf} (100%) delete mode 100644 deploy/funkwhale-beat.service delete mode 100644 deploy/funkwhale-server.service delete mode 100644 deploy/funkwhale-worker.service delete mode 100644 deploy/funkwhale.target create mode 100644 deploy/funquail-beat.service create mode 100644 deploy/funquail-server.service create mode 100644 deploy/funquail-worker.service create mode 100644 deploy/funquail.target rename deploy/{funkwhale_proxy.conf => funquail_proxy.conf} (100%) rename CHANGELOG.md => old/CHANGELOG.md (100%) rename CONTRIBUTING.md => old/CONTRIBUTING.md (100%) create mode 100644 old/README.md diff --git a/.env.dev b/.env.dev index d041167ba..f7220eccf 100644 --- a/.env.dev +++ b/.env.dev @@ -2,15 +2,15 @@ DJANGO_ALLOWED_HOSTS=.funkwhale.test,localhost,nginx,0.0.0.0,127.0.0.1,.gitpod.i DJANGO_SETTINGS_MODULE=config.settings.local DJANGO_SECRET_KEY=dev C_FORCE_ROOT=true -FUNKWHALE_HOSTNAME=localhost -FUNKWHALE_PROTOCOL=http +FUNQUAIL_HOSTNAME=localhost +FUNQUAIL_PROTOCOL=http PYTHONDONTWRITEBYTECODE=true VUE_PORT=8080 MUSIC_DIRECTORY_PATH=/music BROWSABLE_API_ENABLED=True FORWARDED_PROTO=http LDAP_ENABLED=False -FUNKWHALE_SPA_HTML_ROOT=http://nginx/ +FUNQUAIL_SPA_HTML_ROOT=http://nginx/ PYTHONTRACEMALLOC=0 MEDIA_ROOT=/data/media diff --git a/.gitlab/issue_templates/Bug.md b/.gitlab/issue_templates/Bug.md index 1570482a6..fe5de8945 100644 --- a/.gitlab/issue_templates/Bug.md +++ b/.gitlab/issue_templates/Bug.md @@ -41,7 +41,7 @@ Describe the expected behaviour. The version of your instance can be found on the footer : Source code (x.y) --> -**Funkwhale version(s) affected**: x.y +**FunQuail version(s) affected**: x.y