Commit Graph

293 Commits

Author SHA1 Message Date
Kingkor Roy Tirtho
7927a3e404 chore: fix top album and track invalid time frame operations 2024-07-01 13:25:28 +06:00
Kingkor Roy Tirtho
3bdc46da4d feat(stats): add lazy loading support 2024-06-30 21:08:29 +06:00
Kingkor Roy Tirtho
4c5564fd2f chore: use enum properties for history duration in top stats 2024-06-30 18:31:57 +06:00
Kingkor Roy Tirtho
261e1b6685 chore: fix queue collections not being loaded 2024-06-30 18:00:50 +06:00
Kingkor Roy Tirtho
ffb3a3377f chore: add migration script to migrate hive to drift 2024-06-30 15:44:24 +06:00
Kingkor Roy Tirtho
1cfd377c29 refactor: synced lyric cache to use drift db 2024-06-30 11:01:40 +06:00
Kingkor Roy Tirtho
08ac29c979 refactor(stats): migrate stats to use drift db 2024-06-29 17:05:06 +06:00
Kingkor Roy Tirtho
44418868ad chore: fix volume not being set after launch 2024-06-25 20:38:40 +06:00
Kingkor Roy Tirtho
6c5cab9899 chore: fix use SpotubeMedia to avoid duplicate sourceTrackProvider instances 2024-06-25 20:36:23 +06:00
Kingkor Roy Tirtho
1b420e661b chore: player skipping all tracks from cache 2024-06-24 22:26:44 +06:00
Kingkor Roy Tirtho
a621a45f0b chore: fix alternative track sources not showing up 2024-06-24 21:43:09 +06:00
Kingkor Roy Tirtho
75173e5096 refactor: use provider based is track loading implementation 2024-06-24 21:01:09 +06:00
Kingkor Roy Tirtho
a83dd64476 refactor: replace all instances of proxy playlist 2024-06-24 20:52:40 +06:00
Kingkor Roy Tirtho
f79fedefd4 chore: create new audio player centric playback notifier with drift persistence 2024-06-23 12:23:28 +06:00
Kingkor Roy Tirtho
59041a2948 chore: use .value for scrobble encrypted text 2024-06-20 23:30:41 +06:00
Kingkor Roy Tirtho
5936f08a92 refactor(volumeProvider): use notifier and kvstore for persistence 2024-06-17 18:13:41 +06:00
Kingkor Roy Tirtho
b9b7d5c8aa refactor: lastfm scrobbling to drift db 2024-06-17 18:08:57 +06:00
Kingkor Roy Tirtho
d18f74fd65 refactor: use drift db based authentication 2024-06-16 22:33:23 +06:00
Kingkor Roy Tirtho
bf6cec8d69 refactor(blacklist): use drift sql db instead of hive 2024-06-14 22:23:12 +06:00
Kingkor Roy Tirtho
52d4f60ccc refactor: use drift for skip segments and source matches 2024-06-14 21:24:42 +06:00
Kingkor Roy Tirtho
3fb003ea60 refactor(preferences): use Drift sql db for preferences 2024-06-14 00:29:09 +06:00
Kingkor Roy Tirtho
064d92d35d refactor: merge connect and playback server into one server 2024-06-12 20:46:49 +06:00
Kingkor Roy Tirtho
f9087b63d5 refactor: remove catcher_2 and use custom zoned based error handling 2024-06-09 22:52:34 +06:00
Kingkor Roy Tirtho
4af23241c8 refactor: move shared components to 1 level up 2024-06-07 22:40:44 +06:00
Kingkor Roy Tirtho
1cfeef54e7 refactor: move route related components to modules folder 2024-06-07 22:19:45 +06:00
Kingkor Roy Tirtho
e034455173 chore: fix home feed not showing up 2024-06-01 12:47:36 +06:00
Kingkor Roy Tirtho
b2d9e64758 refactor: use replace http with dio and use it as the default 2024-06-01 12:31:20 +06:00
Kingkor Roy Tirtho
d2683c52d8 fix: some text are garbled in different parts of the app #1463 #1505 2024-06-01 11:43:21 +06:00
Kingkor Roy Tirtho
82307bc030
feat: personalized stats based on local music history (#1522)
* feat: add playback history provider

* feat: implement recently played section

* refactor: use route names

* feat: add stats summary and top tracks/artists/albums

* feat: add top date based filtering

* feat: add stream money calculation

* refactor: place search in mobile navbar and settings in home appbar

* feat: add individual minutes and streams page

* feat(stats): add individual minutes and streams page

* chore: default period to 1 month

* feat: add text to explain user how hypothetical fees are calculated

* chore: ensure usage of route names instead of direct paths

* cd: add cache key

* cd: remove media_kit_event_loop from git
2024-06-01 11:40:01 +06:00
Kingkor Roy Tirtho
fc5bfa089c feat: local library folder cards 2024-05-23 21:27:09 +06:00
Kingkor Roy Tirtho
d82261cb25 fix: local track not showing up in queue 2024-05-23 16:56:52 +06:00
Blake Leonard
22caa818f4
feat: Local music library (#1479)
* feat: add one additional library folder

This folder just doesn't get downloaded to.
I think I'm going to rework it so that it can be multiple folders,
but I'm going to commit my progress so far anyway.

Signed-off-by: Blake Leonard <me@blakes.dev>

* chore: update dependencies so that it builds

I'm not sure if this breaks CI or something, but I couldn't build
it locally to test my changes, so I made these changes and it
builds again.

Signed-off-by: Blake Leonard <me@blakes.dev>

* feat: index multiple folders of local music

If you used a previous commit from this branch, this is a breaking
change, because it changes the type of a configuration field. but
since this is still in development, it should be fine.

Signed-off-by: Blake Leonard <me@blakes.dev>

* refactor: manage local library in local tracks tab

This also refactors the list to use slivers instead. That's the
easiest way to have multiple scrolling lists here...

The console keeps getting spammed with some intermediate layout
error but I can't hold it long enough to figure out what's causing
it.

Signed-off-by: Blake Leonard <me@blakes.dev>

* refactor: use folder add/remove icons in library

Signed-off-by: Blake Leonard <me@blakes.dev>

* refactor: remove redundant settings page

Signed-off-by: Blake Leonard <me@blakes.dev>

* refactor: rename "Local Tracks" to just "Local"

Not sure if this would be the recommended way to do it...

Signed-off-by: Blake Leonard <me@blakes.dev>

* fix: console spam about useless Expanded

Signed-off-by: Blake Leonard <me@blakes.dev>

* chore: remove completed TODO

Signed-off-by: Blake Leonard <me@blakes.dev>

* chore: use new Platform constants; regenerate plugins

Signed-off-by: Blake Leonard <me@blakes.dev>

* refactor: put local libraries on separate pages

Signed-off-by: Blake Leonard <me@blakes.dev>

---------

Signed-off-by: Blake Leonard <me@blakes.dev>
2024-05-23 15:18:01 +06:00
Kingkor Roy Tirtho
9aea35468f fix: fallback to LRCLIB when lyrics line less than 6 lines #1461 2024-05-23 15:13:02 +06:00
Kingkor Roy Tirtho
937a706ac9
fix: windows SSL Certificate error breaking login #905 (#1474)
* fix: certificate error by using custom ssl certificate

* Cd/docker linux ar (#1468)

* cd: use docker buildx

* cd: use linux host for linux arm instead of macos m1

m1 doesn't support nested virtualization. (Apple truly sucks)

* cd: don't specify arch in Dockerfile

* cd: use custom Dockerfile from ubuntu instead of flutter image

* cd: add setup java for android

* cd: add flutter distributor pre-built docker image for arm

* cd: save me from this cursed arm build

* cd: ??

* cd: ??

* cd: use docker build

* fix: windows SSL Exception for Signing in

* refactor: extract update checker as a basic function instead of a hook
2024-05-04 20:10:19 +06:00
Kingkor Roy Tirtho
7ac791757a fix(linux): tray icon not showing #541
upgrade old packages
2024-04-17 22:20:30 +06:00
Kingkor Roy Tirtho
9e25c742d4
feat: add Spotify homepage personalized recommendations (#1402)
* feat: add spotify homepage recommendations

* chore: bring back made for user sectin
2024-04-14 12:10:34 +06:00
Kingkor Roy Tirtho
9791e3fb5f chore: give a boost to first track of playlist 2024-04-14 12:02:12 +06:00
Kingkor Roy Tirtho
57ccf16311 refactor: rename providers 2024-04-12 11:06:03 +06:00
Kingkor Roy Tirtho
22a49e56a2
refactor: use tcp server based track matcher (#1386)
* refactor: remove SourcedTrack based audio player and utilize mediakit playback system

* feat: implement local (loopback) server to resolve stream source and leverage the media_kit playback API

* feat: add source change support and re-add prefetching tracks

* fix: assign lastId when track fetch completes regardless of error

* chore: remove print statements

* fix: remote queue not working

* fix: increase mpv network timeout to reduce auto-skipping

* fix: do not pre-fetch local tracks

* fix(proxy-playlist): reset collections on load

* chore: fix lint warnings

* fix(mobile): player overlay should not be visible when the player is not playing

* chore: fix typo in turkish translation

* cd: checkout PR branch

* cd: upgrade flutter version

* chore: fix lint errors
2024-04-11 17:56:41 +06:00
Kingkor Roy Tirtho
0d080b77b7 fix(playback): sponsor block skips and stutters in same position 2024-04-07 13:05:54 +06:00
Kingkor Roy Tirtho
5afe823abd feat(lyrics): add LRCLIB lyrics provider as fallback 2024-04-05 00:48:08 +06:00
Kingkor Roy Tirtho
c8dd8025ec fix: instance of Artist bug #1362 2024-04-04 22:33:01 +06:00
Kingkor Roy Tirtho
68374efd3e
feat: LAN connect a.k.a control remote Spotube playback and local output device selection (#1355)
* feat: add connect server support

* feat: add ability discover and connect to same network Spotube(s) and sync queue

* feat(connect): add player controls, shuffle, loop, progress bar and queue support

* feat: make control page adaptive

* feat: add volume control support

* cd: upgrade macos runner version

* chore: upgrade inappwebview version to 6

* feat: customized devices button

* feat: add user icon next to devices button

* feat: add play in remote device support

* feat: show alert when new client connects

* fix: ignore the device itself from broadcast list

* fix: volume control not working

* feat: add ability to select current device's output speaker
2024-04-04 22:22:00 +06:00
Kingkor Roy Tirtho
9f96b5c537 refactor: use extension methods for simple album to album and simple track to track conversion 2024-03-21 00:48:21 +06:00
Kingkor Roy Tirtho
1cea95bbda refactor: artist name string as extension 2024-03-21 00:30:27 +06:00
Kingkor Roy Tirtho
7545ff6415 refactor: use extension method for image to url string 2024-03-21 00:18:43 +06:00
Kingkor Roy Tirtho
6673e5a8a8
feat: improved caching based on riverpod (#1343)
* feat: add riverpod based favorite album provider

* feat: add album is saved, new releases and tracks providers

* feat: add artist related providers

* feat: add all categories providers

* feat: add lyrics provider

* feat: add playlist related providers

* feat: add search provider

* feat: add view and spotify friends provider

* feat: add playlist create and update and favorite handlers

* feat: use providers in home screen

* chore: fix dart lint issues

* feat: use new providers for playlist and albums screen

* feat: use providers in artist page

* feat: use providers on library page

* feat: use provider for playlist and album card and heart button

* feat: use provider in search page

* feat: use providers in generate playlist

* feat: use provider in lyrics screen

* feat: use provider for create playlist

* feat: use provider in add track dialog

* feat: use providers in remaining pages and remove fl_query

* fix: remove direct access to provider.value

* fix: glitching when loading

* fix: user album loading next page indicator

* feat: make many provider autoDispose after 5 minutes of no usage

* fix: ignore episodes in tracks
2024-03-20 23:38:39 +06:00
Kingkor Roy Tirtho
90f7c531cd fix: non-banger songs breaking the queue if sources not found
Now fallbacks to another audio source if not found in one
2024-02-17 21:33:09 +06:00
Kingkor Roy Tirtho
9dfd49ca04 feat: add endless playback support #285 2024-01-31 18:00:54 +06:00
Kingkor Roy Tirtho
8184555ee8 feat: improve youtube/piped matching by suffixing "- Topic" 2024-01-27 21:48:38 +06:00