mirror of
https://github.com/KRTirtho/spotube.git
synced 2025-09-13 16:05:18 +00:00
Merge branch 'master' into dev
This commit is contained in:
parent
ed63032a82
commit
75c0c4fff4
@ -82,8 +82,6 @@ jobs:
|
||||
name: Generate .env file
|
||||
command: |
|
||||
echo "SPOTIFY_SECRETS=${SPOTIFY_SECRETS}" >> .env
|
||||
echo "SUPABASE_URL=${SUPABASE_URL}" >> .env
|
||||
echo "SUPABASE_API_KEY=${SUPABASE_API_KEY}" >> .env
|
||||
|
||||
- run:
|
||||
name: Replace Version in files
|
||||
|
@ -1,6 +1,3 @@
|
||||
SUPABASE_URL=
|
||||
SUPABASE_API_KEY=
|
||||
|
||||
# The format:
|
||||
# SPOTIFY_SECRETS=clintId1:clientSecret1,clientId2:clientSecret2
|
||||
SPOTIFY_SECRETS=
|
||||
|
@ -108,7 +108,7 @@ This handy table lists all methods you can use to install Spotube:
|
||||
<a href="https://github.com/KRTirtho/spotube/releases/latest/download/Spotube-linux-x86_64.deb">
|
||||
<img width="220" alt="Debian/Ubuntu Download" src="https://user-images.githubusercontent.com/61944859/169097994-e92aff78-fd75-4c93-b6e4-f072a4b5a7ed.png">
|
||||
</a>
|
||||
<p>Then run: <code>sudo apt install Spotube-linux-x86_64.deb</code></p>
|
||||
<p>Then run: <code>sudo apt install ./Spotube-linux-x86_64.deb</code></p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -5,12 +5,6 @@ part 'env.g.dart';
|
||||
|
||||
@Envied(obfuscate: true, requireEnvFile: true, path: ".env")
|
||||
abstract class Env {
|
||||
@EnviedField(varName: 'SUPABASE_URL')
|
||||
static final String? supabaseUrl = _Env.supabaseUrl;
|
||||
|
||||
@EnviedField(varName: 'SUPABASE_API_KEY')
|
||||
static final String? supabaseAnonKey = _Env.supabaseAnonKey;
|
||||
|
||||
@EnviedField(varName: 'SPOTIFY_SECRETS')
|
||||
static final String rawSpotifySecrets = _Env.rawSpotifySecrets;
|
||||
|
||||
|
@ -14,7 +14,6 @@ import 'package:spotube/models/local_track.dart';
|
||||
import 'package:spotube/models/logger.dart';
|
||||
|
||||
import 'package:spotube/models/skip_segment.dart';
|
||||
import 'package:spotube/models/source_match.dart';
|
||||
|
||||
import 'package:spotube/provider/blacklist_provider.dart';
|
||||
import 'package:spotube/provider/palette_provider.dart';
|
||||
@ -28,7 +27,6 @@ import 'package:spotube/services/audio_services/audio_services.dart';
|
||||
import 'package:spotube/services/sourced_track/exceptions.dart';
|
||||
import 'package:spotube/services/sourced_track/models/source_info.dart';
|
||||
import 'package:spotube/services/sourced_track/sourced_track.dart';
|
||||
import 'package:spotube/services/supabase.dart';
|
||||
|
||||
import 'package:spotube/utils/persisted_state_notifier.dart';
|
||||
import 'package:spotube/utils/type_conversion_utils.dart';
|
||||
@ -134,21 +132,11 @@ class ProxyPlaylistNotifier extends PersistedStateNotifier<ProxyPlaylist>
|
||||
try {
|
||||
isPreSearching.value = true;
|
||||
|
||||
final oldTrack =
|
||||
mapSourcesToTracks([audioPlayer.nextSource!]).firstOrNull;
|
||||
|
||||
final track = await ensureSourcePlayable(audioPlayer.nextSource!);
|
||||
|
||||
if (track != null) {
|
||||
state = state.copyWith(tracks: mergeTracks([track], state.tracks));
|
||||
}
|
||||
|
||||
if (oldTrack != null && track != null) {
|
||||
await storeTrack(
|
||||
oldTrack,
|
||||
track,
|
||||
);
|
||||
}
|
||||
} catch (e, stackTrace) {
|
||||
// Removing tracks that were not found to avoid queue interruption
|
||||
// TODO: Add a flag to enable/disable skip not found tracks
|
||||
@ -350,10 +338,6 @@ class ProxyPlaylistNotifier extends PersistedStateNotifier<ProxyPlaylist>
|
||||
collections: {},
|
||||
);
|
||||
await notificationService.addTrack(addableTrack);
|
||||
await storeTrack(
|
||||
tracks.elementAt(initialIndex),
|
||||
addableTrack,
|
||||
);
|
||||
}
|
||||
|
||||
await audioPlayer.openPlaylist(
|
||||
@ -383,13 +367,6 @@ class ProxyPlaylistNotifier extends PersistedStateNotifier<ProxyPlaylist>
|
||||
if (oldTrack != null || track != null) {
|
||||
await notificationService.addTrack(track ?? oldTrack!);
|
||||
}
|
||||
|
||||
if (oldTrack != null && track != null) {
|
||||
await storeTrack(
|
||||
oldTrack,
|
||||
track,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> jumpToTrack(Track track) async {
|
||||
@ -492,12 +469,6 @@ class ProxyPlaylistNotifier extends PersistedStateNotifier<ProxyPlaylist>
|
||||
if (oldTrack != null || track != null) {
|
||||
await notificationService.addTrack(track ?? oldTrack!);
|
||||
}
|
||||
if (oldTrack != null && track != null) {
|
||||
await storeTrack(
|
||||
oldTrack,
|
||||
track,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> previous() async {
|
||||
@ -523,12 +494,6 @@ class ProxyPlaylistNotifier extends PersistedStateNotifier<ProxyPlaylist>
|
||||
if (oldTrack != null || track != null) {
|
||||
await notificationService.addTrack(track ?? oldTrack!);
|
||||
}
|
||||
if (oldTrack != null && track != null) {
|
||||
await storeTrack(
|
||||
oldTrack,
|
||||
track,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> stop() async {
|
||||
@ -625,30 +590,6 @@ class ProxyPlaylistNotifier extends PersistedStateNotifier<ProxyPlaylist>
|
||||
}
|
||||
}
|
||||
|
||||
/// This method must be called after any playback operation as
|
||||
/// it can increase the latency
|
||||
Future<void> storeTrack(Track track, SourcedTrack sourcedTrack) async {
|
||||
try {
|
||||
if (track is! SourcedTrack) {
|
||||
await supabase.insertTrack(
|
||||
SourceMatch(
|
||||
id: sourcedTrack.id!,
|
||||
createdAt: DateTime.now(),
|
||||
sourceId: sourcedTrack.sourceInfo.id,
|
||||
sourceType: preferences.audioSource == AudioSource.jiosaavn
|
||||
? SourceType.jiosaavn
|
||||
: preferences.searchMode == SearchMode.youtube
|
||||
? SourceType.youtube
|
||||
: SourceType.youtubeMusic,
|
||||
),
|
||||
);
|
||||
}
|
||||
} catch (e, stackTrace) {
|
||||
logger.e(e.toString());
|
||||
logger.t(stackTrace);
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
set state(state) {
|
||||
super.state = state;
|
||||
|
@ -1,18 +0,0 @@
|
||||
import 'package:spotube/collections/env.dart';
|
||||
import 'package:spotube/models/source_match.dart';
|
||||
import 'package:supabase/supabase.dart';
|
||||
|
||||
class SupabaseService {
|
||||
static final api = SupabaseClient(
|
||||
Env.supabaseUrl ?? "",
|
||||
Env.supabaseAnonKey ?? "",
|
||||
);
|
||||
|
||||
Future<void> insertTrack(SourceMatch track) async {
|
||||
return null;
|
||||
// TODO: Fix this
|
||||
await api.from("tracks").insert(track.toJson());
|
||||
}
|
||||
}
|
||||
|
||||
final supabase = SupabaseService();
|
106
pubspec.lock
106
pubspec.lock
@ -325,10 +325,10 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: collection
|
||||
sha256: f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687
|
||||
sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.17.2"
|
||||
version: "1.18.0"
|
||||
color:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -953,14 +953,6 @@ packages:
|
||||
description: flutter
|
||||
source: sdk
|
||||
version: "0.0.0"
|
||||
functions_client:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: functions_client
|
||||
sha256: "3b157b4d3ae9e38614fd80fab76d1ef1e0e39ff3412a45de2651f27cecb9d2d2"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.3.2"
|
||||
fuzzywuzzy:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
@ -1001,14 +993,6 @@ packages:
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "5.1.0"
|
||||
gotrue:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: gotrue
|
||||
sha256: af61c5c6a2374d9032b7e4b388de0bb0442f4bedc56372d5382c1ef61c85f1f3
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.12.1"
|
||||
graphs:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -1231,14 +1215,6 @@ packages:
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.4.2"
|
||||
jwt_decode:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: jwt_decode
|
||||
sha256: d2e9f68c052b2225130977429d30f187aa1981d789c76ad104a32243cfdebfbb
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.3.1"
|
||||
lints:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -1363,10 +1339,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: meta
|
||||
sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3"
|
||||
sha256: a6e590c838b18133bb482a2745ad77c5bb7715fb0451209e1a7567d416678b8e
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.9.1"
|
||||
version: "1.10.0"
|
||||
metadata_god:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
@ -1579,10 +1555,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: platform
|
||||
sha256: "4a451831508d7d6ca779f7ac6e212b4023dd5a7d08a27a63da33756410e32b76"
|
||||
sha256: ae68c7bfcd7383af3629daafb32fb4e8681c7154428da4febcff06200585f102
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.1.0"
|
||||
version: "3.1.2"
|
||||
plugin_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -1615,14 +1591,6 @@ packages:
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.2.8+2"
|
||||
postgrest:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: postgrest
|
||||
sha256: d6cc0f60c7dc761f84d1c6d11d9e02b3ad90399bd84639a28c1c024adbaa9bde
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.5.0"
|
||||
process:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -1687,22 +1655,6 @@ packages:
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.2.1"
|
||||
realtime_client:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: realtime_client
|
||||
sha256: b4b7bb293417dafc73943ed639209b2dcb796db8495e56bba29a4e26fadef5cd
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.2.1"
|
||||
retry:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: retry
|
||||
sha256: "822e118d5b3aafed083109c72d5f484c6dc66707885e07c0fbcb8b986bba7efc"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.1.2"
|
||||
riverpod:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -1937,10 +1889,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: stack_trace
|
||||
sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5
|
||||
sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.11.0"
|
||||
version: "1.11.1"
|
||||
state_notifier:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -1949,22 +1901,14 @@ packages:
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.7.2+1"
|
||||
storage_client:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: storage_client
|
||||
sha256: "4bf2fc76f09c3698f0ba3f1a44d567995796f6aef76501f194631d0c03752ab7"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.5.2"
|
||||
stream_channel:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: stream_channel
|
||||
sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8"
|
||||
sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.1.1"
|
||||
version: "2.1.2"
|
||||
stream_transform:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -1989,14 +1933,6 @@ packages:
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.0.2"
|
||||
supabase:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: supabase
|
||||
sha256: "4bfa8f673b39c036ed82829a2ddc462dcacfc36fe168b680664ab954c7d91ccd"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.11.3"
|
||||
sync_http:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -2049,10 +1985,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: test_api
|
||||
sha256: "75760ffd7786fffdfb9597c35c5b27eaeec82be8edfb6d71d32651128ed7aab8"
|
||||
sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.6.0"
|
||||
version: "0.6.1"
|
||||
time:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -2233,10 +2169,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: vm_service
|
||||
sha256: c620a6f783fa22436da68e42db7ebbf18b8c44b9a46ab911f666ff09ffd9153f
|
||||
sha256: c538be99af830f478718b51630ec1b6bee5e74e52c8a802d328d9e71d35d2583
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "11.7.1"
|
||||
version: "11.10.0"
|
||||
watcher:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -2249,10 +2185,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: web
|
||||
sha256: dc8ccd225a2005c1be616fe02951e2e342092edf968cf0844220383757ef8f10
|
||||
sha256: afe077240a270dcfd2aafe77602b4113645af95d0ad31128cc02bce5ac5d5152
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.1.4-beta"
|
||||
version: "0.3.0"
|
||||
web_socket_channel:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -2326,14 +2262,6 @@ packages:
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.1.2"
|
||||
yet_another_json_isolate:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: yet_another_json_isolate
|
||||
sha256: "86fad76026c4241a32831d6c7febd8f9bded5019e2cd36c5b148499808d8307d"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.1.1"
|
||||
youtube_explode_dart:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
@ -2343,5 +2271,5 @@ packages:
|
||||
source: hosted
|
||||
version: "2.0.2"
|
||||
sdks:
|
||||
dart: ">=3.1.0 <4.0.0"
|
||||
dart: ">=3.2.0-194.0.dev <4.0.0"
|
||||
flutter: ">=3.13.0"
|
||||
|
@ -89,7 +89,6 @@ dependencies:
|
||||
smtc_windows: ^0.1.1
|
||||
spotify: ^0.12.0
|
||||
stroke_text: ^0.0.2
|
||||
supabase: ^1.9.9
|
||||
system_theme: ^2.1.0
|
||||
titlebar_buttons: ^1.0.0
|
||||
url_launcher: ^6.1.7
|
||||
|
@ -9,6 +9,11 @@ include(${EPHEMERAL_DIR}/generated_config.cmake)
|
||||
# https://github.com/flutter/flutter/issues/57146.
|
||||
set(WRAPPER_ROOT "${EPHEMERAL_DIR}/cpp_client_wrapper")
|
||||
|
||||
# Set fallback configurations for older versions of the flutter tool.
|
||||
if (NOT DEFINED FLUTTER_TARGET_PLATFORM)
|
||||
set(FLUTTER_TARGET_PLATFORM "windows-x64")
|
||||
endif()
|
||||
|
||||
# === Flutter Library ===
|
||||
set(FLUTTER_LIBRARY "${EPHEMERAL_DIR}/flutter_windows.dll")
|
||||
|
||||
@ -91,7 +96,7 @@ add_custom_command(
|
||||
COMMAND ${CMAKE_COMMAND} -E env
|
||||
${FLUTTER_TOOL_ENVIRONMENT}
|
||||
"${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.bat"
|
||||
windows-x64 $<CONFIG>
|
||||
${FLUTTER_TARGET_PLATFORM} $<CONFIG>
|
||||
VERBATIM
|
||||
)
|
||||
add_custom_target(flutter_assemble DEPENDS
|
||||
|
Loading…
Reference in New Issue
Block a user