/
githubmirror
/
photoprism
Обзор
Документация
Войти
/
githubmirror
/
photoprism
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
internal/entity/album_cache.go
44 строки
1018 B
Michael Mayer
Docs: Improve code comments in internal/entity/album*.go
02 окт 2025, 16:59
02 окт 2025, 16:59
7a5b623
Код
Авторство
О чём код?
package entity import ( "fmt" "time" gc "github.com/patrickmn/go-cache" "github.com/photoprism/photoprism/pkg/clean" "github.com/photoprism/photoprism/pkg/rnd" ) var albumCache = gc.New(15*time.Minute, 15*time.Minute) // FlushAlbumCache clears any cached album entries. func FlushAlbumCache() { albumCache.Flush() } // CachedAlbumByUID returns the album with the specified UID from cache or database. func CachedAlbumByUID(uid string) (m Album, err error) { // Valid album UID? if uid == "" || rnd.InvalidUID(uid, AlbumUID) { return m, fmt.Errorf("invalid album uid %s", clean.LogQuote(uid)) } // Cached? if cacheData, hit := albumCache.Get(uid); hit { log.Tracef("album: cache hit for %s", uid) return cacheData.(Album), nil } // Find in database. m = Album{} if r := Db().First(&m, "album_uid = ?", uid); r.RecordNotFound() { return m, fmt.Errorf("album not found") } else if r.Error != nil { return m, r.Error } else { albumCache.SetDefault(m.AlbumUID, m) return m, nil } }