Open Collective
Open Collective
Loading
Full time work: week 3 update
Published on October 2, 2023 by yayuyokitano

Greetings, and once again thank you for backing! Week 3 is up! Apologies for the delay on this, I had a migraine attack, and wanted to give this another read-over when I was back to 100% to make sure I was actually making sense.

Next weekend I will not post an update, and will instead include that in a wider month-end update once the month is over. I will probably post some bits and pieces on discord.

First of all: I actually found myself being pretty done with what we set out to do as far as coding goes! This was faster than I thought. Because of this, I set out on a few other things this week (adding blocklist/allowlist, adding connectors). For the remaining 7 workdays however I want to get out ahead.

To start, if you have some feature you really want added, or some connector you really want added, or some issue you really want fixed, this is the time to speak up, as there will be time to pursue stretch goals for this month, and what I am setting out here is relatively arbitrary.

First of all, the blocklist/allowlist (see further down) needs finishing. It needs to refresh the controller when the allowlist/blocklist is changed, and it needs UI work (currently the UI is just a couple default styled buttons with random line breaks and no setup for translations). Overall, this shouldn't be much work, I doubt it takes more than a few hours.

Then, I recently discovered a bug in the discord RPC that I have to fix. It seems that there is a pipe error that occurs after a period of inactivity. Hopefully this won't be too complex, but it might be, I have not put any effort into looking into the issue yet, only noticed it.

Then, we will be doing some efforts to get everything landed, and do some debugging on the new controller state that has been implemented.

Then, if there's time, I would like to add a functionality to block specific tracks, artists, albums, and album tags. I probably see myself implementing this as part of the bulk edit interface, but I'm not sure.

If there's time even after that, I will probably spend that time going through the code to make more small improvements here and there and/or implementing more connectors.

To be clear, these are stretch goals, and I probably will not finish all of these goals, they are just that, stretch goals.

As for the distribution of time spent this week:

Add scrobble cache: 10:56:59
Connector development: 9:52:46
Add channel blocklist/allowlist: 7:17:15
Code improvement: 4:33:30
Code review: 1:48:26
Improve CI: 1:08:41
Overhaul login UX: 0:46:31
Other: 0:35:52
Documentation: 0:33:19
Exploring issues: 0:17:53

Total: 37:51:02


Add scrobble cache: This feels done, but it touches a lot of very core functionality, so I want to keep testing it a bit more.

Connector development: 11 connectors were added (in addition to connector(s) added by others), additionally some work was done towards a nuuday connector, but it turned out to be more complicated than expected and is on the backburner for now.

Add channel blocklist/allowlist: Immediately, this will allow the user to only scrobble specific channels on youtube, or to disable scrobbling specific channels on youtube. However, this is using an API that connectors can plug into, meaning that other sites can add support for it, if the site has something resembling channels/users. This will not be used for blocking artists, we will add separate functionality for this at some point.

Code improvement: Various improvements. The entire code was overhauled to fix linting warnings that generally related to components not having been built with reactivity in mind. This may also allow us to be stricter and demand a lack of warnings from PRs too. Additionally, the popup was overhauled, making the code more readable, and also creating a better fallback when no connector state is found (this is especially relevant on safari, where there is no connector state in new tabs). Finally, a dependency we use for conditional compiling had a breaking update, and needed a couple of minor changes.

Improve CI: This can be considered done for now! CI is much stricter now, and it feels really great. We need to remove some deprecated items from stylelint, but for now we are fine.

Overhaul login UX: Removed the sign in button for maloja and webhook. There was nothing to sign into, so this was just confusing. login overhaul is nearing completion now, just want to change up the listenbrainz UI a little bit.

Documentation: the connector development documentation was updated to use typescript. Webhook api page was updated to reflect changes and to give a warning about having to return 200 status.

Other: Writing this.


Finally, similar to last week, here's a status summary:

[x] Recover after updates - Finished and merged.
[x] Fix CI to be stricter and more consistent - done for now.
[/] Improve login UX - almost done, just one small UI change I would like to make to listenbrainz.
[/] Create an official discord rich presence utility - not done anymore, new bug to fix.
[x] Add scrobble caching - I don't think any code changes will happen here, it feels solid. However, it is still pending more testing before we merge.
[/] Create a separate popup state for tracks skipped because of settings such as not scrobbling podcasts, not scrobbling anything except music category, etc. - No progress since last week. Functional and merged, but seems flaky esp with youtube, so I have to revisit this before release.