8000 feat(misskey): add misskey driver (#7864) · AlistGo/alist@fd51f34 · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Commit fd51f34

Browse files
authored
feat(misskey): add misskey driver (#7864)
1 parent bdd9774 commit fd51f34

File tree

5 files changed

+401
-0
lines changed

5 files changed

+401
-0
lines changed

drivers/all.go

+1
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ import (
3737
_ "github.com/alist-org/alist/v3/drivers/local"
3838
_ "github.com/alist-org/alist/v3/drivers/mediatrack"
3939
_ "github.com/alist-org/alist/v3/drivers/mega"
40+
_ "github.com/alist-org/alist/v3/drivers/misskey"
4041
_ "github.com/alist-org/alist/v3/drivers/mopan"
4142
_ "github.com/alist-org/alist/v3/drivers/netease_music"
4243
_ "github.com/alist-org/alist/v3/drivers/onedrive"

drivers/misskey/driver.go

+74
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
package misskey
2+
3+
import (
4+
"context"
5+
"strings"
6+
7+
"github.com/alist-org/alist/v3/internal/driver"
8+
"github.com/alist-org/alist/v3/internal/errs"
9+
"github.com/alist-org/alist/v3/internal/model"
10+
)
11+
12+
type Misskey struct {
13+
model.Storage
14+
Addition
15+
}
16+
17+
func (d *Misskey) Config() driver.Config {
18+
return config
19+
}
20+
21+
func (d *Misskey) GetAddition() driver.Additional {
22+
return &d.Addition
23+
}
24+
25+
func (d *Misskey) Init(ctx context.Context) error {
26+
d.Endpoint = strings.TrimSuffix(d.Endpoint, "/")
27+
if d.Endpoint == "" || d.AccessToken == "" {
28+
return errs.EmptyToken
29+
} else {
30+
return nil
31+
}
32+
}
33+
34+
func (d *Misskey) Drop(ctx context.Context) error {
35+
return nil
36+
}
37+
38+
func (d *Misskey) List(ctx context.Context, dir model.Obj, args model.ListArgs) ([]model.Obj, error) {
39+
return d.list(dir)
40+
}
41+
42+
func (d *Misskey) Link(ctx context.Context, file model.Obj, args model.LinkArgs) (*model.Link, error) {
43+
return d.link(file)
44+
}
45+
46+
func (d *Misskey) MakeDir(ctx context.Context, parentDir model.Obj, dirName string) (model.Obj, error) {
47+
return d.makeDir(parentDir, dirName)
48+
}
49+
50+
func (d *Misskey) Move(ctx context.Context, srcObj, dstDir model.Obj) (model.Obj, error) {
51+
return d.move(srcObj, dstDir)
52+
}
53+
54+
func (d *Misskey) Rename(ctx context.Context, srcObj model.Obj, newName string) (model.Obj, error) {
55+
return d.rename(srcObj, newName)
56+
}
57+
58+
func (d *Misskey) Copy(ctx context.Context, srcObj, dstDir model.Obj) (model.Obj, error) {
59+
return d.copy(srcObj, dstDir)
60+
}
61+
62+
func (d *Misskey) Remove(ctx context.Context, obj model.Obj) error {
63+
return d.remove(obj)
64+
}
65+
66+
func (d *Misskey) Put(ctx context.Context, dstDir model.Obj, stream model.FileStreamer, up driver.UpdateProgress) (model.Obj, error) {
67+
return d.put(dstDir, stream, up)
68+
}
69+
70+
//func (d *Template) Other(ctx context.Context, args model.OtherArgs) (interface{}, error) {
71+
// return nil, errs.NotSupport
72+
//}
73+
74+
var _ driver.Driver = (*Misskey)(nil)

drivers/misskey/meta.go

+35
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package misskey
2+
3+
import (
4+
"github.com/alist-org/alist/v3/internal/driver"
5+
"github.com/alist-org/alist/v3/internal/op"
6+
)
7+
8+
type Addition struct {
9+
// Usually one of two
10+
driver.RootPath
11+
// define other
12+
// Field string `json:"field" type:"select" required:"true" options:"a,b,c" default:"a"`
13+
Endpoint string `json:"endpoint" required:"true" default:"https://misskey.io"`
14+
AccessToken string `json:"access_token" required:"true"`
15+
}
16+
17+
var config = driver.Config{
18+
Name: "Misskey",
19+
LocalSort: false,
20+
OnlyLocal: false,
21+
OnlyProxy: false,
22+
NoCache: false,
23+
NoUpload: false,
24+
NeedMs: false,
25+
DefaultRoot: "/",
26+
CheckStatus: false,
27+
Alert: "",
28+
NoOverwriteUpload: false,
29+
}
30+
31+
func init() {
32+
op.RegisterDriver(func() driver.Driver {
33+
return &Misskey{}
34+
})
35+
}

drivers/misskey/types.go

+35
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package misskey
2+
3+
type Resp struct {
4+
Code int
5+
Raw []byte
6+
}
7+
8+
type Properties struct {
9+
Width int `json:"width"`
10+
Height int `json:"height"`
11+
}
12+
13+
type MFile struct {
14+
ID string `json:"id"`
15+
CreatedAt string `json:"createdAt"`
16+
Name string `json:"name"`
17+
Type string `json:"type"`
18+
MD5 string `json:"md5"`
19+
Size int64 `json:"size"`
20+
IsSensitive bool `json:"isSensitive"`
21+
Blurhash string `json:"blurhash"`
22+
Properties Properties `json:"properties"`
23+
URL string `json:"url"`
24+
ThumbnailURL string `json:"thumbnailUrl"`
25+
Comment *string `json:"comment"`
26+
FolderID *string `json:"folderId"`
27+
Folder MFolder `json:"folder"`
28+
}
29+
30+
type MFolder struct {
31+
ID string `json:"id"`
32+
CreatedAt string `json:"createdAt"`
33+
Name string `json:"name"`
34+
ParentID *string `json:"parentId"`
35+
}

0 commit comments

Comments
 (0)
0