| 167 | } |
| 168 | |
| 169 | func parseSoundcloudURL(parsed *url.URL) (model.Type, string, error) { |
| 170 | parts := strings.Split(parsed.EscapedPath(), "/") |
| 171 | if len(parts) <= 3 { |
| 172 | return "", "", errors.New("invald soundcloud link path") |
| 173 | } |
| 174 | |
| 175 | var kind model.Type |
| 176 | |
| 177 | // - https://soundcloud.com/user/sets/example-set |
| 178 | switch parts[2] { |
| 179 | case "sets": |
| 180 | kind = model.TypePlaylist |
| 181 | default: |
| 182 | return "", "", errors.New("invalid soundcloud url, missing sets") |
| 183 | } |
| 184 | |
| 185 | id := parts[3] |
| 186 | |
| 187 | return kind, id, nil |
| 188 | } |