Skip to main content
Glama

Storyden

by Southclaws
Mozilla Public License 2.0
229
downloader.go1.48 kB
package asset_download import ( "context" "io" "github.com/Southclaws/fault" "github.com/Southclaws/fault/fctx" "github.com/Southclaws/storyden/app/resources/asset" "github.com/Southclaws/storyden/app/resources/asset/asset_querier" "github.com/Southclaws/storyden/internal/infrastructure/object" ) type Downloader struct { assets *asset_querier.Querier objects object.Storer } func New( assets *asset_querier.Querier, objects object.Storer, ) *Downloader { return &Downloader{ assets: assets, objects: objects, } } func (d *Downloader) Get(ctx context.Context, id asset.Filename) (*asset.Asset, io.Reader, error) { a, err := d.assets.Get(ctx, id) if err != nil { return nil, nil, fault.Wrap(err, fctx.With(ctx)) } path := asset.BuildAssetPath(a.Name) ctx = fctx.WithMeta(ctx, "path", path, "asset_id", id.String()) r, size, err := d.objects.Read(ctx, path) if err != nil { return nil, nil, fault.Wrap(err, fctx.With(ctx)) } a.Size = int(size) return a, r, nil } func (d *Downloader) GetByID(ctx context.Context, id asset.AssetID) (*asset.Asset, io.Reader, error) { a, err := d.assets.GetByID(ctx, id) if err != nil { return nil, nil, fault.Wrap(err, fctx.With(ctx)) } path := asset.BuildAssetPath(a.Name) ctx = fctx.WithMeta(ctx, "path", path, "asset_id", id.String()) r, size, err := d.objects.Read(ctx, path) if err != nil { return nil, nil, fault.Wrap(err, fctx.With(ctx)) } a.Size = int(size) return a, r, nil }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Southclaws/storyden'

If you have feedback or need assistance with the MCP directory API, please join our Discord server