@@ -85,8 +85,23 @@ pub(crate) async fn play(ctx: Context<'_>, query: String) -> Result<(), anyhow::
85
85
}
86
86
} ) ;
87
87
88
+ #[ cfg( feature = "spotify" ) ]
89
+ let spotify_tracks: Option < SmallVec < [ ( track_info:: Metadata , Input ) ; 1 ] > > = ctx
90
+ . data ( )
91
+ . spotify_resolver
92
+ . resolve ( guild_id, & query)
93
+ . await
94
+ . map ( |tracks| {
95
+ tracks
96
+ . into_iter ( )
97
+ . map ( |track| ( track. metadata ( ) . clone ( ) , track. into ( ) ) )
98
+ . collect ( )
99
+ } ) ;
100
+ #[ cfg( not( feature = "spotify" ) ) ]
101
+ let spotify_tracks: Option < SmallVec < [ ( track_info:: Metadata , Input ) ; 1 ] > > = None ;
102
+
88
103
let resolved_items: SmallVec < [ ( track_info:: Metadata , Input ) ; 1 ] > =
89
- if let Some ( tracks) = ctx . data ( ) . spotify_resolver . resolve ( guild_id , & query ) . await {
104
+ if let Some ( tracks) = spotify_tracks {
90
105
if tracks. is_empty ( ) {
91
106
ctx. reply ( format ! (
92
107
"Invalid Spotify query '{query}'. Please try something else"
@@ -95,9 +110,6 @@ pub(crate) async fn play(ctx: Context<'_>, query: String) -> Result<(), anyhow::
95
110
return Ok ( ( ) ) ;
96
111
}
97
112
tracks
98
- . into_iter ( )
99
- . map ( |track| ( track. metadata ( ) . clone ( ) , track. into ( ) ) )
100
- . collect ( )
101
113
} else if let Some ( podcast) = ctx. data ( ) . radio_t_resolver . resolve ( & query) . await {
102
114
smallvec ! [ ( podcast. metadata( ) . clone( ) , podcast. into( ) ) ]
103
115
} else if let Some ( yt_dlp) = ctx. data ( ) . yt_dlp_resolver . resolve ( & query) . await {
@@ -192,6 +204,7 @@ pub(crate) async fn stop(ctx: Context<'_>) -> Result<(), anyhow::Error> {
192
204
/// Connect Spotify account to be used by bot.
193
205
/// https://www.spotify.com/us/account/set-device-password/
194
206
#[ poise:: command( guild_only, slash_command) ]
207
+ #[ cfg( feature = "spotify" ) ]
195
208
pub ( crate ) async fn connect_spotify (
196
209
ctx : Context < ' _ > ,
197
210
username : String ,
0 commit comments