diff --git a/utils/kb-suggester/kb-suggester.go b/utils/kb-suggester/kb-suggester.go new file mode 100644 index 00000000..eb37ad31 --- /dev/null +++ b/utils/kb-suggester/kb-suggester.go @@ -0,0 +1,54 @@ +// Copyright (c) 2023 Proton AG +// +// This file is part of Proton Mail Bridge. +// +// Proton Mail Bridge is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Proton Mail Bridge is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Proton Mail Bridge. If not, see . + +package main + +import ( + "bufio" + "fmt" + "os" + + "github.com/ProtonMail/proton-bridge/v3/internal/kb" +) + +func checkErrors(err error) { + if err != nil { + _, _ = fmt.Fprintf(os.Stderr, "%v\n", err) + os.Exit(1) + } +} + +func main() { + var input string + fmt.Print("Type your input: ") + + buffer := bufio.NewReader(os.Stdin) + input, err := buffer.ReadString('\n') + checkErrors(err) + + suggestions, err := kb.GetSuggestions(input) + checkErrors(err) + + if len(suggestions) == 0 { + fmt.Println("No suggestions found") + return + } + + for _, suggestion := range suggestions { + fmt.Printf("Score %v: %v (%v)\n", suggestion.Score, suggestion.Title, suggestion.URL) + } +}