Files
proton-bridge/utils/kb-suggester/kb-suggester.go

58 lines
1.4 KiB
Go

// 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 <https://www.gnu.org/licenses/>.
package main
import (
"fmt"
"io"
"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() {
fi, err := os.Stdin.Stat()
checkErrors(err)
if (fi.Mode() & os.ModeNamedPipe) == 0 {
fmt.Println("Type your input, Ctrl+D to finish: ")
}
bytes, err := io.ReadAll(os.Stdin)
checkErrors(err)
suggestions, err := kb.GetSuggestions(string(bytes))
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)
}
}