Commit graph

14 commits

Author SHA1 Message Date
38cf2ff549
chore(deps): bump all (#294) 2023-09-16 13:02:19 +02:00
8721fd101d
feat: use bulk Spotify API calls & inserts to make spotify crawling more efficient (#271)
* feat(spotify-api): bulk endpoints
* feat(music-library): allow bulk operations
* feat(spotify): bulk track+album+artist+genre import
* feat(spotify): use bulk import api for user crawl
* feat(spotify): bulk listen insert

For the benchmark case of a new user where Listory imports 50 new listens along with all now tracks, artists, albums & genres we significantly reduced the number of things happening:

    Spotify API Requests: 208 => 8
    DB Insert: 96 => 8
    Tracing Spans: 1953 => 66
2023-05-07 02:20:43 +02:00
99cc06bbbc chore(deps): upgrade to NestJS 9
chore(deps): update dependency nestjs-otel to v4
chore(deps): update opentelemetry-js monorepo
2022-09-27 18:14:49 +02:00
41dfae3c50 feat(api): metrics for Spotify API http requests
This will help evaluate how much we are being rate limited, and on what
routes it happens most.
2022-06-29 21:30:09 +02:00
85c31705ef refactor(api): replace deprecated toPromise calls
Details: https://rxjs.dev/deprecations/to-promise
2022-06-29 21:30:09 +02:00
a0c28e2324 feat: top genres report 2021-11-21 15:53:49 +01:00
Renovate Bot
a3c6da2749 chore(deps): update nest monorepo 2021-08-12 17:08:23 +02:00
e476243b85 test: create initial unit tests 2021-07-18 21:57:38 +02:00
9b96d0fab4 chore(lint): switch to eslint 2021-05-25 18:12:42 +02:00
5ca3437b59 fix(api): missed listens from spotify
Listory could miss some listens when the Spotify Api misbehaves.

Sometimes the listens added to the last-recently-played endpoint
are showing up are out-of-order.

Because of our optimization to only retrieve listens newer than
the lastRefreshTime we would skip retrieving those out-of-order listens.

By always retrieving the maximum 50 listens we can be reasonably
sure that we got all the listens.

We also had to improve the handling of duplicate listens, as we now
have a lot of them, curtesy of removing the lastRefreshTime
optimization.
2020-11-28 17:55:19 +01:00
f56218602e fix: remove debug logging 2020-07-11 19:48:18 +02:00
e78c6e312d feat(api): validate configuration 2020-05-03 21:10:31 +02:00
d881a78757 chore(api): update dependencies 2020-05-03 21:10:31 +02:00
f2065d3f1f feat(api): fetch listens from spotify 2020-05-03 21:10:31 +02:00