package libkiwi import ( "bufio" "context" "fmt" "io" "net/url" "gitgud.io/yats/cerberus" ) func (kf *KF) solveKiwiFlare(ctx context.Context, page io.Reader) error { var ( c cerberus.Challenge err error host = fmt.Sprintf("https://%s/", kf.domain.Hostname()) ) switch { case page != nil: c, err = cerberus.ParseChallenge(page, host) default: c, err = cerberus.NewChallenge(ctx, kf.client, host) } if err != nil { return err } s, err := cerberus.Solve(ctx, c) if err != nil { return err } _, err = cerberus.Submit(ctx, kf.client, s, "/") if err != nil { return err } return nil } func (kf *KF) urlFromPath(path string) *url.URL { return &url.URL{ Scheme: "https", Host: kf.domain.Hostname(), Path: path, } }