commit f8222b6951078d4105bb1588fd6e2948032492f7 Author: Erik Winter Date: Sat Jun 24 12:23:32 2023 +0200 summize call diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..663084a --- /dev/null +++ b/go.mod @@ -0,0 +1,5 @@ +module ewintr.nl/matrix-kagisum + +go 1.20 + +require golang.org/x/exp v0.0.0-20230522175609-2e198f4a06a1 // indirect diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..001575f --- /dev/null +++ b/go.sum @@ -0,0 +1,2 @@ +golang.org/x/exp v0.0.0-20230522175609-2e198f4a06a1 h1:k/i9J1pBpvlfR+9QsetwPyERsqu1GIbi967PQMq3Ivc= +golang.org/x/exp v0.0.0-20230522175609-2e198f4a06a1/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= diff --git a/kagi.go b/kagi.go new file mode 100644 index 0000000..7c9a829 --- /dev/null +++ b/kagi.go @@ -0,0 +1,51 @@ +package main + +import ( + "fmt" + "io" + "net/http" + "net/url" + "time" +) + +type Kagi struct { + apiKey string + baseURL string + client *http.Client +} + +func NewKagi(baseURL, apiKey string) *Kagi { + return &Kagi{ + apiKey: apiKey, + baseURL: baseURL, + client: &http.Client{ + Timeout: 10 * time.Minute, + }, + } +} + +func (k *Kagi) Summarize(sumURL string) (string, error) { + queryURL := fmt.Sprintf("%s/summarize?engine=muriel&url=%s", k.baseURL, url.QueryEscape(sumURL)) + //queryURL = "" + req, err := http.NewRequest("GET", queryURL, nil) + if err != nil { + return "", err + } + req.Header.Set("Authorization", fmt.Sprintf("Bot %s", k.apiKey)) + + res, err := k.client.Do(req) + if err != nil { + return "", err + } + fmt.Println(res.Status) + + resBody, err := io.ReadAll(res.Body) + if err != nil { + return "", err + } + defer res.Body.Close() + + fmt.Sprintf("response: %v", string(resBody)) + + return string(resBody), nil +} diff --git a/main.go b/main.go new file mode 100644 index 0000000..0552d04 --- /dev/null +++ b/main.go @@ -0,0 +1,28 @@ +package main + +import ( + "fmt" + "os" +) + +func main() { + //logger := slog.New(slog.NewTextHandler(os.Stderr)) + apiKey := getParam("KAGI_API_KEY", "") + fmt.Println(apiKey) + + k := NewKagi("https://kagi.com/api/v0", apiKey) + + res, err := k.Summarize("https://ewintr.nl/shitty-ssg/why-i-built-my-own-shitty-static-site-generator/") + if err != nil { + fmt.Println(err) + } + + fmt.Println(res) +} + +func getParam(param, def string) string { + if val, ok := os.LookupEnv(param); ok { + return val + } + return def +}