Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
alist-org
GitHub Repository: alist-org/alist
Path: blob/main/internal/archive/tool/utils.go
1562 views
1
package tool
2
3
import (
4
"github.com/alist-org/alist/v3/internal/errs"
5
)
6
7
var (
8
Tools = make(map[string]Tool)
9
MultipartExtensions = make(map[string]MultipartExtension)
10
)
11
12
func RegisterTool(tool Tool) {
13
for _, ext := range tool.AcceptedExtensions() {
14
Tools[ext] = tool
15
}
16
for mainFile, ext := range tool.AcceptedMultipartExtensions() {
17
MultipartExtensions[mainFile] = ext
18
Tools[mainFile] = tool
19
}
20
}
21
22
func GetArchiveTool(ext string) (*MultipartExtension, Tool, error) {
23
t, ok := Tools[ext]
24
if !ok {
25
return nil, nil, errs.UnknownArchiveFormat
26
}
27
partExt, ok := MultipartExtensions[ext]
28
if !ok {
29
return nil, t, nil
30
}
31
return &partExt, t, nil
32
}
33
34