package pwextractor import ( "fmt" "github.com/playwright-community/playwright-go" "net/url" "strings" "time" ) func absUrl(link string, page playwright.Page) string { if len(link) == 0 { return "" } if strings.HasPrefix(link, "/") { pageUrl, _ := url.Parse(page.URL()) link = fmt.Sprintf("%s://%s%s", pageUrl.Scheme, pageUrl.Host, link) } //log.Debugf("link=%s", link) return link } // pwDuration converts string like "10s" to milliseconds float64 pointer // needed for Playwright timeouts (wtf? why they don't use normal Durations?) func pwDuration(s string) *float64 { dur, err := time.ParseDuration(s) if err != nil { panic(fmt.Errorf("failed to parse duration %s: %w", s, err)) } f64 := float64(dur.Milliseconds()) return &f64 }