funkwhale issueshttps://dev.funkwhale.audio/groups/funkwhale/-/issues2023-12-01T12:17:05Zhttps://dev.funkwhale.audio/funkwhale/ui/-/issues/37Follow-up from "feat: add alert and modal components"2023-12-01T12:17:05ZKasper Sewerynwvffle@funkwhale.audioFollow-up from "feat: add alert and modal components"The following discussion from !93 should be addressed:
- [ ] @mjourdan started a [discussion](https://dev.funkwhale.audio/funkwhale/ui/-/merge_requests/93#note_59325): (+1 comment)
> Visual review:
> - the close alert button
...The following discussion from !93 should be addressed:
- [ ] @mjourdan started a [discussion](https://dev.funkwhale.audio/funkwhale/ui/-/merge_requests/93#note_59325): (+1 comment)
> Visual review:
> - the close alert button
> - has a too bright background in dark theme
> - should use a dark label in light theme (blue-900 over blue-100 would probably be ok)
@mjourdan I'll wait for the proper designs for the banners/alerts and their respective buttons before fixing the colors.Kasper Sewerynwvffle@funkwhale.audioKasper Sewerynwvffle@funkwhale.audiohttps://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/2250Add schemas for existing v2 feature specs2023-11-18T04:18:53ZCiarán Ainsworthsporiff@funkwhale.audioAdd schemas for existing v2 feature specs<!--
Hello and welcome to our issue tracker! We appreciate you taking the time to help us make Funkwhale even better :smile:
Before you begin, here are some helpful tips for submitting an issue:
* If you need help setting up or using ...<!--
Hello and welcome to our issue tracker! We appreciate you taking the time to help us make Funkwhale even better :smile:
Before you begin, here are some helpful tips for submitting an issue:
* If you need help setting up or using Funkwhale, try asking in our
[forum's support board](https://forum.funkwhale.audio/support) or our [support
chat room](https://riot.im/app/#/room/#funkwhale-support:tchncs.de).
* If you think you've found a bug but aren't sure, you can ask in one of the above channels
first. Once you're confident it's a bug, go ahead and create an issue for us to investigate.
Select the **Bug** template in the **Description** dropdown menu. This template contains
helpful tips for creating your report.
* For smaller additions and enhancements, please file a feature request.
Select the **Feature Request** template in the **Description** dropdown
menu. This template contains helpful tips for creating your request.
* If you have ideas for new features or use cases, consider opening a thread in our
[forum](https://forum.funkwhale.audio/t/development). This enables us to
discuss the feature, its use cases, and the development effort it requires.
We always like hearing ideas from our community. If you're still not sure, click
the **Create issue** button and we'll work with you to sort out the issue.
Happy listening! :whale:
-->API v2Ciarán Ainsworthsporiff@funkwhale.audioCiarán Ainsworthsporiff@funkwhale.audiohttps://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/2249Create a new schema file to act as the root file2023-11-18T04:18:54ZCiarán Ainsworthsporiff@funkwhale.audioCreate a new schema file to act as the root file<!--
Hello and welcome to our issue tracker! We appreciate you taking the time to help us make Funkwhale even better :smile:
Before you begin, here are some helpful tips for submitting an issue:
* If you need help setting up or using ...<!--
Hello and welcome to our issue tracker! We appreciate you taking the time to help us make Funkwhale even better :smile:
Before you begin, here are some helpful tips for submitting an issue:
* If you need help setting up or using Funkwhale, try asking in our
[forum's support board](https://forum.funkwhale.audio/support) or our [support
chat room](https://riot.im/app/#/room/#funkwhale-support:tchncs.de).
* If you think you've found a bug but aren't sure, you can ask in one of the above channels
first. Once you're confident it's a bug, go ahead and create an issue for us to investigate.
Select the **Bug** template in the **Description** dropdown menu. This template contains
helpful tips for creating your report.
* For smaller additions and enhancements, please file a feature request.
Select the **Feature Request** template in the **Description** dropdown
menu. This template contains helpful tips for creating your request.
* If you have ideas for new features or use cases, consider opening a thread in our
[forum](https://forum.funkwhale.audio/t/development). This enables us to
discuss the feature, its use cases, and the development effort it requires.
We always like hearing ideas from our community. If you're still not sure, click
the **Create issue** button and we'll work with you to sort out the issue.
Happy listening! :whale:
-->API v2Ciarán Ainsworthsporiff@funkwhale.audioCiarán Ainsworthsporiff@funkwhale.audiohttps://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/2245Add a Regex Manager for the used documentation swagger version2023-11-03T04:04:20ZGeorg KrauseAdd a Regex Manager for the used documentation swagger versionThe following discussion from !2348 should be addressed:
- [ ] @jooola started a [discussion](https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/2348#note_57870):
> This could use a Renovate Regex Manager :wink:The following discussion from !2348 should be addressed:
- [ ] @jooola started a [discussion](https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/2348#note_57870):
> This could use a Renovate Regex Manager :wink:https://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/2244Migrate docs/user/info/cli.rst to Markdown2023-11-01T20:33:52ZGeorg KrauseMigrate docs/user/info/cli.rst to MarkdownWhen running the documentation Makefile we get the following error:
`[E 231101 20:32:58 server:94] b"/workspace/funkwhale/docs/index.md:7: WARNING: toctree contains reference to nonexisting document 'user/info/cli'\n"`
The reason is th...When running the documentation Makefile we get the following error:
`[E 231101 20:32:58 server:94] b"/workspace/funkwhale/docs/index.md:7: WARNING: toctree contains reference to nonexisting document 'user/info/cli'\n"`
The reason is that `docs/user/info/cli.rst` is not yet migrated to Markdownhttps://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/2242Docs for quick start installations: Store media in an object store > Set up y...2023-11-01T10:39:04ZDeborah PickettDocs for quick start installations: Store media in an object store > Set up your reverse proxyThe [instructions for setting up S3-compatible object storage](https://docs.funkwhale.audio/administrator/configuration/object-storage.html) describe how to edit the nginx config to operate in reverse proxy mode. There are instructions f...The [instructions for setting up S3-compatible object storage](https://docs.funkwhale.audio/administrator/configuration/object-storage.html) describe how to edit the nginx config to operate in reverse proxy mode. There are instructions for Debian installations and Docker installations but no instructions for Quick Start (Ansible) installations. I figured them out from reading the source.
1. Edit /srv/funkwhale/ansible/playbook.yml and add the `funkwhale_external_storage_enabled` parameter:
```
- hosts: funkwhale_servers
roles:
- role: funkwhale
...(other parameters)...
funkwhale_external_storage_enabled: true
```
2. Run /srv/funkwhale/ansible/reconfigre. The nginx config will update.https://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/2241Add artist donations support2023-10-31T17:11:52ZismailghedamsiAdd artist donations support<!--
Hi there! You are about to share feature request or an idea, and we want to thank you!
If it's the first time you post here, please take a moment to read our Code of Conduct
(https://funkwhale.audio/code-of-conduct/) and ensure yo...<!--
Hi there! You are about to share feature request or an idea, and we want to thank you!
If it's the first time you post here, please take a moment to read our Code of Conduct
(https://funkwhale.audio/code-of-conduct/) and ensure your issue respect our guidelines.
To ensure we can deal with your idea or request, please try to stick
to the following structure. You can leave the parts text between `<!- ->`
markers untouched, they won't be displayed in your final message.
Please do not edit the following line, it's used for automatic classification
-->
## What is the problem you are facing?
Currently there is no way to support artists financially on the platform. I believe artists should be able to make money with the music they make even though they makes more money with merch
<!--
Describe the problem you'd like to solve, and why we need to add or
improve something in the current system to solve that problem.
Be as specific as possible.
-->
## What are the possible drawbacks or issues with the requested changes?
<!--
Altering the system behaviour is not always a free action, and it can impact
user experience, performance, introduce bugs or complexity, etc..
If you think about anything we should keep in mind while
examining your request, please describe it in this section.
-->
I'm not familiar with funkwhale code.The drawback could be that some normal users could upload music that they didn't make and could get donationshttps://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/2240Document development related configurations2023-11-07T08:12:59ZGeorg KrauseDocument development related configurationsWe do have a bunch of configuration options for Funkwhale that is only relevant for development.
This is a list of configuration options I am aware of right not, it might be more though:
* `BROWSABLE_API_ENABLED`
* `DEBUG`
* `PYTHONTRA...We do have a bunch of configuration options for Funkwhale that is only relevant for development.
This is a list of configuration options I am aware of right not, it might be more though:
* `BROWSABLE_API_ENABLED`
* `DEBUG`
* `PYTHONTRACEMALLOC`
@funkwhale/documentation Should this be part of the normal Adminitrator environment variable documentation or should this become a dedicated page in the developer docs?https://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/2238Federation: Follow of channel by Mastodon instance with AUTHORIZED_FETCH on h...2023-10-31T17:15:26ZDeborah PickettFederation: Follow of channel by Mastodon instance with AUTHORIZED_FETCH on hangs at "requested"As a visible member of a minority, I run with **AUTHORIZED_FETCH** turned on on my Mastodon (actually Hometown) instance, to prevent my posts from being transitively boosted to servers that I have blocked. **AUTHORIZED_FETCH**, also call...As a visible member of a minority, I run with **AUTHORIZED_FETCH** turned on on my Mastodon (actually Hometown) instance, to prevent my posts from being transitively boosted to servers that I have blocked. **AUTHORIZED_FETCH**, also called "Secure Mode", means that all requests to the Mastodon server will be responded to with **401 Unauthorized**, and the requesting instance must resubmit the request with a host signature, which will be checked against the Mastodon server's blocklist.
## Steps to reproduce
1. Create Funkwhale pod F running 1.3.3, create User FU, create Channel C.
2. Create Mastodon instance M, create user MU. Set Mastodon instance to use AUTHORIZED_FETCH.
3. In the web interface for M, attempt to follow FU from MU. Refresh the page to see if the follow has applied.
## What happens?
In the Mastodon web interface, follow is degraded to Requested, and the button changes to "Withdraw follow request".
This seems to be because when a follow request is made, Funkwhale, like all Fediverse servers, needs to make a return request to the server that originated the follow request (to get the user's signature? I'm not totally certain about the workflow). But the server originating the follow request responds with 401 Unauthorized, because the requestor (Funkwhale) has not signed the request as **AUTHORIZED_FETCH** requires. Since Funkwhale never retries this request, the Mastodon user's follow request handshake never completes and hangs at "follow requested".
## What is expected?
The follow completes successfully.
## Workaround
Temporarily disabling **AUTHORIZED_FETCH** on the Mastodon server, then performing the follow, will permit the follow to succeed, and it will persist properly even after re-enabling **AUTHORIZED_FETCH**.
## Context
**Funkwhale version(s) affected**: 1.3.3
**Mastodon version(s) affected**: 4.0, 4.1, 4.2, probably all versions since about 3.5.
Mastodon (old.mermaid.town) nginx log shows:
```
2400:8907::f03c:93ff:fe33:def5 - - [27/Oct/2023:14:49:31 +1100] "GET /users/futzle HTTP/1.1" 401 29 "-" "python-requests (funkwhale/1.3.3; +https://darkside.ofa.dog)"
```
Mastodon (old.mermaid.town) syslog shows:
```
Oct 27 14:49:31 old bundle[3955577]: [629ff5ea-7919-4382-a6e9-ce0eb81fb728] method=GET path=/users/futzle format=json controller=AccountsController action=show status=401 duration=7.51 view=0.54 db=1.07
```
Funkwhale server (darkside.ofa.dog) nginx log shows:
```
2400:8907::f03c:93ff:fe78:43a2 - - [27/Oct/2023:03:46:52 +0000] "POST /federation/actors/serious_futzle/inbox HTTP/1.1" 403 64 "-" "http.rb/5.1.0 (Mastodon/4.0.10+hometown-1.1.1; +https://old.mermaid.town/)"
```
Funkwhale server (darkside.ofa.dog) syslog shows:
```
Oct 27 03:26:45 localhost gunicorn[134469]: 2023-10-27 03:26:45,830 funkwhale_api.federation.authentication INFO Discarding HTTP request from actor/domain https://old.mermaid.town/users/futzle, 401 Client Error: Unauthorized for url: https://old.mermaid.town/users/futzle
Oct 27 03:26:45 localhost gunicorn[134469]: 2023-10-27 03:26:45,842 django.request WARNING Forbidden: /federation/actors/serious_futzle/inbox
```
[Discarding HTTP request](https://dev.funkwhale.audio/funkwhale/funkwhale/-/blob/develop/api/funkwhale_api/federation/authentication.py#L58) seems to be the smoking gun here, that Funkwhale isn't re-attempting the request with a signature.
## Broader Fediverse context
Some Fediverse server software, notably GoToSocial, always runs in Secure Mode. They have an open issue to track following Funkwhale channels [on Github](https://github.com/superseriousbusiness/gotosocial/issues/538).
Write.as has this issue (https://discuss.write.as/t/federation-cant-follow-from-mastodon-with-authorized-fetch-enabled/2063/5).
Bookwyrm had this issue and has applied a [patch](https://github.com/bookwyrm-social/bookwyrm/pull/2613) which might be of particular interest as Bookwyrm is also a Django project.
Pixelfed had this issue and has applied a [patch](https://github.com/pixelfed/pixelfed/pull/4504).https://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/2237Library scan error2023-11-01T11:12:26ZppomLibrary scan error## Steps to reproduce
There are two issues.
One may be hard to reproduce.
1. A user on server djembe.babos.land starts a scan on a lib of server music.ppom.me
## What happens?
Scan systematically hangs at the same percentage of scann...## Steps to reproduce
There are two issues.
One may be hard to reproduce.
1. A user on server djembe.babos.land starts a scan on a lib of server music.ppom.me
## What happens?
Scan systematically hangs at the same percentage of scanned tracks.
## Context
Both instances are running 1.3.1.
djembe.babos.land celery-worker logs:
```
[2023-10-24 20:56:19,726: WARNING/ForkPoolWorker-2] [celery] Error during task 1c0b4c1a-9e5b-4548-9dbd-efd711863019: Invalid actor payload: <!DOCTYPE html>
<html lang="en">
... default index.html ...
</html>
[2023-10-24 20:56:19,727: WARNING/ForkPoolWorker-2] Traceback (most recent call last):
[2023-10-24 20:56:19,728: WARNING/ForkPoolWorker-2] File "/venv/lib/python3.10/site-packages/requests/models.py", line 971, in json
return complexjson.loads(self.text, **kwargs)
[2023-10-24 20:56:19,728: WARNING/ForkPoolWorker-2] File "/usr/lib/python3.10/json/__init__.py", line 346, in loads
return _default_decoder.decode(s)
[2023-10-24 20:56:19,728: WARNING/ForkPoolWorker-2] File "/usr/lib/python3.10/json/decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
[2023-10-24 20:56:19,728: WARNING/ForkPoolWorker-2] File "/usr/lib/python3.10/json/decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
[2023-10-24 20:56:19,728: WARNING/ForkPoolWorker-2] json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
[2023-10-24 20:56:19,728: WARNING/ForkPoolWorker-2]
During handling of the above exception, another exception occurred:
[2023-10-24 20:56:19,728: WARNING/ForkPoolWorker-2] Traceback (most recent call last):
[2023-10-24 20:56:19,728: WARNING/ForkPoolWorker-2] File "/app/funkwhale_api/federation/actors.py", line 23, in get_actor_data
return response.json()
[2023-10-24 20:56:19,728: WARNING/ForkPoolWorker-2] File "/venv/lib/python3.10/site-packages/requests/models.py", line 975, in json
raise RequestsJSONDecodeError(e.msg, e.doc, e.pos)
[2023-10-24 20:56:19,728: WARNING/ForkPoolWorker-2] requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
[2023-10-24 20:56:19,729: WARNING/ForkPoolWorker-2]
During handling of the above exception, another exception occurred:
[2023-10-24 20:56:19,729: WARNING/ForkPoolWorker-2] Traceback (most recent call last):
[2023-10-24 20:56:19,729: WARNING/ForkPoolWorker-2] File "/venv/lib/python3.10/site-packages/celery/app/trace.py", line 451, in trace_task
R = retval = fun(*args, **kwargs)
[2023-10-24 20:56:19,729: WARNING/ForkPoolWorker-2] File "/venv/lib/python3.10/site-packages/celery/app/trace.py", line 734, in __protected_call__
return self.run(*args, **kwargs)
[2023-10-24 20:56:19,729: WARNING/ForkPoolWorker-2] File "/venv/lib/python3.10/site-packages/celery/app/autoretry.py", line 34, in run
return task._orig_run(*args, **kwargs)
[2023-10-24 20:56:19,729: WARNING/ForkPoolWorker-2] File "/app/funkwhale_api/taskapp/celery.py", line 55, in inner
return function(*args, **kwargs)
[2023-10-24 20:56:19,729: WARNING/ForkPoolWorker-2] File "/app/funkwhale_api/music/tasks.py", line 128, in scan_library_page
upload = item_serializer.save(library=library_scan.library)
[2023-10-24 20:56:19,729: WARNING/ForkPoolWorker-2] File "/venv/lib/python3.10/site-packages/rest_framework/serializers.py", line 212, in save
self.instance = self.create(validated_data)
[2023-10-24 20:56:19,729: WARNING/ForkPoolWorker-2] File "/usr/lib/python3.10/contextlib.py", line 79, in inner
return func(*args, **kwds)
[2023-10-24 20:56:19,729: WARNING/ForkPoolWorker-2] File "/app/funkwhale_api/federation/serializers.py", line 1620, in create
).create(validated_data["track"])
[2023-10-24 20:56:19,729: WARNING/ForkPoolWorker-2] File "/app/funkwhale_api/federation/serializers.py", line 1509, in create
references[url] = actors.get_actor(url)
[2023-10-24 20:56:19,729: WARNING/ForkPoolWorker-2] File "/app/funkwhale_api/federation/actors.py", line 40, in get_actor
data = get_actor_data(fid)
[2023-10-24 20:56:19,730: WARNING/ForkPoolWorker-2] File "/app/funkwhale_api/federation/actors.py", line 25, in get_actor_data
raise ValueError(f"Invalid actor payload: {response.text}")
[2023-10-24 20:56:19,730: WARNING/ForkPoolWorker-2] ValueError: Invalid actor payload: <!DOCTYPE html>
<html lang="en">
... default index.html ...
</html>
[2023-10-24 20:56:19,730: ERROR/ForkPoolWorker-2] Task music.scan_library_page[1c0b4c1a-9e5b-4548-9dbd-efd711863019] raised unexpected: ValueError('Invalid actor payload: <!DOCTYPE html>\n<html lang="en">... default index.html ...</html>\n')
Traceback (most recent call last):
File "/venv/lib/python3.10/site-packages/requests/models.py", line 971, in json
return complexjson.loads(self.text, **kwargs)
File "/usr/lib/python3.10/json/__init__.py", line 346, in loads
return _default_decoder.decode(s)
File "/usr/lib/python3.10/json/decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python3.10/json/decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/app/funkwhale_api/federation/actors.py", line 23, in get_actor_data
return response.json()
File "/venv/lib/python3.10/site-packages/requests/models.py", line 975, in json
raise RequestsJSONDecodeError(e.msg, e.doc, e.pos)
requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/venv/lib/python3.10/site-packages/celery/app/trace.py", line 451, in trace_task
R = retval = fun(*args, **kwargs)
File "/venv/lib/python3.10/site-packages/celery/app/trace.py", line 734, in __protected_call__
return self.run(*args, **kwargs)
File "/venv/lib/python3.10/site-packages/celery/app/autoretry.py", line 34, in run
return task._orig_run(*args, **kwargs)
File "/app/funkwhale_api/taskapp/celery.py", line 55, in inner
return function(*args, **kwargs)
File "/app/funkwhale_api/music/tasks.py", line 128, in scan_library_page
upload = item_serializer.save(library=library_scan.library)
File "/venv/lib/python3.10/site-packages/rest_framework/serializers.py", line 212, in save
self.instance = self.create(validated_data)
File "/usr/lib/python3.10/contextlib.py", line 79, in inner
return func(*args, **kwds)
File "/app/funkwhale_api/federation/serializers.py", line 1620, in create
).create(validated_data["track"])
File "/app/funkwhale_api/federation/serializers.py", line 1509, in create
references[url] = actors.get_actor(url)
File "/app/funkwhale_api/federation/actors.py", line 40, in get_actor
data = get_actor_data(fid)
File "/app/funkwhale_api/federation/actors.py", line 25, in get_actor_data
raise ValueError(f"Invalid actor payload: {response.text}")
ValueError: Invalid actor payload: <!DOCTYPE html>
<html lang="en">
... default html ...
</html>
```
music.ppom.me funkwhale-api logs:
```
2023-10-24 20:56:56,168 django.request ERROR Internal Server Error: /api/v1/federation/actors/clement@music.ppom.me/
Traceback (most recent call last):
File "/venv/lib/python3.10/site-packages/asgiref/sync.py", line 534, in thread_handler
raise exc_info[1]
File "/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", line 38, in inner
response = await get_response(request)
File "/venv/lib/python3.10/site-packages/django/core/handlers/base.py", line 233, in _get_response_async
response = await wrapped_callback(request, *callback_args, **callback_kwargs) Oct 24 22:56:56 musi docker-funkwhale-api-start[5083]: File "/venv/lib/python3.10/site-packages/asgiref/sync.py", line 479, in __call__
ret: _R = await loop.run_in_executor(
File "/venv/lib/python3.10/site-packages/asgiref/current_thread_executor.py", line 40, in run
result = self.fn(*self.args, **self.kwargs)
File "/venv/lib/python3.10/site-packages/asgiref/sync.py", line 538, in thread_handler
return func(*args, **kwargs)
File "/usr/lib/python3.10/contextlib.py", line 79, in inner
return func(*args, **kwds)
File "/venv/lib/python3.10/site-packages/django/views/decorators/csrf.py", line 54, in wrapped_view
return view_func(*args, **kwargs)
File "/venv/lib/python3.10/site-packages/rest_framework/viewsets.py", line 125, in view
return self.dispatch(request, *args, **kwargs)
File "/venv/lib/python3.10/site-packages/rest_framework/views.py", line 509, in dispatch
response = self.handle_exception(exc)
File "/venv/lib/python3.10/site-packages/rest_framework/views.py", line 469, in handle_exception
self.raise_uncaught_exception(exc)
File "/venv/lib/python3.10/site-packages/rest_framework/views.py", line 480, in raise_uncaught_exception
raise exc
File "/venv/lib/python3.10/site-packages/rest_framework/views.py", line 506, in dispatch
response = handler(request, *args, **kwargs)
File "/venv/lib/python3.10/site-packages/rest_framework/mixins.py", line 54, in retrieve
instance = self.get_object()
File "/app/funkwhale_api/federation/api_views.py", line 294, in get_object
return queryset.get(preferred_username=username, domain_id=domain)
File "/venv/lib/python3.10/site-packages/django/db/models/query.py", line 435, in get Oct 24 22:56:56 musi docker-funkwhale-api-start[5083]: raise self.model.DoesNotExist(
funkwhale_api.federation.models.Actor.DoesNotExist: Actor matching query does not exist.
```
## Conclusion
So there are 2 issues I think:
- The `Actor.DoesNotExist` exception is not catched by music.ppom.me
- music.ppom.me returns the default HTML
- djembe.babos.land can't parse the JSON (because it's HTML)
- There is this unknown clement@music.ppom.me:
- Doing a full-text search in djembe.babos.land AND in music.ppom.me SQL dumps, no clement@music.ppom.me can be found.
- There is a clement@music.intbh.space though, but how would it change its ~~family~~ instance name?https://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/2236Allow to search for tracks with artist/album hints2023-12-12T08:54:59ZppomAllow to search for tracks with artist/album hints
## What is the problem you are facing?
Funkwhale's search engine doesn't permit to search in the title and on the album/artist name at the same time.
When searching for a track that only has common words (for example "Love", "You & I"...
## What is the problem you are facing?
Funkwhale's search engine doesn't permit to search in the title and on the album/artist name at the same time.
When searching for a track that only has common words (for example "Love", "You & I"),
I can get tons of results. Sometimes the shorter path to finding that song is to first search for this album and go on its page, then to hit the song's "track details".
## Possible solution and drawbacks
I see in the data model that Tracks have a `body_text` field that tokenize the track title. Maybe it's an easy pick to add the artist's and album's name in the field?
The search can be a little slower, but if it's a real field (not a SQL JOIN), it should not be that much ifaik.
Also the field could get outdated when we change an artist or album name, but that doesn't happen a lot. I'd say that an imperfect implementation is better than none.
I saw in [this issue](https://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/2095) something that seems to be close to what I'm suggesting:
> What we could do to improve these results is what I've been discussing with @JuniorJPDJ privately - to create a dynamic field on the `Track` model that contains the track title, album title and artist name (all transliterated to support diacritics the 'easy way') and search it either by fuzzy matching or by words from the search query. My only concern to this approach is the performance, but I am not a back-end developer, so I can't tell if there would be a performance hit or not.https://dev.funkwhale.audio/funkwhale/funkwhale.audio/-/issues/37New website adjustments2023-10-22T04:03:45ZMathieu JourdanNew website adjustmentsFollowing our new website going online (o/), here are some issues I could spot.
## Landing page
- [ ] get started button should have a size of 480*56 px; and a label of 24 px height
- [ ] negative space above and below the hero box sho...Following our new website going online (o/), here are some issues I could spot.
## Landing page
- [ ] get started button should have a size of 480*56 px; and a label of 24 px height
- [ ] negative space above and below the hero box should be reduced to 24 px (in order to make more obvious the page is scrollable)
- [ ] max width should be set to 1200 px for the 4 benefits cards row
- [ ] illustrations should have a height of 224 px, and a margin of 16 px above and below (in order to avoid scrolling)
- [ ] width of features row should be of 1024 px, (so content doesn't feel that stretched)
- [ ] cards paragraphs should have a 16 px height text, with interline of 1.2
- [ ] other paragraphs should have an interline of 1.5
- [ ] "make a donation" and "contribute" buttons should have a width of 320 * 40 px, with a space of 32 px between them
## Footer
- [ ] footer should not stretch over the 1200 px max width
- [ ] the link to Robin's website leads to a database error
## Help page
- [ ] there should be 3 cards per row, with a width of 1024 px
- [ ] cards should align to the left
- [ ] section headings and paragraphs should align to the left
Is it intended that there is no link to FAQ?
## Contribute page
- [ ] the design and development card on the contribute page returns a 404. [link to the faulty url](https://docs.funkwhale.audio/developers/index.html)
- [ ] cards should align to the left
- [ ] section headings and paragraphs should align to the left
## Navbar
- [ ] misses a link to "Find a pod"
## Find a pod
- [ ] same as for landing page, picture should be no taller than 500px, with margin top and bottom of 24px max
- [ ] filters states should be fixed
I've made changes to mockups for contribute and help pages, to left-align text.Georg KrauseGeorg Krausehttps://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/2234Play Next behaviour is not as expected - Appends to queue instead2023-12-14T10:52:30ZAMoonRabbitPlay Next behaviour is not as expected - Appends to queue instead<!--
Hi there! You are reporting a bug on this project, and we want to thank you!
If it's the first time you post here, please take a moment to read our Code of Conduct
(https://funkwhale.audio/code-of-conduct/) and ensure your issue re...<!--
Hi there! You are reporting a bug on this project, and we want to thank you!
If it's the first time you post here, please take a moment to read our Code of Conduct
(https://funkwhale.audio/code-of-conduct/) and ensure your issue respect our guidelines.
To ensure your bug report is as useful as possible, please try to stick
to the following structure. You can leave the parts text between `<!- ->`
markers untouched, they won't be displayed in your final message.
Please do not edit the following line, it's used for automatic classification
-->
## Steps to reproduce
<!--
Describe the steps to reproduce the issue, like:
1. Visit the page at /artists/
2. Type that
3. Submit
-->
1. Have an existing queue playing.
2. Click play next on a track/album
3. Track/album is added to the end of the play queue rather than after the currently playing track.
## What happens?
When using the Play Next option, tracks are appended to the end of the queue rather than being inserted immediately after the current track.
## What is expected?
Tracks should be inserted immediately after the currently playing track.
## Context
<!--
The version of your instance can be found on the footer : Source code (x.y)
-->
**Funkwhale version(s) affected**: 1.3.3
<!--
If relevant, share additional context here like:
- Browser type and version (for front-end bugs)
- Instance configuration (Docker/non-docker, nginx/apache as proxy, etc.)
- Error messages, screenshots and logs
-->https://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/2233PWA not available for v1.3.X - App manifest issues still?2024-02-26T20:11:12ZAMoonRabbitPWA not available for v1.3.X - App manifest issues still?<!--
Hi there! You are reporting a bug on this project, and we want to thank you!
If it's the first time you post here, please take a moment to read our Code of Conduct
(https://funkwhale.audio/code-of-conduct/) and ensure your issue re...<!--
Hi there! You are reporting a bug on this project, and we want to thank you!
If it's the first time you post here, please take a moment to read our Code of Conduct
(https://funkwhale.audio/code-of-conduct/) and ensure your issue respect our guidelines.
To ensure your bug report is as useful as possible, please try to stick
to the following structure. You can leave the parts text between `<!- ->`
markers untouched, they won't be displayed in your final message.
Please do not edit the following line, it's used for automatic classification
-->
## Steps to reproduce
<!--
Describe the steps to reproduce the issue, like:
1. Visit the page at /artists/
2. Type that
3. Submit
-->
1. Visit Open.audio (which currently is on 1.2.10) and note that "Install as App icon in toolbar".
2. Visit an instance on 1.3.X and note that this no longer appears.
## What happens?
<!--
Describe what happens once the previous steps are completed.
-->
Instances on v1.3.X no longer give the option to install the website as a PWA. However on desktop this can be worked around in some chromium browsers as they support making some sites as apps anyway. On mobile however, I have not found a work around.
## What is expected?
<!--
Describe the expected behaviour.
-->
The site should be available to install as a PWA.
## Context
<!--
The version of your instance can be found on the footer : Source code (x.y)
-->
**Funkwhale version(s) affected**: 1.3.X
<!--
If relevant, share additional context here like:
- Browser type and version (for front-end bugs)
- Instance configuration (Docker/non-docker, nginx/apache as proxy, etc.)
- Error messages, screenshots and logs
-->
Screenshot of the address bar in Edge for Open.audio
![image](/uploads/e399449e945e877efc64741cc87c05b5/image.png)
My instance on v1.3.3
![image](/uploads/bad52a88749d4c14c843c6ce3cfbfe4f/image.png)
Looking at the console, my instance has a error for instance.ts which Open.audio does not, but I am not clued up enough to know if this is PWA related. There are no manifest file errors at least which I think have been present before.
![image](/uploads/00d0fe0803ce05690f7f520eeb26d56c/image.png)
Also, looking at the application tab in the browser console, Manifests has a few more errors present
![image](/uploads/87b1d6edbdc92465d96520785a078f9d/image.png)
Start URL and other items which are present on Open.audio are missing
![image](/uploads/c37ed8445f5d3466e7c032f0aa26b2cb/image.png)1.4.1https://dev.funkwhale.audio/funkwhale/funkwhale-android/-/issues/147Bluetooth does not transmit album name2023-10-10T13:28:50ZEric MesaBluetooth does not transmit album nameWhen using Bluetooth to listen to music via the funkwhale Android app it transmits the title and artist, but not the album name.
I only have one example: Honda Odyssey 2016 radio. But subsonic connected to Apache sends the album titleWhen using Bluetooth to listen to music via the funkwhale Android app it transmits the title and artist, but not the album name.
I only have one example: Honda Odyssey 2016 radio. But subsonic connected to Apache sends the album titlehttps://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/2229Scrobbler plugin failing to reset invalid auth sessions for last.fm2023-10-26T11:12:42ZMiv2nirScrobbler plugin failing to reset invalid auth sessions for last.fm## Steps to reproduce
1. Go to funkwhale's account settings -\> Manage plugins
2. Enable and connect a last.fm scrobbler the normal way.
3. Go to your last.fm account -\> Settings -\> Applications.
4. Disconnect the Funkwhale applicatio...## Steps to reproduce
1. Go to funkwhale's account settings -\> Manage plugins
2. Enable and connect a last.fm scrobbler the normal way.
3. Go to your last.fm account -\> Settings -\> Applications.
4. Disconnect the Funkwhale application.
5. Attempt to reconnect your last.fm to funkwhale again.
## What happens?
Nothing happens, track listens do not get logged on last.fm (they still do in Funkwhale itself), the app does not connect back to your last.fm account
## What is expected?
Funkwhale app is expected to connect back to your last.fm account and keep on logging track listens.
## Context & Possible Fix
I stumbled upon this bug when I accidentally disconnected my Funkwhale scrobbler from my last.fm account. Upon trying to rerun the scrobbler plugin setup it wouldn't work at all.
`journalctl -u funkwhale-server` has given me the following:
```plaintext
-- Logs begin at Tue 2022-04-12 17:57:52 UTC, end at Sat 2023-10-07 12:56:39 UTC. --
Oct 07 12:35:29 funkwhalemiv2nir gunicorn[1208]: 2023-10-07 12:35:29,946 plugins WARNING Plugin scrobbler errored during hook listening_created: <?xml version="1.0" encoding="UTF-8"?>
Oct 07 12:35:29 funkwhalemiv2nir gunicorn[1208]: <lfm status="failed">
Oct 07 12:35:29 funkwhalemiv2nir gunicorn[1208]: <error code="9">Invalid session key - Please re-authenticate</error>
Oct 07 12:35:29 funkwhalemiv2nir gunicorn[1208]: </lfm>
```
It seems like Funkwhale was using the expired session that has been saved in the system to authenticate with last.fm and failing repeatedly.
Upon further digging I figured out where those sessions are stored and typed in the following into funkwhale's shell:
1. from django.core.cache import caches
2. cache.keys('scrobbler\*')
3. cache.delete(\<insert retrieved keys here\>)
Upon doing so the last.fm session stored in Funkwhale has been reset, allowing for a new one to properly generate and so my scrobbling has been restored. I suppose doing this automatically or providing users an option to do so could be a solution to this issue.
**Funkwhale version(s) affected**: 1.2.9Nina MärtensNina Märtenshttps://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/2228Troi real world review2024-01-26T15:14:56ZpetitminionTroi real world reviewDb context :
- 289 library follows
- 93666 tracks
Result :
- only 3 match for a 50 tracks playlist (daily jams for my user)
- only 6 match for a 50 tracks playlist (daily jams for my user 2th test)
- only 13 match for a 50 tracks play...Db context :
- 289 library follows
- 93666 tracks
Result :
- only 3 match for a 50 tracks playlist (daily jams for my user)
- only 6 match for a 50 tracks playlist (daily jams for my user 2th test)
- only 13 match for a 50 tracks playlist (daily jams for my user 3th test)
To do :
- [ ] Lacking some patch in troi (add `UserRecordingRecommendationsElement` has a troi patch)
- [ ] Various duplicates (same track but different fw ids) (https://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/2231)
- [ ] Add a new error for the frontend explaining that there is a problem in musicbrainz side (for now if there is a problem we throw a `no more radio candidate` but this is confusing)
- [ ] make troi use local tracks
To follow some ideas about how to resolve some issues we are speaking about it here :
- https://community.metabrainz.org/t/sort-troi-patches-by-stability-and-use/658650
- https://forum.funkwhale.audio/d/394-troi-implementation-going-onpetitminionpetitminionhttps://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/2227Inconsistent default language picking2023-09-27T20:21:57ZCodingNekoInconsistent default language picking## Steps to reproduce
## What happens?
Language appears to be IP location based in some circumstances, but naviator.language location based in others? I opened Funkwhale in Chrome 17.0.5938.92 (Official Build) (64-bit) and the page sho...## Steps to reproduce
## What happens?
Language appears to be IP location based in some circumstances, but naviator.language location based in others? I opened Funkwhale in Chrome 17.0.5938.92 (Official Build) (64-bit) and the page shows up in Catalan (correct location-wise, but incorrect system language-wise). However, when I open the page in an incognito window, it shows up in English (correct system language). Firefox doesn't show up in Catalan at all.
I tried removing cookies to see if it was just me having the language saved in some cookie for some reason (don't recall opening funkwhale ever, even less setting the language to Catalan), but it does not do anything, still get the same behaviour.
## What is expected?
Language should be set using the [navigator.language](https://developer.mozilla.org/en-US/docs/Web/API/Navigator/language) property always, regardless of browser.
## Context
**Funkwhale version(s) affected**: at least 1.2.9+git.e38c97d9
**Browsers affected:** at least Chrome 17.0.5938.92 (Official Build) (64-bit)https://dev.funkwhale.audio/funkwhale/funkwhale-android/-/issues/146Store PlayerQueue in LiveData2023-09-28T04:08:48ZGeorg KrauseStore PlayerQueue in LiveDataThe following discussion from !310 should be addressed:
- [ ] @christophehenry started a [discussion](https://dev.funkwhale.audio/funkwhale/funkwhale-android/-/merge_requests/310#note_56457):
> At some point, the player queue shou...The following discussion from !310 should be addressed:
- [ ] @christophehenry started a [discussion](https://dev.funkwhale.audio/funkwhale/funkwhale-android/-/merge_requests/310#note_56457):
> At some point, the player queue should be stored in a `LiveData`.https://dev.funkwhale.audio/funkwhale/ui/-/issues/34Implement keyboard controls for components2023-12-01T12:41:34ZCiarán Ainsworthsporiff@funkwhale.audioImplement keyboard controls for componentsTo enable keyboard users to interact with components, `focus` states need to be added. Keyboard users must be able to tab through a component's controls to make the library accessible.To enable keyboard users to interact with components, `focus` states need to be added. Keyboard users must be able to tab through a component's controls to make the library accessible.v0.4.0