Commit graph

100 commits

Author SHA1 Message Date
Gabe Farrell
231eb1b0fb
feat: interest over time graph (#127)
* api

* ui

* test

* add margin to prevent clipping
2026-01-12 16:20:31 -05:00
Gabe Farrell
e45099c71a
fix: improve matching with identically named albums (#126)
* fix: improve matching with identically named albums

* fix: incorrect sql query
2026-01-12 13:03:04 -05:00
Gabe Farrell
97cd378535
feat: add endpoint and ui to update mbz id (#125)
* wip

* wip

* feat: add endpoint and ui to update mbz id
2026-01-11 01:50:27 -05:00
Gabe Farrell
7cf7cd3a10
feat: add musicbrainz link where possible (#124) 2026-01-11 01:39:56 -05:00
Gabe Farrell
d61e814306
fix: do not update mbz id when one already exists (#123) 2026-01-11 01:39:41 -05:00
Gabe Farrell
f51771bc34
feat: add ranks to top items charts (#122) 2026-01-11 00:15:46 -05:00
d3faa9728e chore: use named volume in dev 2026-01-11 00:03:46 -05:00
Gabe Farrell
f48dd6c039
fix: respect client timezone for requests (#119)
* maybe fixed for total listen activity

* maybe actually fixed now

* fix unset location panics
2026-01-10 01:45:31 -05:00
2925425750 docs: only release docs on new version 2026-01-01 18:41:07 -05:00
Gabe Farrell
c346c7cb31
fix: associate tracks with release when scrobbling (#118) 2026-01-01 02:40:27 -05:00
Gabe Farrell
d327729bff
transition time ranged queries to timeframe (#117) 2026-01-01 01:56:16 -05:00
ad3c51a70e fix: mobile ui for rewind 2025-12-31 19:23:20 -05:00
Gabe Farrell
d4ac96f780
feat: Rewind (#116)
* wip

* chore: update counts to allow unix timeframe

* feat: add db functions for counting new items

* wip: endpoint working

* wip

* wip: initial ui done

* add header, adjust ui

* add time listened toggle

* fix layout, year param

* param fixes
2025-12-31 18:44:55 -05:00
c0a8c64243 fix: dont build new image when only docs change 2025-12-29 12:54:23 -05:00
456b84c4ca docs: clarify token usage 2025-12-28 23:32:10 -05:00
e69ef0cb01 fix: revert to default theme if saved theme is invalid 2025-11-30 19:25:15 -05:00
682e543aa5 feat: replace asuka theme with new rosebud theme 2025-11-30 19:14:34 -05:00
20bc343fd8 chore: rm changelog 2025-11-30 19:14:14 -05:00
1bceeeb2f6 fix: add message to suggest dnd local file 2025-11-24 23:57:52 -05:00
fda416fe75 feat: set primary artist option for tracks 2025-11-24 23:49:39 -05:00
383be25bfc fix: use minutes instead of hours for time listened 2025-11-24 23:43:58 -05:00
63d953b192 fix: make all-time stats look better 2025-11-24 20:13:55 -05:00
fdaea6284e fix: better error handling on client 2025-11-24 20:05:46 -05:00
fed2c5b956 chore: add gitignore 2025-11-20 22:51:09 -05:00
Gabe Farrell
daa1bb2456
feat: config to gate all statistics behind login (#99)
* feat: gate all stats behind login

* docs: add config reference for login gate
2025-11-20 22:50:15 -05:00
Matt Foxx
c77481fd59
feat: Add unix timestamp date range parameters for fetching paginated listens (#98) 2025-11-20 11:43:09 -05:00
Gabe Farrell
620e3b65cb
chore: Update issue templates 2025-11-20 03:22:55 -05:00
6a53fca8f3 chore: update workflow to eliminate dev branch 2025-11-19 20:42:37 -05:00
Gabe Farrell
36f984a1a2
Pre-release version v0.0.14 (#96)
* add dev branch container to workflow

* correctly set the default range of ActivityGrid

* fix: set name/short_name to koito (#61)

* fix dev container push workflow

* fix: race condition with using getComputedStyle primary color for dynamic activity grid darkening (#76)

* Fix race condition with using getComputedStyle primary color for dynamic activity grid darkening

Instead just use the color from the current theme directly. Tested works on initial load and theme changes.
Fixes https://github.com/gabehf/Koito/issues/75

* Rework theme provider to provide the actual Theme object throughtout the app, in addition to the name
Split name out of the Theme struct to simplify custom theme saving/reading

* fix: set first artist listed as primary by default (#81)

* feat: add server-side configuration with default theme (#90)

* docs: add example for usage of the main listenbrainz instance (#71)

* docs: add example for usage of the main listenbrainz instance

* Update scrobbler.md

---------

Co-authored-by: Gabe Farrell <90876006+gabehf@users.noreply.github.com>

* feat: add server-side cfg and default theme

* fix: repair custom theme

---------

Co-authored-by: m0d3rnX <jesper@posteo.de>

* docs: add default theme cfg option to docs

* feat: add ability to manually scrobble track (#91)

* feat: add button to manually scrobble from ui

* fix: ensure timestamp is in the past, log fix

* test: add integration test

* feat: add first listened to dates for media items (#92)

* fix: ensure error checks for ErrNoRows

* feat: add now playing endpoint and ui (#93)

* wip

* feat: add now playing

* fix: set default theme when config is not set

* feat: fetch images from subsonic server (#94)

* fix: useQuery instead of useEffect for now playing

* feat: custom artist separator regex (#95)

* Fix race condition with using getComputedStyle primary color for dynamic activity grid darkening

Instead just use the color from the current theme directly. Tested works on initial load and theme changes.
Fixes https://github.com/gabehf/Koito/issues/75

* Rework theme provider to provide the actual Theme object throughtout the app, in addition to the name
Split name out of the Theme struct to simplify custom theme saving/reading

* feat: add server-side configuration with default theme (#90)

* docs: add example for usage of the main listenbrainz instance (#71)

* docs: add example for usage of the main listenbrainz instance

* Update scrobbler.md

---------

Co-authored-by: Gabe Farrell <90876006+gabehf@users.noreply.github.com>

* feat: add server-side cfg and default theme

* fix: repair custom theme

---------

Co-authored-by: m0d3rnX <jesper@posteo.de>

* fix: rebase errors

---------

Co-authored-by: pet <128837728+againstpetra@users.noreply.github.com>
Co-authored-by: mlandry <mike.landry@gmail.com>
Co-authored-by: m0d3rnX <jesper@posteo.de>
2025-11-19 20:26:56 -05:00
m0d3rnX
bf0ec68cfe
docs: add example for usage of the main listenbrainz instance (#71)
* docs: add example for usage of the main listenbrainz instance

* Update scrobbler.md

---------

Co-authored-by: Gabe Farrell <90876006+gabehf@users.noreply.github.com>
2025-09-27 19:08:52 -04:00
b980026f1f fix: add buildx for multi-platform build 2025-07-26 16:12:24 -04:00
Gabe Farrell
5419178012
Pre-release version v0.0.13 (#52)
* feat: search/merge items by id

* feat: update track duration using musicbrainz

* chore: changelog

* fix: make username updates case insensitive

* feat: add minutes listened to ui and fix image drop

* chore: changelog

* fix: embed db migrations (#37)

* feat: Add support for ARM in publish workflow (#51)

* chore: changelog

* docs: search by id and custom theme support

---------

Co-authored-by: potatoattack <lvl70nub@gmail.com>
Co-authored-by: Benjamin Jonard <benjaminjonard@users.noreply.github.com>
2025-07-26 15:57:46 -04:00
5537b6fb89 fix: reset mbid for artists when native importing 2025-06-18 17:46:48 -04:00
b32c5d3735 fix: ensure duration is saved when inserting track 2025-06-18 09:03:00 -04:00
Gabe Farrell
c16b557c21
feat: v0.0.10 (#23)
* feat: single SOT for themes + basic custom support

* fix: adjust colors for yuu theme

* feat: Allow loading of environment variables from file (#20)

* feat: allow loading of environment variables from file

* Panic if a file for an environment variable cannot be read

* Use log.Fatalf + os.Exit instead of panic

* fix: remove supurfluous call to os.Exit()

---------

Co-authored-by: adaexec <nixos-git.s1pht@simplelogin.com>
Co-authored-by: Gabe Farrell <90876006+gabehf@users.noreply.github.com>

* chore: add pr test workflow

* chore: changelog

* feat: make all activity grids configurable

* fix: adjust activity grid style

* fix: make background gradient consistent size

* revert: remove year from activity grid opts

* style: adjust top item list min size to 200px

* feat: add support for custom themes

* fix: stabilized the order of top items

* chore: update changelog

* feat: native import & export

* fix: use correct request body for alias requests

* fix: clear input when closing edit modal

* chore: changelog

* docs: make endpoint clearer for some apps

* feat: add ui and handler for export

* fix: fix pr test workflow

---------

Co-authored-by: adaexec <78047743+adaexec@users.noreply.github.com>
Co-authored-by: adaexec <nixos-git.s1pht@simplelogin.com>
2025-06-18 08:48:19 -04:00
486f5d0269 chore: update changelog 2025-06-17 17:14:12 -04:00
31d57fd79a fix: strip sub-second precision from incoming listens 2025-06-17 17:08:09 -04:00
80b6f4deaa feat: v0.0.8 2025-06-16 21:55:39 -04:00
00e7782be2 chore: update changelog 2025-06-16 11:28:26 -04:00
5a8b999f73 fix: hide delete listen button when not logged in 2025-06-16 11:22:53 -04:00
ef064cd9bd fix: use correct form body for login and user update 2025-06-16 11:14:11 -04:00
b1bac4feb5 fix: remove old test 2025-06-15 22:28:43 -04:00
2981ec4e8a chore: update changelog 2025-06-15 22:27:10 -04:00
57cc60534d feat: mark album as various artists 2025-06-15 22:26:17 -04:00
dc5dcbd474 fix: associate artists with merged items 2025-06-15 22:25:55 -04:00
bf9b84a171 fix: bump dockerfile go version 2025-06-15 19:19:46 -04:00
242a82ad8c feat: v0.0.5 2025-06-15 19:09:44 -04:00
4c4ebc593d feat: re-download missing images on request 2025-06-15 01:02:59 -04:00
3af969b25c docs: only run workflow when docs are updated 2025-06-15 00:43:44 -04:00
aeb79adefb fix: don't run docker workflow on branch push 2025-06-15 00:14:55 -04:00