package bot import ( "context" "fmt" "git/ecom/jira-bot/pkg/bot/middlewares" "git/ecom/jira-bot/pkg/bot/scenes" "git/ecom/jira-bot/pkg/config" "git/ecom/jira-bot/pkg/templates" "git/ecom/jira-bot/pkg/utils" "log" telegram "gopkg.in/tucnak/telebot.v2" ) // Чатбот func JiraBot() { cfg, _ := config.GetConfig() redis := utils.Redis(cfg.Redis) ctx := context.Background() pnsq := utils.GetProducer() jiraClient, _ := utils.GetClient(&cfg.Jira) b, err := telegram.NewBot(telegram.Settings{ URL: cfg.Telegram.Url, Token: cfg.Telegram.Token, Poller: middlewares.RedisSession(redis, ctx), }) if err != nil { log.Fatal(err) return } b.Handle(telegram.OnText, func(m *telegram.Message) { // spew.Dump(m) b.Send(m.Sender, m.Text) }) // Cтартовая сцена b.Handle("/start", scenes.Start(b, cfg)) b.Handle("/exit", scenes.Exit(b, redis, ctx)) b.Handle("/hello", func(m *telegram.Message) { b.Send(m.Sender, "Hello World!") messageBody := []byte("hello") topicName := "error" // Synchronously publish a single message to the specified topic. // Messages can also be sent asynchronously and/or in batches. err = pnsq.Publish(topicName, messageBody) if err != nil { log.Fatal(err) } }) fmt.Println(templates.Title(b.Me, cfg.BotVersion, jiraClient.GetBaseURL().Host)) b.Start() }