mirror of
https://github.com/studiokaiji/nostr-webhost.git
synced 2025-12-18 23:34:21 +01:00
57 lines
987 B
Go
57 lines
987 B
Go
package relays
|
|
|
|
import (
|
|
"os"
|
|
"strings"
|
|
)
|
|
|
|
const PATH = ".nostr_relays"
|
|
|
|
func AddRelay(relayURL string) error {
|
|
file, err := os.OpenFile(PATH, os.O_APPEND|os.O_WRONLY|os.O_CREATE, 0644)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
defer file.Close()
|
|
|
|
_, err = file.WriteString(relayURL + "\n")
|
|
return err
|
|
}
|
|
|
|
func RemoveRelay(targetURL string) error {
|
|
content, err := os.ReadFile(PATH)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
lines := strings.Split(string(content), "\n")
|
|
var newLines []string
|
|
|
|
for _, line := range lines {
|
|
if line != targetURL {
|
|
newLines = append(newLines, line)
|
|
}
|
|
}
|
|
|
|
newContent := strings.Join(newLines, "\n")
|
|
err = os.WriteFile(PATH, []byte(newContent), 0644)
|
|
|
|
return err
|
|
}
|
|
|
|
func GetAllRelays() ([]string, error) {
|
|
content, err := os.ReadFile(PATH)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
data := strings.Split(string(content), "\n")
|
|
lines := []string{}
|
|
for _, line := range data {
|
|
if len(line) > 1 {
|
|
lines = append(lines, line)
|
|
}
|
|
}
|
|
return lines, nil
|
|
}
|