resolve.gno

1.08 Kb ยท 45 lines
 1package namechecker
 2
 3import (
 4	"std"
 5
 6	"gno.land/r/sys/users" // Import the user registry
 7)
 8
 9func Render(path string) string {
10	out := "# Username checker\n\n"
11
12	// Default render
13	if path == "" {
14		out += "Add `:{name OR address}` to the search bar to check for a name or address!\n\n"
15		out += "Here are some examples:\n\n"
16		out += "- [@test1](/r/docs/users:test1)\n"
17		out += "- [g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5](/r/docs/users:g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5)\n"
18
19		return out
20	}
21
22	// If the user inputted an address
23	if std.Address(path).IsValid() {
24		// Try resolving an address
25		data := users.ResolveAddress(std.Address(path))
26		if data != nil {
27			out += "## Found the user you're looking for: "
28			// RenderLink will return a clickable gnoweb link leading to the user's page
29			out += data.RenderLink("")
30			return out
31		}
32	}
33
34	// Else, try resolving a name to get user data
35	data, _ := users.ResolveName(path)
36	if data != nil {
37		out += "## Found the user you're looking for: "
38		out += data.RenderLink("")
39		return out
40	}
41
42	out += "## Didn't find that user :/"
43
44	return out
45}