MCPcopy
hub / github.com/mxpv/podsync / parseVimeoURL

Function parseVimeoURL

pkg/builder/url.go:128–167  ·  view source on GitHub ↗
(parsed *url.URL)

Source from the content-addressed store, hash-verified

126}
127
128func parseVimeoURL(parsed *url.URL) (model.Type, string, error) {
129 parts := strings.Split(parsed.EscapedPath(), "/")
130 if len(parts) <= 1 {
131 return "", "", errors.New("invalid vimeo link path")
132 }
133
134 var kind model.Type
135 switch parts[1] {
136 case "groups":
137 kind = model.TypeGroup
138 case "channels":
139 kind = model.TypeChannel
140 default:
141 kind = model.TypeUser
142 }
143
144 if kind == model.TypeGroup || kind == model.TypeChannel {
145 if len(parts) <= 2 {
146 return "", "", errors.New("invalid channel link")
147 }
148
149 id := parts[2]
150 if id == "" {
151 return "", "", errors.New("invalid id")
152 }
153
154 return kind, id, nil
155 }
156
157 if kind == model.TypeUser {
158 id := parts[1]
159 if id == "" {
160 return "", "", errors.New("invalid id")
161 }
162
163 return kind, id, nil
164 }
165
166 return "", "", errors.New("unsupported link format")
167}
168
169func parseSoundcloudURL(parsed *url.URL) (model.Type, string, error) {
170 parts := strings.Split(parsed.EscapedPath(), "/")

Callers 5

TestParseVimeoURL_GroupFunction · 0.85
TestParseVimeoURL_UserFunction · 0.85
ParseURLFunction · 0.85

Calls

no outgoing calls

Tested by 4

TestParseVimeoURL_GroupFunction · 0.68
TestParseVimeoURL_UserFunction · 0.68