mirror of
https://github.com/ManyakRus/starter.git
synced 2024-11-21 18:16:31 +02:00
сделал telegram_bot
This commit is contained in:
parent
cf99f1aad5
commit
942977504e
@ -65,4 +65,7 @@ MINIO_KEY=
|
||||
MINIO_SECRET_KEY=
|
||||
|
||||
#TELEGRAM_API_KEY - API KEY from Telegram messenger
|
||||
TELEGRAM_API_KEY=""
|
||||
TELEGRAM_API_KEY=""
|
||||
|
||||
#TELEGRAM_CHAT_ID_TEST - integer ID of chat, for test only
|
||||
TELEGRAM_CHAT_ID_TEST=
|
||||
|
19
microl/microl.go
Normal file
19
microl/microl.go
Normal file
@ -0,0 +1,19 @@
|
||||
// пакет для микрофункций с логгером
|
||||
|
||||
package microl
|
||||
|
||||
import (
|
||||
"github.com/ManyakRus/starter/log"
|
||||
"os"
|
||||
)
|
||||
|
||||
// Getenv - возвращает переменную окружения
|
||||
func Getenv(Name string, IsRequired bool) string {
|
||||
TextError := "Need fill OS environment variable: "
|
||||
Otvet := os.Getenv(Name)
|
||||
if IsRequired == true && Otvet == "" {
|
||||
log.Error(TextError + Name)
|
||||
}
|
||||
|
||||
return Otvet
|
||||
}
|
1
microl/microl_test.go
Normal file
1
microl/microl_test.go
Normal file
@ -0,0 +1 @@
|
||||
package microl
|
@ -14,7 +14,8 @@ import (
|
||||
|
||||
// SettingsINI - структура для хранения всех нужных переменных окружения
|
||||
type SettingsINI struct {
|
||||
TELEGRAM_API_KEY string
|
||||
TELEGRAM_API_KEY string
|
||||
TELEGRAM_CHAT_ID_TEST int64
|
||||
}
|
||||
|
||||
// Settings хранит все нужные переменные окружения
|
||||
@ -32,10 +33,6 @@ var NeedReconnect bool
|
||||
// Connect - подключается к Telegram, или паника при ошибке
|
||||
func Connect() {
|
||||
|
||||
if Settings.TELEGRAM_API_KEY == "" {
|
||||
FillSettings()
|
||||
}
|
||||
|
||||
err := Connect_err()
|
||||
LogInfo_Connected(err)
|
||||
|
||||
@ -45,6 +42,10 @@ func Connect() {
|
||||
func Connect_err() error {
|
||||
var err error
|
||||
|
||||
if Settings.TELEGRAM_API_KEY == "" {
|
||||
FillSettings()
|
||||
}
|
||||
|
||||
Client, err = botapi.NewBotAPI(Settings.TELEGRAM_API_KEY)
|
||||
if err != nil {
|
||||
return err
|
||||
@ -112,6 +113,25 @@ func Connect_err() error {
|
||||
return err
|
||||
}
|
||||
|
||||
// SendMessage - отправка сообщения в мессенджер Телеграм
|
||||
// возвращает:
|
||||
// id = id отправленного сообщения в telegram
|
||||
// err = error
|
||||
func SendMessage(ChatID int64, Text string) (int, error) {
|
||||
var ID int
|
||||
var err error
|
||||
|
||||
msg := botapi.NewMessage(ChatID, Text)
|
||||
|
||||
Message, err := Client.Send(msg)
|
||||
if err != nil {
|
||||
return ID, err
|
||||
}
|
||||
ID = Message.MessageID
|
||||
|
||||
return ID, err
|
||||
}
|
||||
|
||||
// Reconnect повторное подключение к Telegram, если оно отключено
|
||||
// или полная остановка программы
|
||||
func Reconnect(err error) {
|
||||
@ -246,9 +266,35 @@ func FillSettings() {
|
||||
|
||||
// заполним из переменных оуружения
|
||||
Settings.TELEGRAM_API_KEY = os.Getenv("TELEGRAM_API_KEY")
|
||||
if Settings.TELEGRAM_API_KEY == "" {
|
||||
log.Panicln("Need fill TELEGRAM_API_KEY ! in os.ENV ")
|
||||
|
||||
//
|
||||
Name := ""
|
||||
s := ""
|
||||
|
||||
//
|
||||
Name = "TELEGRAM_API_KEY"
|
||||
s = Getenv(Name, true)
|
||||
Settings.TELEGRAM_API_KEY = s
|
||||
|
||||
Name = "TELEGRAM_CHAT_ID_TEST"
|
||||
s = Getenv(Name, true)
|
||||
i, err := micro.Int64FromString(s)
|
||||
if err != nil {
|
||||
log.Panicf("TELEGRAM_CHAT_ID_TEST: %s, error: %v", s, err)
|
||||
}
|
||||
Settings.TELEGRAM_CHAT_ID_TEST = i
|
||||
|
||||
}
|
||||
|
||||
// Getenv - возвращает переменную окружения
|
||||
func Getenv(Name string, IsRequired bool) string {
|
||||
TextError := "Need fill OS environment variable: "
|
||||
Otvet := os.Getenv(Name)
|
||||
if IsRequired == true && Otvet == "" {
|
||||
log.Error(TextError + Name)
|
||||
}
|
||||
|
||||
return Otvet
|
||||
}
|
||||
|
||||
// GetConnection - возвращает соединение к нужной базе данных
|
||||
@ -263,9 +309,9 @@ func GetConnection() *botapi.BotAPI {
|
||||
// LogInfo_Connected - выводит сообщение в Лог, или паника при ошибке
|
||||
func LogInfo_Connected(err error) {
|
||||
if err != nil {
|
||||
log.Panicf("Telegram bot not connected with API KEY: %s, error: %w", Settings.TELEGRAM_API_KEY, err)
|
||||
log.Panicf("Telegram bot not connected with API KEY: %s, error: %v", Settings.TELEGRAM_API_KEY, err)
|
||||
} else {
|
||||
log.Info("Telegram bot Connected. With API KEY: %s", Settings.TELEGRAM_API_KEY)
|
||||
log.Infof("Telegram bot Connected. With API KEY: %s", Settings.TELEGRAM_API_KEY)
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -3,7 +3,7 @@ package telegram_bot
|
||||
import (
|
||||
"errors"
|
||||
"testing"
|
||||
//log "github.com/sirupsen/logrus"
|
||||
"time"
|
||||
|
||||
"github.com/ManyakRus/starter/config_main"
|
||||
"github.com/ManyakRus/starter/contextmain"
|
||||
@ -60,14 +60,25 @@ func TestConnect(t *testing.T) {
|
||||
//ProgramDir := micro.ProgramDir_Common()
|
||||
config_main.LoadEnv()
|
||||
Connect()
|
||||
|
||||
CloseConnection()
|
||||
defer CloseConnection()
|
||||
}
|
||||
|
||||
func TestGetConnection(t *testing.T) {
|
||||
//ProgramDir := micro.ProgramDir_Common()
|
||||
config_main.LoadEnv()
|
||||
GetConnection()
|
||||
|
||||
CloseConnection()
|
||||
defer CloseConnection()
|
||||
}
|
||||
|
||||
func TestSendMessage(t *testing.T) {
|
||||
config_main.LoadEnv()
|
||||
GetConnection()
|
||||
defer CloseConnection()
|
||||
|
||||
Text := "test " + time.Now().String()
|
||||
ID := Settings.TELEGRAM_CHAT_ID_TEST
|
||||
_, err := SendMessage(ID, Text)
|
||||
if err != nil {
|
||||
t.Error("TestSendMessage() error: ", err)
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user