MCPcopy Create free account
hub / github.com/DEROFDN/Engram / HandleTELALinks

Function HandleTELALinks

methods.go:101–173  ·  view source on GitHub ↗

HandleTELALinks parses and handles all TELA links

(ctx context.Context, p TELALink_Params)

Source from the content-addressed store, hash-verified

99
100// HandleTELALinks parses and handles all TELA links
101func HandleTELALinks(ctx context.Context, p TELALink_Params) (result TELALink_Result, err error) {
102 if gnomon.Index == nil {
103 // Match Engram behavior as it disables TELA when Gnomon is inactive
104 err = fmt.Errorf("gnomon is not active")
105 return
106 }
107
108 target, args, err := tela.ParseTELALink(p.TelaLink)
109 if err != nil {
110 err = fmt.Errorf("could not parse tela link: %s", err)
111 return
112 }
113
114 switch target {
115 case "tela":
116 switch args[0] {
117 case "open":
118 var link string
119 link, err = tela.OpenTELALink(p.TelaLink, session.Daemon)
120 if err != nil {
121 return
122 }
123
124 var url *url.URL
125 url, err = url.Parse(link)
126 if err != nil {
127 err = fmt.Errorf("could not parse URL: %s", err)
128 return
129 }
130
131 err = fyne.CurrentApp().OpenURL(url)
132 if err != nil {
133 err = fmt.Errorf("could not open tela link: %s", err)
134 return
135 }
136
137 result.TelaLinkResult = link
138 default:
139 err = fmt.Errorf("unknown tela argument %q", args[0])
140 }
141 case "engram":
142 switch args[0] {
143 case "asset":
144 if len(args) < 2 {
145 err = fmt.Errorf("%q has invalid tela link format for engram://asset", p.TelaLink)
146 return
147 }
148
149 switch args[1] {
150 case "manager":
151 if len(args) < 3 || len(args[2]) != 64 {
152 err = fmt.Errorf("%q has invalid scid argument for engram://asset/manager", p.TelaLink)
153 return
154 }
155
156 session.LastDomain = session.Window.Content()
157 session.Window.SetContent(layoutTransition())
158 session.Window.SetContent(layoutAssetManager(args[2]))

Callers

nothing calls this directly

Calls 3

layoutTransitionFunction · 0.85
layoutAssetManagerFunction · 0.85
removeOverlaysFunction · 0.85

Tested by

no test coverage detected