penguin/golifehk

@golifehk bot in Telegram

datasources/cjlookup/query.go

raw ยท 720 bytes

package cjlookup

import (
	"fmt"
	"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
}