Files
libkiwi/utils.go
T
2026-06-06 18:55:14 -04:00

49 lines
757 B
Go

package libkiwi
import (
"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,
}
}