porting all github actions from bluesky-social/indigo to tangled CI
1package engine
2
3import (
4 "net/url"
5 "strings"
6)
7
8func dedupeStrings(in []string) []string {
9 var out []string
10 seen := make(map[string]bool)
11 for _, v := range in {
12 if !seen[v] {
13 out = append(out, v)
14 seen[v] = true
15 }
16 }
17 return out
18}
19
20// get the cid from a bluesky cdn url
21func cidFromCdnUrl(str *string) *string {
22 if str == nil {
23 return nil
24 }
25
26 u, err := url.Parse(*str)
27 if err != nil || u.Host != "cdn.bsky.app" {
28 return nil
29 }
30
31 parts := strings.Split(u.Path, "/")
32 if len(parts) != 6 {
33 return nil
34 }
35
36 return &strings.Split(parts[5], "@")[0]
37}