Files
go_clientinfo/server/funcs_page.go
brent saner be8386c73a v0.2.2
Fixed:
* html/template requires escaping comments you explicitly want rendered
  as a template.HTML type.
2025-12-18 02:18:05 -05:00

78 lines
1.0 KiB
Go

package server
import (
`fmt`
`html/template`
`net/url`
)
func (p *Page) AltURL() (altUrl string) {
var u *url.URL
if !p.HasAltURL() {
return
}
if p.Info.IP.Is4() {
u = p.srv.v6Url
} else if p.Info.IP.Is6() {
u = p.srv.v4Url
} else {
// lol how did you get here
return
}
u.Query().Add(urlParamXCheck, p.ReqUUID.String())
altUrl = u.String()
return
}
func (p *Page) AltVer() (altVer string) {
if !p.HasAltURL() {
return
}
if p.Info.IP.Is4() {
altVer = "v6"
} else if p.Info.IP.Is6() {
altVer = "v4"
}
return
}
func (p *Page) HasAltURL() (hasAlt bool) {
if p.Info == nil {
return
}
hasAlt = (p.Info.IP.Is4() && p.srv.v6Url != nil) ||
(p.Info.IP.Is6() && p.srv.v4Url != nil)
return
}
func (p *Page) RenderIP(indent uint) (s string) {
s = fmt.Sprintf("<a href=\"https://ipinfo.io/%s\">%s</a>", p.Info.IP.String(), p.Info.IP.String())
return
}
func (p *Page) RenderReqId() (s template.HTML) {
s = template.HTML(
fmt.Sprintf(
"<!-- Request ID: %s -->",
p.ReqUUID.String(),
),
)
return
}