func NewContext(repository Repository) (Context, error) {
	ctx := &context{
		cronClient: map[string]*cron.Cron{},
		repository: repository,
	}
	data, err := repository.Load()
	if err != nil {
		return nil, err
	}
	ctx.cronTaskMap = data
	return ctx, nil
}
NewContext create cron context
package cron
import (
	"fmt"
	"log"
	"math/rand"
	"strings"
	"time"
	"github.com/kyokomi/slackbot/plugins"
	"github.com/robfig/cron"
)
const helpText = `
	register:
		cron add */1 * * * * * hogehoge
	response:
		<cron_id>
	delete:
		cron del <cron_id>
	response:
		delete message.
	list:
		cron list
	response:
		show added cron list.
	help:
		cron help
	response:
		show this help.
`
var rd = rand.New(rand.NewSource(time.Now().UnixNano()))
type Context interface {
	AddCommand(channel string, c Command) string
	DelCommand(channel string, c Command) string
	ListCommand(channel string, c Command) string
	HelpCommand(channel string, c Command) string
	Refresh(messageSender plugins.MessageSender, channel string)
	AllRefresh(messageSender plugins.MessageSender)
	Close()
}
type context struct {
	repository  Repository
	cronClient  map[string]*cron.Cron
	cronTaskMap map[string]TaskMap
}