45 lines
727 B
Go
45 lines
727 B
Go
package cjlookup
|
|
|
|
import (
|
|
"fmt"
|
|
"log"
|
|
"strings"
|
|
|
|
"github.com/tgckpg/golifehk/query"
|
|
)
|
|
|
|
func Query(lang string, message string) query.IQueryResult {
|
|
var qResults *query.QueryObject
|
|
var err error
|
|
var searchables *[]query.ISearchable
|
|
|
|
qr := QueryResult{Lang: lang}
|
|
messageU := strings.ToUpper(message)
|
|
|
|
// Only look up jyut ping
|
|
if !strings.HasPrefix(messageU, "JP ") {
|
|
err = fmt.Errorf("Invalid query")
|
|
}
|
|
|
|
if err != nil {
|
|
qr.Error = err
|
|
goto qrReturn
|
|
}
|
|
|
|
messageU = messageU[3:]
|
|
searchables, err = getSearchables()
|
|
|
|
qResults, err = query.Parse(messageU, searchables)
|
|
|
|
qr.Query = qResults
|
|
|
|
if err != nil {
|
|
qr.Error = err
|
|
goto qrReturn
|
|
}
|
|
qrReturn:
|
|
var iqr query.IQueryResult
|
|
iqr = &qr
|
|
return iqr
|
|
}
|