teleflow

package module
v1.1.0 Latest Latest
Warning

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

Go to latest
Published: Dec 15, 2025 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

View Source
const (
	CloseButtonCallbackData = "close"
)

Variables

View Source
var (
	ErrDialogStepNotFound     = errors.New("Не удалось получить шаг диалога.")
	ErrDialogQuestionNotFound = errors.New("Отсутствует вопрос для текущего шага.")
	ErrMediaIsNotAllowed      = errors.New("Отправка медиа-файлов не поддерживается. Выберите вариант на клавиатуре или введите корректное значение.")
	ErrMediaTypeIsNotAllowed  = errors.New("Данный тип медиа-файла не поддерживается.")
	ErrOnlyMediaIsAllowed     = errors.New("В ответе поддерживаются только медиа-файлы.")
	ErrOnlyText               = errors.New("В ответе поддерживается только текст.")
	ErrOnlyCallbackData       = errors.New("В ответе поддерживаются только кнопки.")
	ErrOnlyDialogButtons      = errors.New("В ответе поддерживаются только кнопки диалога.")
)

Functions

func ConvertKeyboardToTelego

func ConvertKeyboardToTelego(localKeyboard *InlineKeyboardMarkup) *telego.InlineKeyboardMarkup

func InlineKeyboardRows

func InlineKeyboardRows(rows int, btns ...InlineKeyboardButton) [][]InlineKeyboardButton

Types

type CallbackData

type CallbackData struct {
	Raw                           string            `json:"-"`
	IsDialogStartAction           bool              `json:"is_dialog_start_action,omitempty"`
	IsDynamicListConfirmAction    bool              `json:"tf_1,omitempty"`
	IsDynamicListNavigationAction bool              `json:"tf_2,omitempty"`
	IsCancel                      bool              `json:"tf_4,omitempty"`
	IsBack                        bool              `json:"tf_5,omitempty"`
	Page                          int               `json:"page,omitempty"`
	Data                          string            `json:"data,omitempty"`
	DataArgs                      map[string]string `json:"data_args,omitempty"`
	IsDialog                      bool              `json:"is_dialog,omitempty"`
}

func (CallbackData) JSON

func (c CallbackData) JSON() string

func (*CallbackData) Unmarshal

func (c *CallbackData) Unmarshal(data string) error

type Dialog

type Dialog[T any] interface {
	AddStep(params *StepParams)
	GetStateData() *T
	GetInitialCallbackDataArgs() map[string]string
	DynamicListPage(
		isMultipleSelect bool,
		buttonsPerRow int,
		itemsPerPage int,
		skipButtonStepID StepID,
		pageButtons []DynamicListButton,
		totalItems int,
	) *Keyboard
	DynamicListAll(
		isMultipleSelect bool,
		buttonsPerRow int,
		maxButtonsInView int,
		skipButtonStepID StepID,
		buttonsList []DynamicListButton,
	) *Keyboard
	Router(ctx context.Context, update any) *Response
}

func NewDialog

func NewDialog[T any](stateData *T) Dialog[T]

type DynamicListButton

type DynamicListButton struct {
	Text         string
	CallbackData string
}

type Entry

type Entry interface {
	Router(ctx context.Context, update any) *Response
}

type InlineKeyboardButton

type InlineKeyboardButton struct {
	Text         string
	CallbackData string
	URL          string
}

func InlineButtonWithCallbackData

func InlineButtonWithCallbackData(text string, callbackData string) InlineKeyboardButton

func InlineButtonWithURL

func InlineButtonWithURL(text string, url string) InlineKeyboardButton

func SkipButton

func SkipButton(toStepID StepID) InlineKeyboardButton

type InlineKeyboardMarkup

type InlineKeyboardMarkup struct {
	InlineKeyboard [][]InlineKeyboardButton
}

func InlineKeyboardGrid

func InlineKeyboardGrid(rows [][]InlineKeyboardButton) *InlineKeyboardMarkup

type Input

type Input struct {
	IsMessage          bool
	IsCallback         bool
	Data               string
	EntitiesJSONString string
	MultipleSelectData map[string]string
	Media              []Media
}

type Keyboard

type Keyboard struct {
	InlineKeyboardMarkup *InlineKeyboardMarkup
}

func GetCloseButton

func GetCloseButton() *Keyboard

func GetSkipButtonKeyboard

func GetSkipButtonKeyboard(toStepID StepID) *Keyboard

func WithInlineKeyboard

func WithInlineKeyboard(inlineKeyboardMarkup *InlineKeyboardMarkup) *Keyboard

func (*Keyboard) GetInlineKeyboardMarkup

func (k *Keyboard) GetInlineKeyboardMarkup() *InlineKeyboardMarkup

type Media

type Media struct {
	Type      MediaType
	TypeHuman string
	Emoji     string
	FileID    string
	FileSize  int64
}

func ParseTelegoMedia

func ParseTelegoMedia(update telego.Update) *Media

type MediaParams

type MediaParams struct {
	// contains filtered or unexported fields
}

func WithMedia

func WithMedia() *MediaParams

func (*MediaParams) AllowAnimations

func (smp *MediaParams) AllowAnimations() *MediaParams

func (*MediaParams) AllowAudios

func (smp *MediaParams) AllowAudios() *MediaParams

func (*MediaParams) AllowDocuments

func (smp *MediaParams) AllowDocuments() *MediaParams

func (*MediaParams) AllowPhotos

func (smp *MediaParams) AllowPhotos() *MediaParams

func (*MediaParams) AllowStickers

func (smp *MediaParams) AllowStickers() *MediaParams

func (*MediaParams) AllowVideoNotes

func (smp *MediaParams) AllowVideoNotes() *MediaParams

func (*MediaParams) AllowVideos

func (smp *MediaParams) AllowVideos() *MediaParams

func (*MediaParams) AllowVoices

func (smp *MediaParams) AllowVoices() *MediaParams

func (*MediaParams) SetMaxMediaCount

func (smp *MediaParams) SetMaxMediaCount(count int) *MediaParams

func (*MediaParams) SetMaxMediaSizeKB

func (smp *MediaParams) SetMaxMediaSizeKB(sizeKB int) *MediaParams

type MediaType

type MediaType string

type OnInputResponse

type OnInputResponse struct {
	ForceNextStepID int
}

type Response

type Response struct {
	Text             string
	Keyboard         *Keyboard
	Error            error
	EndDialog        bool
	InitialMessageID int
	CurrentStepInt   int
	IsCanceled       bool
}

type StepID added in v1.0.0

type StepID string

type StepParams

type StepParams struct {
	StepID           int
	MediaParams      *MediaParams
	OnlyMedia        bool
	OnlyText         bool
	OnlyCallbackData bool
	OnStart          func(ctx context.Context) (string, *Keyboard, error)
	OnInput          func(ctx context.Context, input *Input) (OnInputResponse, error)
	OnComplete       func(ctx context.Context) (string, *Keyboard, error)
}

type Update

type Update struct {
	Context            context.Context
	TelegramID         int64
	MessageID          int
	MessageText        string
	EntitiesJSONString string
	CallbackData       CallbackData
	Media              *Media
}

func ParseUpdate

func ParseUpdate(ctx context.Context, update any) (*Update, error)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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