Documentation ¶
Overview ¶
модуль для использования Телеграмм Клиента (или бота)
Index ¶
- Constants
- Variables
- func AddContact(ctx context.Context, phone_send_to string) error
- func AsFloodWait(err error) (d int, ok bool)
- func CloseConnection()
- func Connect(...)
- func Connect_err(...) error
- func CreateTelegramClient(...)
- func CreateTelegramClient_err(...) error
- func FillSettings()
- func FindMessageByID(ctx context.Context, id int) (*tg.Message, error)
- func FloodWait(ctx context.Context, err error) bool
- func GetContactsAll()
- func LogInfo_Connected(err error)
- func OnNewMessage(ctx context.Context, entities tg.Entities, ...) error
- func OnNewMessage_Test(ctx context.Context, entities tg.Entities, u *tg.UpdateNewMessage) error
- func SendMessage(phone_send_to string, text string) (int, error)
- func StartTelegram(...)
- func Start_ctx(ctx *context.Context, WaitGroup *sync.WaitGroup, ...) error
- func TimeLimit()
- func WaitStop()
- type MessageTelegram
- type SettingsINI
Constants ¶
const MAX_MESSAGE_LEN = 4096
MAX_MESSAGE_LEN - максимальная длина сообщения
Variables ¶
var Client *telegram.Client
Client - клиент соединения мессенджера Телеграм
var Contacts *tg.ContactsContacts
Contacts - список контактов в Telegram
var Func_OnNewMessage func(ctx context.Context, entities tg.Entities, u *tg.UpdateNewMessage, Peer1 storage.Peer) error
Func_OnNewMessage - функция из внешнего модуля, для приёма новых сообщений
var MaxSendMessageCountIn1Second float32 = 0.13 //0.13 =4 сообщения в секунду
MaxSendMessageCountIn1Second - максимальное количество сообщений в 1 секунду
var PeerDB *pebble.PeerStorage
PeerDB - локальная база данных cockroachdb, для хранения кеша PeerID отправителей
var UserSelf *tg.User
UserSelf - собственный юзер в Телеграм
Functions ¶
func AddContact ¶
AddContact - добавляет новый контакт в список контактов Телеграм
func AsFloodWait ¶
AsFloodWait returns wait duration and true boolean if err is the "FLOOD_WAIT" error.
Client should wait for that duration before issuing new requests with same method.
func CloseConnection ¶ added in v1.0.52
func CloseConnection()
CloseConnection - остановка работы клиента Телеграм
func Connect ¶ added in v1.0.51
func Connect(func_OnNewMessage func(ctx context.Context, entities tg.Entities, u *tg.UpdateNewMessage, Peer1 storage.Peer) error)
Connect подключение к серверу Телеграм, паника при ошибке
func Connect_err ¶ added in v1.0.51
func Connect_err(func_OnNewMessage func(ctx context.Context, entities tg.Entities, u *tg.UpdateNewMessage, Peer1 storage.Peer) error) error
Connect_err подключение к серверу Телеграм
func CreateTelegramClient ¶
func CreateTelegramClient(func_OnNewMessage func(ctx context.Context, entities tg.Entities, u *tg.UpdateNewMessage, Peer1 storage.Peer) error)
CreateTelegramClient создание клиента Телеграм, без подключения лучше использовать Connect() - с подключением
func CreateTelegramClient_err ¶ added in v1.0.49
func CreateTelegramClient_err(func_OnNewMessage func(ctx context.Context, entities tg.Entities, u *tg.UpdateNewMessage, Peer1 storage.Peer) error) error
CreateTelegramClient_err создание клиента Телеграм, без подключения лучше использовать Connect_err() - с подключением
func FillSettings ¶
func FillSettings()
FillSettings загружает переменные окружения в структуру из переменных окружения
func FindMessageByID ¶
FindMessageByID - находит сообщение на сервере Телеграм по id
func FloodWait ¶
FloodWait sleeps required duration and returns true if err is FLOOD_WAIT or false and context or original error otherwise.
func GetContactsAll ¶ added in v1.0.51
func GetContactsAll()
GetContactsAll - обновляет список контактов
func LogInfo_Connected ¶ added in v1.0.58
func LogInfo_Connected(err error)
LogInfo_Connected - выводит сообщение в Лог, или паника при ошибке
func OnNewMessage ¶ added in v1.0.51
func OnNewMessage(ctx context.Context, entities tg.Entities, UpdateNewMessage1 *tg.UpdateNewMessage) error
OnNewMessage - функция для получения новых сообщений, и перенаправления во внешний Func_OnNewMessage() чтоб отправить сообщение надо: api := telegram_client.Client.API() sender := message.NewSender(api) InputPeerClass1 := Peer1.AsInputPeer() RequestBuilder1 := sender.To(InputPeerClass1) UpdateClass1, err := RequestBuilder1.Text(ctx, TextMess)
func OnNewMessage_Test ¶
OnNewMessage_Test - пример функции для получения новых сообщений
func SendMessage ¶
SendMessage - отправка сообщения в мессенджер Телеграм возвращает: id = id отправленного сообщения в telegram err = error
func StartTelegram ¶
func StartTelegram(func_OnNewMessage func(ctx context.Context, entities tg.Entities, u *tg.UpdateNewMessage, Peer1 storage.Peer) error)
StartTelegram - подключается к телеграмму, запускает остановку приложения. func_OnNewMessage - функция для приёма новых сообщений
func Start_ctx ¶ added in v1.0.58
func Start_ctx(ctx *context.Context, WaitGroup *sync.WaitGroup, func_OnNewMessage func(ctx context.Context, entities tg.Entities, u *tg.UpdateNewMessage, Peer1 storage.Peer) error) error
Start_ctx - необходимые процедуры для подключения к серверу Telegram Свой контекст и WaitGroup нужны для остановки работы сервиса Graceful shutdown Для тех кто пользуется этим репозиторием для старта и останова сервиса можно просто StartTelegram()
Types ¶
type MessageTelegram ¶ added in v1.0.46
type MessageTelegram struct { Text string FromID int64 ChatID int64 IsFromMe bool MediaType string //NameTo string IsGroup bool ID int TimeSent time.Time }
MessageTelegram - сообщение из Telegram сокращённо
func FillMessageTelegramFromMessage ¶ added in v1.0.46
func FillMessageTelegramFromMessage(m *tg.Message) MessageTelegram
FillMessageTelegramFromMessage - заполнение струткру MessageTelegram из сообщения от Telegram
func (MessageTelegram) String ¶ added in v1.0.46
func (m MessageTelegram) String() string
String - возвращает строку из структуры
type SettingsINI ¶
type SettingsINI struct { TELEGRAM_APP_ID int TELEGRAM_APP_HASH string TELEGRAM_PHONE_FROM string TELEGRAM_PHONE_SEND_TEST string }
SettingsINI - структура для хранения всех нужных переменных окружения TELEGRAM_APP_ID, TELEGRAM_APP_HASH - первоначально получить по ссылке: https://my.telegram.org/apps TELEGRAM_PHONE_FROM - номер телефона с которого отправляются сообщения
var Settings SettingsINI
Settings хранит все нужные переменные окружения