telegram_client

package
v1.0.66 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 28, 2024 License: MIT Imports: 33 Imported by: 0

Documentation

Overview

модуль для использования Телеграмм Клиента (или бота)

Index

Constants

View Source
const MAX_MESSAGE_LEN = 4096

MAX_MESSAGE_LEN - максимальная длина сообщения

Variables

Client - клиент соединения мессенджера Телеграм

Contacts - список контактов в Telegram

View Source
var Func_OnNewMessage func(ctx context.Context, entities tg.Entities, u *tg.UpdateNewMessage, Peer1 storage.Peer) error

Func_OnNewMessage - функция из внешнего модуля, для приёма новых сообщений

View Source
var MaxSendMessageCountIn1Second float32 = 0.13 //0.13 =4 сообщения в секунду

MaxSendMessageCountIn1Second - максимальное количество сообщений в 1 секунду

PeerDB - локальная база данных cockroachdb, для хранения кеша PeerID отправителей

View Source
var UserSelf *tg.User

UserSelf - собственный юзер в Телеграм

Functions

func AddContact

func AddContact(ctx context.Context, phone_send_to string) error

AddContact - добавляет новый контакт в список контактов Телеграм

func AsFloodWait

func AsFloodWait(err error) (d int, ok bool)

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

func FindMessageByID(ctx context.Context, id int) (*tg.Message, error)

FindMessageByID - находит сообщение на сервере Телеграм по id

func FloodWait

func FloodWait(ctx context.Context, err error) bool

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

func OnNewMessage_Test(ctx context.Context, entities tg.Entities, u *tg.UpdateNewMessage) error

OnNewMessage_Test - пример функции для получения новых сообщений

func SendMessage

func SendMessage(phone_send_to string, text string) (int, error)

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()

func TimeLimit

func TimeLimit()

TimeLimit пауза для ограничения количество сообщений в секунду

func WaitStop

func WaitStop()

WaitStop - ожидает отмену глобального контекста

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 хранит все нужные переменные окружения

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL