MCPcopy
hub / github.com/AlistGo/alist / List

Method List

drivers/github_releases/driver.go:139–170  ·  view source on GitHub ↗
(ctx context.Context, dir model.Obj, args model.ListArgs)

Source from the content-addressed store, hash-verified

137}
138
139func (d *GithubReleases) List(ctx context.Context, dir model.Obj, args model.ListArgs) ([]model.Obj, error) {
140 files := make([]File, 0)
141 path := fmt.Sprintf("/%s", strings.Trim(dir.GetPath(), "/"))
142
143 if d.Addition.ConcurrentRequests && d.Addition.Token != "" { // 并发处理
144 var mu sync.Mutex
145 var wg sync.WaitGroup
146
147 for i := range d.points {
148 wg.Add(1)
149 go func(point *MountPoint) {
150 defer wg.Done()
151 pointFiles := d.processPoint(point, path, args)
152
153 mu.Lock()
154 d.mergeFiles(&files, pointFiles)
155 mu.Unlock()
156 }(&d.points[i])
157 }
158 wg.Wait()
159 } else { // 串行处理
160 for i := range d.points {
161 point := &d.points[i]
162 pointFiles := d.processPoint(point, path, args)
163 d.mergeFiles(&files, pointFiles)
164 }
165 }
166
167 return utils.SliceConvert(files, func(src File) (model.Obj, error) {
168 return src, nil
169 })
170}
171
172func (d *GithubReleases) Link(ctx context.Context, file model.Obj, args model.LinkArgs) (*model.Link, error) {
173 url := file.GetID()

Callers

nothing calls this directly

Calls 8

processPointMethod · 0.95
mergeFilesMethod · 0.95
SliceConvertFunction · 0.92
DoneMethod · 0.80
GetPathMethod · 0.65
AddMethod · 0.65
UnlockMethod · 0.65
WaitMethod · 0.65

Tested by

no test coverage detected