1*0412c91bS猫头猫import {isSameMediaItem} from '@/utils/mediaItem'; 2*0412c91bS猫头猫import {GlobalState} from '@/utils/stateMapper'; 3*0412c91bS猫头猫import {setStorage} from '@/utils/storage'; 4*0412c91bS猫头猫import Config from './config'; 5*0412c91bS猫头猫import {musicHistorySheetId} from '@/constants/commonConst'; 6*0412c91bS猫头猫 7*0412c91bS猫头猫const musicHistory = new GlobalState<IMusic.IMusicItem[]>([]); 8*0412c91bS猫头猫 9*0412c91bS猫头猫async function addMusic(musicItem: IMusic.IMusicItem) { 10*0412c91bS猫头猫 const newMusicHistory = [ 11*0412c91bS猫头猫 musicItem, 12*0412c91bS猫头猫 ...musicHistory 13*0412c91bS猫头猫 .getValue() 14*0412c91bS猫头猫 .filter(item => !isSameMediaItem(item, musicItem)), 15*0412c91bS猫头猫 ].slice(0, Config.get('setting.basic.maxHistoryLen') ?? 50); 16*0412c91bS猫头猫 await setStorage(musicHistorySheetId, newMusicHistory); 17*0412c91bS猫头猫 musicHistory.setValue(newMusicHistory); 18*0412c91bS猫头猫} 19*0412c91bS猫头猫 20*0412c91bS猫头猫async function removeMusic(musicItem: IMusic.IMusicItem) { 21*0412c91bS猫头猫 const newMusicHistory = musicHistory 22*0412c91bS猫头猫 .getValue() 23*0412c91bS猫头猫 .filter(item => !isSameMediaItem(item, musicItem)); 24*0412c91bS猫头猫 await setStorage(musicHistorySheetId, newMusicHistory); 25*0412c91bS猫头猫 musicHistory.setValue(newMusicHistory); 26*0412c91bS猫头猫} 27*0412c91bS猫头猫 28*0412c91bS猫头猫async function clearMusic() { 29*0412c91bS猫头猫 await setStorage(musicHistorySheetId, []); 30*0412c91bS猫头猫 musicHistory.setValue([]); 31*0412c91bS猫头猫} 32*0412c91bS猫头猫 33*0412c91bS猫头猫export default { 34*0412c91bS猫头猫 addMusic, 35*0412c91bS猫头猫 removeMusic, 36*0412c91bS猫头猫 clearMusic, 37*0412c91bS猫头猫 useMusicHistory: musicHistory.useValue, 38*0412c91bS猫头猫}; 39