mirror of
https://github.com/krau/SaveAny-Bot.git
synced 2026-05-11 17:39:41 +08:00
perf: add UserStorages map and implement GetUserStorages function for user-specific storage retrieval
This commit is contained in:
@@ -22,6 +22,8 @@ type Storage interface {
|
|||||||
|
|
||||||
var Storages = make(map[string]Storage)
|
var Storages = make(map[string]Storage)
|
||||||
|
|
||||||
|
var UserStorages = make(map[int64][]Storage)
|
||||||
|
|
||||||
// GetStorageByName returns storage by name from cache or creates new one
|
// GetStorageByName returns storage by name from cache or creates new one
|
||||||
func GetStorageByName(name string) (Storage, error) {
|
func GetStorageByName(name string) (Storage, error) {
|
||||||
if name == "" {
|
if name == "" {
|
||||||
@@ -59,6 +61,12 @@ func GetStorageByUserIDAndName(chatID int64, name string) (Storage, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func GetUserStorages(chatID int64) []Storage {
|
func GetUserStorages(chatID int64) []Storage {
|
||||||
|
if chatID <= 0 {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
if storages, ok := UserStorages[chatID]; ok {
|
||||||
|
return storages
|
||||||
|
}
|
||||||
var storages []Storage
|
var storages []Storage
|
||||||
for _, name := range config.Cfg.GetStorageNamesByUserID(chatID) {
|
for _, name := range config.Cfg.GetStorageNamesByUserID(chatID) {
|
||||||
storage, err := GetStorageByName(name)
|
storage, err := GetStorageByName(name)
|
||||||
@@ -101,4 +109,7 @@ func LoadStorages() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
logger.L.Infof("成功加载 %d 个存储", len(Storages))
|
logger.L.Infof("成功加载 %d 个存储", len(Storages))
|
||||||
|
for user := range config.Cfg.GetUsersID() {
|
||||||
|
UserStorages[int64(user)] = GetUserStorages(int64(user))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user