mirror of
https://github.com/janishutz/MusicPlayer.git
synced 2026-09-10 14:25:24 +02:00
feat: prepare adding songs
This commit is contained in:
@@ -3,6 +3,9 @@ import type {
|
||||
PlayerSourcePlugin,
|
||||
PlayerSourcePluginInitializer
|
||||
} from '../interface';
|
||||
import {
|
||||
addFromAppleMusic
|
||||
} from './search';
|
||||
import {
|
||||
musicKitPlayback
|
||||
} from './playback';
|
||||
@@ -49,7 +52,10 @@ export const useMusicKit: PlayerSourcePluginInitializer = ( storefront: string =
|
||||
'seekTo': controls.seekTo,
|
||||
'login': login,
|
||||
// TODO: Implement
|
||||
'addSongsFromThisSource': async () => []
|
||||
'addSongsFromThisSource': async () => await addFromAppleMusic(),
|
||||
'loading': {
|
||||
'requiresLocalFiles': false
|
||||
}
|
||||
};
|
||||
} else {
|
||||
throw new Error( 'ERR_AUTH' );
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
import type {
|
||||
MusicKitInstance
|
||||
} from 'musickitjs-v3-types/MusicKitInstance';
|
||||
|
||||
export const searchAlbums = async ( instance: MusicKitInstance, term: string ) => {
|
||||
const addSelected = ( idx: number ) => {
|
||||
// TODO: Load album's songs and return them
|
||||
Promise.resolve();
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,10 @@
|
||||
import type {
|
||||
MusicKitInstance
|
||||
} from 'musickitjs-v3-types/MusicKitInstance';
|
||||
import type {
|
||||
Song
|
||||
} from '@/ts/dtype/playlist';
|
||||
|
||||
export const addFromAppleMusic = async ( instance: MusicKitInstance ): Promise<Song[]> => {
|
||||
return [];
|
||||
};
|
||||
@@ -0,0 +1,10 @@
|
||||
import type {
|
||||
MusicKitInstance
|
||||
} from 'musickitjs-v3-types/MusicKitInstance';
|
||||
|
||||
export const searchPlaylists = async ( instance: MusicKitInstance, userPlaylists: boolean = true ) => {
|
||||
const addSelected = ( idx: number ) => {
|
||||
// TODO: Load the playlist content and return songs
|
||||
Promise.resolve();
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,20 @@
|
||||
import type {
|
||||
MusicKitInstance
|
||||
} from 'musickitjs-v3-types/MusicKitInstance';
|
||||
|
||||
export const seachSongs = async ( instance: MusicKitInstance ) => {
|
||||
const search = async ( term: string ) => {
|
||||
const params = {
|
||||
'term': term,
|
||||
'types': [ 'songs' ],
|
||||
'l': 'en-us'
|
||||
};
|
||||
|
||||
await instance.api.music( '/v1/catalog/{{storefrontId}}/search', params );
|
||||
};
|
||||
|
||||
const addSelected = ( idx: number ) => {
|
||||
// TODO: Need to only return the selected song
|
||||
Promise.resolve();
|
||||
};
|
||||
};
|
||||
Reference in New Issue
Block a user