mirror of
https://github.com/krau/SaveAny-Bot.git
synced 2026-07-08 07:31:26 +08:00
feat: set default storage by inline keyboard
This commit is contained in:
@@ -5,6 +5,7 @@ import (
|
||||
"fmt"
|
||||
|
||||
"github.com/krau/SaveAny-Bot/config"
|
||||
"github.com/krau/SaveAny-Bot/logger"
|
||||
"github.com/krau/SaveAny-Bot/storage/alist"
|
||||
"github.com/krau/SaveAny-Bot/storage/local"
|
||||
"github.com/krau/SaveAny-Bot/storage/webdav"
|
||||
@@ -44,6 +45,19 @@ func GetStorageByName(name string) (Storage, error) {
|
||||
return storage, nil
|
||||
}
|
||||
|
||||
// 检查 user 是否可用指定的 storage, 若不可用则返回未找到错误
|
||||
func GetStorageByUserIDAndName(chatID int64, name string) (Storage, error) {
|
||||
if name == "" {
|
||||
return nil, fmt.Errorf("storage name is required")
|
||||
}
|
||||
|
||||
if !config.Cfg.HasStorage(chatID, name) {
|
||||
return nil, fmt.Errorf("storage %s not found for user %d", name, chatID)
|
||||
}
|
||||
|
||||
return GetStorageByName(name)
|
||||
}
|
||||
|
||||
func GetUserStorages(chatID int64) []Storage {
|
||||
var storages []Storage
|
||||
for _, name := range config.Cfg.GetStorageNamesByUserID(chatID) {
|
||||
@@ -78,14 +92,13 @@ func NewStorage(cfg config.StorageConfig) (Storage, error) {
|
||||
return storage, nil
|
||||
}
|
||||
|
||||
func GetStorageConfigurableItems(storageType types.StorageType) []string {
|
||||
switch storageType {
|
||||
case types.StorageTypeAlist:
|
||||
return alist.ConfigurableItems
|
||||
case types.StorageTypeLocal:
|
||||
return local.ConfigurableItems
|
||||
case types.StorageTypeWebdav:
|
||||
return webdav.ConfigurableItems
|
||||
func LoadStorages() {
|
||||
logger.L.Info("Loading storages")
|
||||
for _, storage := range config.Cfg.Storages {
|
||||
_, err := GetStorageByName(storage.GetName())
|
||||
if err != nil {
|
||||
logger.L.Errorf("Failed to load storage %s: %v", storage.GetName(), err)
|
||||
}
|
||||
}
|
||||
return nil
|
||||
logger.L.Infof("Successfully loaded %d storages", len(Storages))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user