mirror of
https://github.com/austinried/subtracks.git
synced 2026-02-10 06:52:43 +01:00
remove thumbnail cache
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import { CacheFile, CacheImageSize, CacheItemType, CacheItemTypeKey, CacheRequest } from '@app/models/cache'
|
||||
import { CacheFile, CacheItemType, CacheItemTypeKey, CacheRequest } from '@app/models/cache'
|
||||
import { mkdir, rmdir } from '@app/util/fs'
|
||||
import PromiseQueue from '@app/util/PromiseQueue'
|
||||
import produce from 'immer'
|
||||
@@ -8,9 +8,7 @@ import { Store } from './store'
|
||||
|
||||
const queues: Record<CacheItemTypeKey, PromiseQueue> = {
|
||||
coverArt: new PromiseQueue(5),
|
||||
coverArtThumb: new PromiseQueue(50),
|
||||
artistArt: new PromiseQueue(5),
|
||||
artistArtThumb: new PromiseQueue(50),
|
||||
song: new PromiseQueue(1),
|
||||
}
|
||||
|
||||
@@ -32,7 +30,7 @@ export type CacheSlice = {
|
||||
cacheFiles: CacheFilesByServer
|
||||
cacheRequests: CacheRequestsByServer
|
||||
|
||||
fetchCoverArtFilePath: (coverArt: string, size?: CacheImageSize) => Promise<string | undefined>
|
||||
fetchCoverArtFilePath: (coverArt: string) => Promise<string | undefined>
|
||||
|
||||
createCache: (serverId: string) => Promise<void>
|
||||
prepareCache: (serverId: string) => void
|
||||
@@ -136,7 +134,7 @@ export const createCacheSlice = (set: SetState<Store>, get: GetState<Store>): Ca
|
||||
return await promise
|
||||
},
|
||||
|
||||
fetchCoverArtFilePath: async (coverArt, size = 'thumbnail') => {
|
||||
fetchCoverArtFilePath: async coverArt => {
|
||||
const client = get().client
|
||||
if (!client) {
|
||||
return
|
||||
@@ -147,7 +145,7 @@ export const createCacheSlice = (set: SetState<Store>, get: GetState<Store>): Ca
|
||||
return
|
||||
}
|
||||
|
||||
const key: CacheItemTypeKey = size === 'thumbnail' ? 'coverArtThumb' : 'coverArt'
|
||||
const key: CacheItemTypeKey = 'coverArt'
|
||||
|
||||
const existing = get().cacheFiles[activeServerId][key][coverArt]
|
||||
const inProgress = get().cacheRequests[activeServerId][key][coverArt]
|
||||
@@ -158,12 +156,7 @@ export const createCacheSlice = (set: SetState<Store>, get: GetState<Store>): Ca
|
||||
return `file://${existing.path}`
|
||||
}
|
||||
|
||||
await get().cacheItem(key, coverArt, () =>
|
||||
client.getCoverArtUri({
|
||||
id: coverArt,
|
||||
size: size === 'thumbnail' ? '256' : undefined,
|
||||
}),
|
||||
)
|
||||
await get().cacheItem(key, coverArt, () => client.getCoverArtUri({ id: coverArt }))
|
||||
|
||||
return `file://${get().cacheFiles[activeServerId][key][coverArt].path}`
|
||||
},
|
||||
@@ -178,9 +171,7 @@ export const createCacheSlice = (set: SetState<Store>, get: GetState<Store>): Ca
|
||||
state.cacheFiles[serverId] = {
|
||||
song: {},
|
||||
coverArt: {},
|
||||
coverArtThumb: {},
|
||||
artistArt: {},
|
||||
artistArtThumb: {},
|
||||
}
|
||||
}),
|
||||
)
|
||||
@@ -195,18 +186,14 @@ export const createCacheSlice = (set: SetState<Store>, get: GetState<Store>): Ca
|
||||
state.cacheDirs[serverId] = {
|
||||
song: `${RNFS.DocumentDirectoryPath}/servers/${serverId}/song`,
|
||||
coverArt: `${RNFS.DocumentDirectoryPath}/servers/${serverId}/coverArt`,
|
||||
coverArtThumb: `${RNFS.DocumentDirectoryPath}/servers/${serverId}/coverArtThumb`,
|
||||
artistArt: `${RNFS.DocumentDirectoryPath}/servers/${serverId}/artistArt`,
|
||||
artistArtThumb: `${RNFS.DocumentDirectoryPath}/servers/${serverId}/artistArtThumb`,
|
||||
}
|
||||
}
|
||||
if (!state.cacheRequests[serverId]) {
|
||||
state.cacheRequests[serverId] = {
|
||||
song: {},
|
||||
coverArt: {},
|
||||
coverArtThumb: {},
|
||||
artistArt: {},
|
||||
artistArtThumb: {},
|
||||
}
|
||||
}
|
||||
}),
|
||||
@@ -273,9 +260,7 @@ export const createCacheSlice = (set: SetState<Store>, get: GetState<Store>): Ca
|
||||
set(
|
||||
produce<CacheSlice>(state => {
|
||||
state.cacheFiles[serverId].coverArt = {}
|
||||
state.cacheFiles[serverId].coverArtThumb = {}
|
||||
state.cacheFiles[serverId].artistArt = {}
|
||||
state.cacheFiles[serverId].artistArtThumb = {}
|
||||
}),
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user