blob: ac2744346bad557ce28ff1b24e4f41fb6d46a7c7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
package general
import (
"fmt"
"strings"
"sync"
"time"
)
var (
slingshotBackoff time.Time
slingshotBackoffMu sync.Mutex
)
func ParseURI(uri string) (repo, collection, rkey string, err error) {
// URI format: 'at://DID/collection/recordkey'
parts := strings.Split(strings.TrimPrefix(uri, "at://"), "/")
if len(parts) != 3 {
return "", "", "", fmt.Errorf("invalid URI format: %s", uri)
}
return parts[0], parts[1], parts[2], nil
}
func SlingshotAvailable() bool {
slingshotBackoffMu.Lock()
defer slingshotBackoffMu.Unlock()
return time.Now().After(slingshotBackoff)
}
func SetSlingshotBackoff(d time.Duration) {
slingshotBackoffMu.Lock()
defer slingshotBackoffMu.Unlock()
slingshotBackoff = time.Now().Add(d)
}
|