summize call

This commit is contained in:
Erik Winter 2023-06-24 12:23:32 +02:00
commit f8222b6951
4 changed files with 86 additions and 0 deletions

5
go.mod Normal file
View File

@ -0,0 +1,5 @@
module ewintr.nl/matrix-kagisum
go 1.20
require golang.org/x/exp v0.0.0-20230522175609-2e198f4a06a1 // indirect

2
go.sum Normal file
View File

@ -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=

51
kagi.go Normal file
View File

@ -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
}

28
main.go Normal file
View File

@ -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
}