penguin/golifehk

@golifehk bot in Telegram

datasources/cjlookup/query.go

raw ยท 777 bytes

package cjlookup

import (
	"strings"

	"github.com/tgckpg/golifehk/query"
)

func Query(q query.QueryMessage) query.IQueryResult {

	lang := q.Lang
	message := q.Text

	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 ") {
		qr.ResultType = "IGNORE"
		goto qrReturn
	}

	qr.isConsumed = true

	if err != nil {
		qr.Error = err
		goto qrReturn
	}

	messageU = messageU[3:]
	searchables, err = getSearchables()

	qResults, err = query.MatchKeys(messageU, searchables)

	qr.Query = qResults

	if err != nil {
		qr.Error = err
		goto qrReturn
	}
qrReturn:
	var iqr query.IQueryResult
	iqr = &qr
	return iqr
}