Commit Graph

275 Commits

Author SHA1 Message Date
Claudio Ortolina 2df5e7ee1d Show wishlisted date for wishlisted records 2025-06-14 12:58:47 +03:00
Claudio Ortolina a1f5182e90 Make top albums clickable 2025-06-14 11:16:51 +03:00
Claudio Ortolina 945dc91887 Make cutoff time deterministic 2025-06-14 10:48:15 +03:00
Claudio Ortolina 268aff9918 Add top albums to the stats page
Authored with Claude.

> I'd like to have a new section in the Stats page. In this section I
want to see the top albums I listened to in the past 30,
  90, 365 days. Use the data in `scrobbled_tracks` to determine which
albums need to be displayed.

> This all looks great as a starter. I'd like to make some
modifications.

  1. Invert the position of the artist name and the album title (so that
it's consistent with the Scrobble Activity)
  2. Remove the border and shadow from around each album
  3. Rename the "Last 365 days" section to "Last Year"
2025-06-14 09:38:44 +03:00
Claudio Ortolina 2cc1d7ca8f Pick color extraction strategy from dropdown 2025-06-08 20:06:54 +01:00
Claudio Ortolina 2bbb91769d Generate better dominant colors async after record import 2025-06-08 07:50:07 +01:00
Claudio Ortolina 569f8b5340 Distinguish between color extraction strategies
By default, use fast color sampling. Run heavy edge weighted extraction
only on demand.
2025-06-08 07:43:07 +01:00
Claudio Ortolina 96ceb5c7f6 Switch to edge-weighted color extraction algo 2025-06-07 21:53:47 +01:00
Claudio Ortolina 378992e632 Add functions to generate dominant colors 2025-06-07 20:13:19 +01:00
Claudio Ortolina c5e47cbc8c Display dominant colors from the db 2025-06-07 20:07:23 +01:00
Claudio Ortolina 8a2fda5f73 Increase sample rate to get a more faithful set of colors 2025-06-07 19:43:54 +01:00
Claudio Ortolina ccb3089ddf Experiment: show dominant colors in collected record details page 2025-06-07 14:36:29 +01:00
Claudio Ortolina a63f2de60b Use ->> instead of json_extract in queries
Improves readability of queries.
2025-06-06 21:05:44 +01:00
Claudio Ortolina fd997e853f Update artists when refreshing MusicBrainz data 2025-06-04 15:57:25 +01:00
Claudio Ortolina 27c1cc0eda Import artist joinphrase 2025-06-03 18:16:47 +01:00
Claudio Ortolina 669b144c55 Find last listened track based on title and artist as well 2025-06-03 18:05:23 +01:00
Claudio Ortolina c23260d03d Show last listen at for each collected record 2025-06-03 15:57:12 +01:00
Claudio Ortolina 1f64c71efa Apply quokka blocks rule 2025-05-28 19:51:54 +01:00
Claudio Ortolina 676c2e4290 Enable quokka with :module_directives rule 2025-05-28 19:41:57 +01:00
Claudio Ortolina 423d1e7764 Can sort wishlisted records by insertion 2025-05-26 23:12:34 +01:00
Claudio Ortolina ad29b8f96d Normalized search index
So that one can search for 'bjorn' and find 'Bjørn'
2025-05-25 09:26:01 +01:00
Claudio Ortolina b6c554af34 Display rich release summary in form and details 2025-05-25 08:45:38 +01:00
Claudio Ortolina 7172551552 Poor man's rate limiting 2025-05-24 18:28:06 +01:00
Claudio Ortolina ee808fb041 Add ability to refresh musicbrainz data async 2025-05-24 18:04:20 +01:00
Claudio Ortolina b44693b022 Move Artist and ArtistInfo under Artists context 2025-05-23 20:11:57 +01:00
Claudio Ortolina d38fcd6fee Account for no artist country or area 2025-05-21 22:35:45 +01:00
Claudio Ortolina 051c6195b5 Harden release label display 2025-05-18 20:57:17 +01:00
Claudio Ortolina 083b245862 Fallback to country when areas have no country data 2025-05-16 10:25:22 +01:00
Claudio Ortolina 157b408341 Fix Artists.exists?/1 to account for multiple records 2025-05-13 10:22:23 +01:00
Claudio Ortolina b831a2e1d7 Can scrobble individual discs 2025-05-10 09:46:07 +01:00
Claudio Ortolina f223d6d739 Rename scrobble -> scrobble_release and tighten options check 2025-05-10 08:08:42 +01:00
Claudio Ortolina 80ec4336f6 Account for artist info areas having iso-3166-2-codes 2025-05-09 11:27:47 +01:00
Claudio Ortolina ee4d9dd29a Set the selected release id when scanning a wishlisted record 2025-05-09 10:10:33 +01:00
Claudio Ortolina ebaaa8d95b Sort releases in edit form select 2025-05-07 15:01:30 +01:00
Claudio Ortolina fddc2dcbf0 Link Last.fm account from tracks 2025-05-07 11:26:41 +01:00
Claudio Ortolina 952d3388a1 Scrobble using finished_at time 2025-05-07 10:46:51 +01:00
Claudio Ortolina a94c349781 Add context function to scrobble a release 2025-05-07 09:07:45 +01:00
Claudio Ortolina 95f71519d3 Store Last.fm API key with encrypted secret 2025-05-06 15:18:14 +01:00
Claudio Ortolina 0952bcd399 Use strftime to format date and datetimes 2025-05-04 17:23:33 +01:00
Claudio Ortolina 93e1fad88e Make purchase order deterministic
Avoids ordering issues when records have the same purchased_at datetime
(which is what happens when they're scanned in batches).
2025-05-04 09:20:45 +01:00
Claudio Ortolina cfe357239b Refactor to move record release helpers to better places 2025-05-01 20:21:18 +01:00
Claudio Ortolina bc213caa45 Store selected release id when scanning a record 2025-05-01 19:36:47 +01:00
Claudio Ortolina 3e7341d4ca Support choosing a selected release 2025-05-01 17:42:40 +01:00
Claudio Ortolina e083950138 Rename record.release to record.release_date
Includes changes to dependent tables (i.e. the record search index) and
related functions.
2025-05-01 14:04:57 +01:00
Claudio Ortolina 9fc729d5e1 Support secondary Discogs images 2025-04-29 18:56:48 +01:00
Claudio Ortolina 1c3efb262b Return 404 for artist image requests without image data 2025-04-29 18:52:38 +01:00
Claudio Ortolina 818a416b1c Prune artist info after deleting the artist's last record 2025-04-29 18:44:37 +01:00
Claudio Ortolina fa49e73385 When creating a record, queue a job to fetch artist info 2025-04-29 16:56:22 +01:00
Claudio Ortolina 5e9fba824c Refactor function to remove nested error handling 2025-04-29 16:11:05 +01:00
Claudio Ortolina f1dd45e438 Show country flag for artist 2025-04-29 09:58:06 +01:00