This commit is contained in:
Andrey Belvedersky
2021-06-03 09:30:25 +03:00
parent 18b2d4e554
commit 0aa4922105
9 changed files with 147 additions and 6 deletions

View File

@ -14,12 +14,16 @@ import (
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,
@ -41,10 +45,20 @@ func JiraBot() {
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))
fmt.Println(templates.Title(b.Me, cfg.BotVersion, jiraClient.GetBaseURL().Host))
b.Start()
}

44
pkg/message/message.go Normal file
View File

@ -0,0 +1,44 @@
package message
import (
"log"
"github.com/nsqio/go-nsq"
)
type myMessageHandler struct{}
func processMessage(b []byte) error {
log.Println(string(b))
return nil
}
// HandleMessage implements the Handler interface.
func (h *myMessageHandler) HandleMessage(m *nsq.Message) error {
if len(m.Body) == 0 {
return nil
}
err := processMessage(m.Body)
return err
}
func Message() {
cf := nsq.NewConfig()
consumer, err := nsq.NewConsumer("error", "error", cf)
if err != nil {
log.Fatal(err)
}
// Set the Handler for messages received by this Consumer. Can be called multiple times.
// See also AddConcurrentHandlers.
consumer.AddHandler(&myMessageHandler{})
// Use nsqlookupd to discover nsqd instances.
// See also ConnectToNSQD, ConnectToNSQDs, ConnectToNSQLookupds.
err = consumer.ConnectToNSQLookupd("ekb-app01.myway.local:4161")
if err != nil {
log.Fatal(err)
}
}

View File

@ -2,10 +2,14 @@ package utils
import "log"
func SendError(devs []int) {
func CheckErr(err error) {
if err != nil {
sendError([]int{132, 31213, 213})
}
}
func sendError(devs []int) {
for _, dev := range devs {
log.Println(dev)
}
}
// 169837862

17
pkg/utils/nsqd.go Normal file
View File

@ -0,0 +1,17 @@
package utils
import (
"log"
"github.com/nsqio/go-nsq"
)
func GetProducer() *nsq.Producer {
config := nsq.NewConfig()
producer, err := nsq.NewProducer("ekb-app01.myway.local:4150", config)
if err != nil {
log.Fatal(err)
}
return producer
}

View File

@ -2,7 +2,6 @@ package utils
import (
"git/ecom/jira-bot/pkg/config"
"github.com/go-redis/redis/v8"
)