143eb30bfS猫头猫import getOrCreateMMKV from '@/utils/getOrCreateMMKV'; 243eb30bfS猫头猫import safeParse from '@/utils/safeParse'; 343eb30bfS猫头猫 443eb30bfS猫头猫// Internal Method 543eb30bfS猫头猫const getPluginStore = (pluginName: string) => { 6*b85f12f7S猫头猫 return getOrCreateMMKV(`MediaExtra.${pluginName}`); 743eb30bfS猫头猫}; 843eb30bfS猫头猫 943eb30bfS猫头猫/** 获取meta信息 */ 1043eb30bfS猫头猫const get = (mediaItem: ICommon.IMediaBase) => { 1143eb30bfS猫头猫 if (mediaItem.platform && mediaItem.id) { 1243eb30bfS猫头猫 const meta = getPluginStore(mediaItem.platform).getString( 1343eb30bfS猫头猫 `${mediaItem.id}`, 1443eb30bfS猫头猫 ); 1543eb30bfS猫头猫 if (!meta) { 1643eb30bfS猫头猫 return null; 1743eb30bfS猫头猫 } 1843eb30bfS猫头猫 1943eb30bfS猫头猫 return safeParse<ICommon.IMediaMeta>(meta); 2043eb30bfS猫头猫 } 2143eb30bfS猫头猫 2243eb30bfS猫头猫 return null; 2343eb30bfS猫头猫}; 2443eb30bfS猫头猫 2543eb30bfS猫头猫/** 设置meta信息 */ 2643eb30bfS猫头猫const set = (mediaItem: ICommon.IMediaBase, meta: ICommon.IMediaMeta) => { 2743eb30bfS猫头猫 if (mediaItem.platform && mediaItem.id) { 2843eb30bfS猫头猫 const store = getPluginStore(mediaItem.platform); 2943eb30bfS猫头猫 store.set(mediaItem.id, JSON.stringify(meta)); 3043eb30bfS猫头猫 return true; 3143eb30bfS猫头猫 } 3243eb30bfS猫头猫 3343eb30bfS猫头猫 return false; 3443eb30bfS猫头猫}; 3543eb30bfS猫头猫 3643eb30bfS猫头猫/** 更新meta信息 */ 3743eb30bfS猫头猫const update = ( 3843eb30bfS猫头猫 mediaItem: ICommon.IMediaBase, 3943eb30bfS猫头猫 meta: Partial<ICommon.IMediaMeta>, 4043eb30bfS猫头猫) => { 4143eb30bfS猫头猫 if (mediaItem.platform && mediaItem.id) { 4243eb30bfS猫头猫 const store = getPluginStore(mediaItem.platform); 4343eb30bfS猫头猫 const originalMeta = get(mediaItem); 4443eb30bfS猫头猫 4543eb30bfS猫头猫 store.set( 4643eb30bfS猫头猫 `${mediaItem.id}`, 4743eb30bfS猫头猫 JSON.stringify({ 4843eb30bfS猫头猫 ...(originalMeta || {}), 4943eb30bfS猫头猫 ...meta, 5043eb30bfS猫头猫 }), 5143eb30bfS猫头猫 ); 5243eb30bfS猫头猫 return true; 5343eb30bfS猫头猫 } 5443eb30bfS猫头猫 5543eb30bfS猫头猫 return false; 5643eb30bfS猫头猫}; 5743eb30bfS猫头猫 5843eb30bfS猫头猫/** 删除meta信息 */ 5943eb30bfS猫头猫const remove = (mediaItem: ICommon.IMediaBase) => { 6043eb30bfS猫头猫 if (mediaItem.platform && mediaItem.id) { 6143eb30bfS猫头猫 const store = getPluginStore(mediaItem.platform); 6243eb30bfS猫头猫 store.delete(`${mediaItem.id}`); 6343eb30bfS猫头猫 return true; 6443eb30bfS猫头猫 } 6543eb30bfS猫头猫 6643eb30bfS猫头猫 return false; 6743eb30bfS猫头猫}; 6843eb30bfS猫头猫 6943eb30bfS猫头猫const removeAll = (pluginName: string) => { 7043eb30bfS猫头猫 const store = getPluginStore(pluginName); 7143eb30bfS猫头猫 store.clearAll(); 7243eb30bfS猫头猫}; 7343eb30bfS猫头猫 7443eb30bfS猫头猫const MediaExtra = { 7543eb30bfS猫头猫 get: get, 7643eb30bfS猫头猫 set: set, 7743eb30bfS猫头猫 update: update, 7843eb30bfS猫头猫 remove: remove, 7943eb30bfS猫头猫 removeAll: removeAll, 8043eb30bfS猫头猫}; 8143eb30bfS猫头猫 8243eb30bfS猫头猫export default MediaExtra; 83