more cleanup

This commit is contained in:
Amarpreet Minhas 2023-02-04 18:52:50 -05:00
parent 03da6cf23d
commit f014dffad9
3 changed files with 30 additions and 11 deletions

View file

@ -3,7 +3,6 @@ package lnd
import "github.com/davecgh/go-spew/spew" import "github.com/davecgh/go-spew/spew"
func Request(request []byte) (string, int, error) { func Request(request []byte) (string, int, error) {
// https://bitcoin.stackexchange.com/questions/73869/rpc-call-to-lnd
spew.Dump(request) spew.Dump(request)
return "x", 1, nil return "x", 1, nil
} }

View file

@ -14,8 +14,8 @@ func main() {
Key: "npub180cvv07tjdrrgpa0j7j7tmnyl2yr6yr7l8j4s3evf6u64th6gkwsyjh6w6", Key: "npub180cvv07tjdrrgpa0j7j7tmnyl2yr6yr7l8j4s3evf6u64th6gkwsyjh6w6",
Hostname: "devvul.com", Hostname: "devvul.com",
} }
*/
nostr.AddNostrAddr(nostrTest) nostr.AddNostrAddr(nostrTest)
*/
// matrix endpoints // matrix endpoints
http.HandleFunc("/.well-known/matrix/server", matrix.MatrixServer) http.HandleFunc("/.well-known/matrix/server", matrix.MatrixServer)
http.HandleFunc("/.well-known/matrix/client", matrix.MatrixClient) http.HandleFunc("/.well-known/matrix/client", matrix.MatrixClient)

View file

@ -31,14 +31,28 @@ func RequestNostrAddr(w http.ResponseWriter, r *http.Request) {
http.ServeFile(w, r, "nostr/form.html") http.ServeFile(w, r, "nostr/form.html")
case "POST": case "POST":
r.ParseForm() r.ParseForm()
relays := make(map[string][]string) rKey := getRkey(r.FormValue("Name"), getHostname(r.Host))
npub := r.FormValue("Key") // check if the user already exists
// convert npub to hex redis, err := redis.New("localhost:6379", "", redis.NostrDb)
hexKey, err := convertNpubToHex(npub) if err != nil {
w.WriteHeader(http.StatusNotFound)
return
}
exists := redis.Client.Exists(rKey)
if exists.Val() == 1 {
w.WriteHeader(http.StatusConflict)
return
}
// get the hexkey
hexKey, err := convertNpubToHex(r.FormValue("Key"))
if err != nil { if err != nil {
w.WriteHeader(http.StatusBadRequest) w.WriteHeader(http.StatusBadRequest)
return return
} }
// create the struct
relays := make(map[string][]string)
names := map[string]string{r.FormValue("Name"): hexKey} names := map[string]string{r.FormValue("Name"): hexKey}
user := nostrWellKnown{} user := nostrWellKnown{}
if r.FormValue("Relays") != "" { if r.FormValue("Relays") != "" {
@ -50,6 +64,8 @@ func RequestNostrAddr(w http.ResponseWriter, r *http.Request) {
user = nostrWellKnown{Names: names} user = nostrWellKnown{Names: names}
} }
jsonUser, _ := json.Marshal(user) jsonUser, _ := json.Marshal(user)
// generate the payment request
paymentReq, exp, err := lnd.Request(jsonUser) paymentReq, exp, err := lnd.Request(jsonUser)
if err != nil { if err != nil {
w.WriteHeader(http.StatusServiceUnavailable) w.WriteHeader(http.StatusServiceUnavailable)
@ -74,7 +90,7 @@ func GetNostrAddr(w http.ResponseWriter, r *http.Request) {
requestedName := r.FormValue("name") requestedName := r.FormValue("name")
// search for user@domain // search for user@domain
search := fmt.Sprintf("%s@%s", requestedName, getHostname(r.Host)) search := getRkey(requestedName, getHostname(r.Host))
addr, err := redis.Client.Get(search).Result() addr, err := redis.Client.Get(search).Result()
if err != nil { if err != nil {
w.WriteHeader(http.StatusNotFound) w.WriteHeader(http.StatusNotFound)
@ -108,7 +124,7 @@ func AddNostrAddr(n NostrRequest) {
if err != nil { if err != nil {
fmt.Println("FAILED") fmt.Println("FAILED")
} }
nameKey := fmt.Sprintf("%s@%s", n.Name, n.Hostname) nameKey := getRkey(n.Name, n.Hostname)
err = r.Client.Set(nameKey, jsonUser, redis.NostrDb).Err() err = r.Client.Set(nameKey, jsonUser, redis.NostrDb).Err()
if err != nil { if err != nil {
fmt.Println("FAILED") fmt.Println("FAILED")
@ -117,9 +133,6 @@ func AddNostrAddr(n NostrRequest) {
func getHostname(hostname string) string { func getHostname(hostname string) string {
// remove port for local testing // remove port for local testing
if strings.Contains(hostname, ":") {
hostname = strings.Split(hostname, ":")[0]
}
return hostname return hostname
} }
@ -135,3 +148,10 @@ func convertNpubToHex(npub string) (string, error) {
return hex.(string), nil return hex.(string), nil
} }
func getRkey(user string, hostname string) string {
if strings.Contains(hostname, ":") {
hostname = strings.Split(hostname, ":")[0]
}
return fmt.Sprintf("%s@%s", user, hostname)
}