-
refactor activity db count grouping
-
use this sqlite statement to update existing activity dates to UTC
update track_events set date = datetime(date, 'utc')
- use UTC for activity events
- move date group by and counting outside of sqlite and use go instead
- fix month math and labels
- more chart fixes and colors
- fixes for year and month charts
- charts
- return errors for invalid activity events
- use listen rules in web player
- small activity updates
- increment artist/release counts by track count not one
- add totals and counts to track stats
- order top activity by date also
- adjust activity track limits
- return non-nil slices when resolving events
- added html view for activity
- more fixes to html
- call fix missing in music covers job
- fix top artists to use name not arid
- Support smallest or largest movie duplicate resolution
- Refactored activty to stats and history
- /api/activity/tracks/{today,yesterday,lastweek,year,etc.}
- /api/activity/tracks/.../stats
- fix activity recent tracks
- add counts in activity popular tracks
- store activity dates in local timezone
- check validitiy of activity events
- different track etag lookup
- fix indexing: mbz different "track" vs "tracks" in json responses
- return bad request with invalid search
- changed track matching to use musicbrainz to resolve questionable tracks
- fully ignore video media in music releases
- fixes multiple release handling with different media dates (Substance 1987)
- handle multi-artist searching earlier
- support artist aliases: Kanye West is now Ye
- disable lastfm artist search during sync
- fix to not include unresolved activity events in response
- updated activity pointer and error handling
- added smarter artist matching
- unpack names with
&
- search with mbz aliases
- search with recording to derive arid
- limit artists matches and err earlier
- unpack names with
- added smarter release matching
- use per media track numbers and position
- add index on releases.artist
- fixed first track bug recently introduced
- more pointer/error refactoring
- refactoring
- updates to pointer and error handling
- added playlist Length() & Empty()
- added RelatedArtists
- use related artists when there are no similar artists
- don't use track ARID since it's not populated for s3 buckets yet
- use better random seed for codes
- use new random w/ seed for shuffling
- added track-based radio
- /api/tracks/{id}/playlist
- added config for TrackRadioBreadth, TrackRadioDepth
- add playlists to web ui
- de-dup playlists
- add has playlists to index
- add track count to playlists
- fix nulls found in embedded tags
- fixed api_test
- fixed REID not found during assignment
- fixed serve listen option
- fixed spiff json track null after resolve
- fixed assigned track release dates
- fix takeout run video option
- perform takeout run syncs in the background
- added control requests via unix socket
- profiling
- config
- run jobs
- curl -s -N --unix-socket /tmp/takeout.sock http://takeout/config/mymedia
- curl -s -N --unix-socket /tmp/takeout.sock 'http://takeout/debug/pprof/goroutine?debug=2'
- added listenbrainz popular
- fixed takeout run user
- added user playlist API, with tests
- GET /api/playlists
- POST /api/playlists
- GET /api/playlists/{id}
- GET /api/playlists/{id}/playlist
- PATCH /api/playlists/{id}/playlist
- DELETE /api/playlists/{id}
- added view model Playlist and Playlists with ID and Name
- added playlist ref /music/playlists/1
- removed older /api/login API, apps used /api/token or /api/code
- added "takeout user --user=defsub --link=code"
- improved search for artists, releases and stations
- support for local file music metadata instead of naming conventions
- added TOTP support, optional but recommended
- added "takeout user --user=defsub --generate_totp"
- added /api/link for app-based code linking
- fixed embeds
- expanded "takeout run" options
- added "takeout user --user userid --expire" to expire all sessions
- fix template station ref
- code cleanup
- fix disambiguation and release countries
- improved $ support in configs
- added "takeout run"
- use Go 1.22 routing enhancements (and remove pat)
- breaking API changes:
- changed /api/radio/stations/{id} to /api/stations/{id}
- changed /api/movies/genres/{name} to /api/movie-genres/{name}
- changed /api/movies/keywords/{name} to /api/movie-keywords/{name}
- updated to go 1.22.2
- support local filesystem buckets
- breaking config change buckets, s3 and fs have own configs now
- added server config include & exclude dirs
- support config include directive
- removed SomaFM streams from default config
- removed recommended from defeault config
- Added unit tests, currently 23.9% coverage
- updated to go 1.22.0, updated all module dependencies
- fix for spaces in station name ref
- add description to station model
- support best match (&m=1) in search refs
- support radio stations in search refs
- playout: support track activity; config enableTrackActivity=true (default false)
- playout: added config enableListenBrainz=true (default false)
- fix client with sync.Map for concurrent writes
- fix playout radio stream selection
- support multiple radio stream formats and enable client to choose
- updated video recommendation keywords
- support podcast episode images
- include all SomaFM streams in default config with multiple stream types
- updated to go 1.21.6, updated all module dependencies
- fix redirects
- order podcast subscriptions by date desc
- added redirects for /login, /login.html, /link, /link.html
- added podcasts subscriptions