package main

import (
	"strings"

	"github.com/go-irc/irc"
	"github.com/pkg/errors"
)

func init() {
	tplFuncs.Register("channelCounter", func(m *irc.Message, r *rule, fields map[string]interface{}) interface{} {
		return func(name string) (string, error) {
			channel, ok := fields["channel"].(string)
			if !ok {
				return "", errors.New("channel not available")
			}

			return strings.Join([]string{channel, name}, ":"), nil
		}
	})

	tplFuncs.Register("counterValue", genericTemplateFunctionGetter(func(name string, _ ...string) int64 {
		return store.GetCounterValue(name)
	}))
}