51 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| 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()
 | ||
| 	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!")
 | ||
| 	})
 | ||
| 
 | ||
| 	fmt.Println(templates.Title(b.Me, cfg.BotVersion,jiraClient.GetBaseURL().Host))
 | ||
| 	b.Start()
 | ||
| }
 |