matrix-kagisum/main.go

58 lines
1.4 KiB
Go
Raw Normal View History

2023-06-24 12:23:32 +02:00
package main
import (
2023-06-25 15:53:40 +02:00
"ewintr.nl/matrix-kagisum/bot"
2023-06-24 12:23:32 +02:00
"fmt"
2023-06-25 15:53:40 +02:00
"golang.org/x/exp/slog"
2023-06-24 12:23:32 +02:00
"os"
2023-06-25 15:53:40 +02:00
"os/signal"
2023-06-24 12:23:32 +02:00
)
func main() {
2023-06-25 15:53:40 +02:00
logger := slog.New(slog.NewTextHandler(os.Stderr, nil))
2023-06-24 12:23:32 +02:00
apiKey := getParam("KAGI_API_KEY", "")
fmt.Println(apiKey)
2023-06-25 15:53:40 +02:00
kagi := bot.NewKagi("https://kagi.com/api/v0", apiKey)
2023-06-24 12:23:32 +02:00
2023-06-25 15:53:40 +02:00
//res, err := kagi.Summarize("https://ewintr.nl/shitty-ssg/why-i-built-my-own-shitty-static-site-generator/")
//if err != nil {
// fmt.Println(err)
//}
mtrxConf := bot.MatrixConfig{
Homeserver: getParam("MATRIX_HOMESERVER", "http://localhost/"),
UserID: getParam("MATRIX_USER_ID", "@user:localhost"),
UserAccessKey: getParam("MATRIX_USER_ACCESS_KEY", "secret"),
UserPassword: getParam("MATRIX_USER_PASSWORD", "secret"),
RoomID: getParam("MATRIX_ROOM_ID", "!room:localhost"),
DBPath: getParam("MATRIX_DB_PATH", "matrix.db"),
Pickle: getParam("MATRIX_PICKLE", "matrix.pickle"),
AcceptInvites: getParam("MATRIX_ACCEPT_INVITES", "false") == "true",
}
bot := bot.NewBot(mtrxConf, kagi, logger)
if err := bot.Init(); err != nil {
logger.Error("error running matrix bot: %v", slog.String("error", err.Error()))
os.Exit(1)
2023-06-24 12:23:32 +02:00
}
2023-06-25 15:53:40 +02:00
go bot.Run()
defer bot.Close()
logger.Info("matrix bot started")
done := make(chan os.Signal)
signal.Notify(done, os.Interrupt)
<-done
logger.Info("matrix bot stopped")
2023-06-24 12:23:32 +02:00
}
func getParam(param, def string) string {
if val, ok := os.LookupEnv(param); ok {
return val
}
return def
}