tg

package
v0.0.0-...-73e1c45 Latest Latest
Warning

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

Go to latest
Published: Aug 30, 2023 License: GPL-3.0 Imports: 19 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var Icons = map[string]string{
	"lect":   "📗 Лекция ",
	"pract":  "📕 Практика ",
	"lab":    "📘 Лаба ",
	"other":  "📙 Прочее ",
	"mil":    "🫡",
	"window": "🏝",
	"exam":   "💀 Экзамен",
	"cons":   "🗨 Консультация",
	"kurs":   "🤯 Курсовая",
}
View Source
var Month = []string{
	"января",
	"февраля",
	"марта",
	"апреля",
	"мая",
	"июня",
	"июля",
	"августа",
	"сентября",
	"октября",
	"ноября",
	"декабря",
}
View Source
var SumKey = []string{"near", "day", "week"}

Functions

func CheckEnv

func CheckEnv() error

func CreateCondition

func CreateCondition(shedules []database.ShedulesInUser) string

Создать условие поиска группы/преподавателя

func DayStr

func DayStr(day time.Time) string

Строка даты формата "среду, 1 января"

func GeneralKeyboard

func GeneralKeyboard(options bool) tgbotapi.ReplyKeyboardMarkup

func GenerateButtonTail

func GenerateButtonTail(sheduleId int64, dt int, isGroup bool) string

func GenerateGroupsArray

func GenerateGroupsArray(groups []database.Group, isAdd bool) []tgbotapi.InlineKeyboardButton

Создание ряда кнопок из списка групп

func GenerateKeyboard

Создание полноценной клавиатуры выбора

func GenerateName

func GenerateName(t database.Teacher) string

func GeneratePath

func GeneratePath(sh database.ShedulesInUser, isPersonal bool, userId int64) string

func GenerateTeachersArray

func GenerateTeachersArray(teachers []database.Teacher, isAdd bool) []tgbotapi.InlineKeyboardButton

Создание ряда кнопок из списка преподавателей

func GroupPairs

func GroupPairs(lessons []database.Lesson) [][]database.Lesson

Группировка занятий по парам

func InitUser

func InitUser(db *xorm.Engine, user *tgbotapi.User) (*database.TgUser, error)

Получение данных о пользователе из БД и создание нового при необходимости

func KeywordContains

func KeywordContains(str string, keywords []string) bool

func PairToStr

func PairToStr(pair []database.Lesson, db *xorm.Engine, isGroup bool) (string, error)

Конвертация занятий с текст

func ParseQuery

func ParseQuery(data []string) ([]database.ShedulesInUser, int, error)

func SummaryKeyboard

func SummaryKeyboard(clickedButton string, sheduleId int64, isGroup bool, dt int) tgbotapi.InlineKeyboardMarkup

func Swap

Меняем шило на мыло

Types

type Bot

type Bot struct {
	TG       *tgbotapi.BotAPI
	DB       *xorm.Engine
	TestUser int64
	HelpTxt  string
	Week     int
	WkPath   string
	Debug    *log.Logger
	Updates  *tgbotapi.UpdatesChannel
}

func InitBot

func InitBot(files database.LogFiles, db database.DB, token string) (*Bot, error)

Полная инициализация бота со стороны Telegram и БД

func (*Bot) Cancel

func (bot *Bot) Cancel(user *database.TgUser, query *tgbotapi.CallbackQuery) error

func (*Bot) CreateHTMLShedule

func (bot *Bot) CreateHTMLShedule(
	isGroup bool,
	header string,
	shedule [][6][]database.Lesson,
	dates []time.Time,
	times []ssau_parser.Pair,
) string

func (*Bot) CreateWeekImg

func (bot *Bot) CreateWeekImg(
	now time.Time,
	user *database.TgUser,
	shedules []database.ShedulesInUser,
	dw int,
	isPersonal bool,
	caption string,
	editMsg ...tgbotapi.Message,
) error

func (*Bot) DeleteGroup

func (bot *Bot) DeleteGroup(user *database.TgUser, text string) (tgbotapi.Message, error)

func (*Bot) EditOrSend

func (bot *Bot) EditOrSend(
	id int64,
	str string,
	imageId string,
	markup tgbotapi.InlineKeyboardMarkup,
	editMsg ...tgbotapi.Message,
) (
	tgbotapi.Message,
	error,
)

Отправка сообщения или его редактирование, если в editMsg указано сообщение TODO: Обрабатывать старые сообщения, которые уже нельзя редактировать (message can't be deleted for everyone)

func (*Bot) Etc

func (bot *Bot) Etc(user *database.TgUser) (tgbotapi.Message, error)

func (*Bot) Find

func (bot *Bot) Find(now time.Time, user *database.TgUser, query string) (tgbotapi.Message, error)

Поиск расписания по запросу

func (*Bot) GetDaySummary

func (bot *Bot) GetDaySummary(
	now time.Time,
	user *database.TgUser,
	shedules []database.ShedulesInUser,
	dt int,
	isPersonal bool,
	editMsg ...tgbotapi.Message,
) (
	tgbotapi.Message,
	error,
)

ПОлучить расписание на день

func (*Bot) GetLessons

func (bot *Bot) GetLessons(shedules []database.ShedulesInUser, now time.Time) ([]database.Lesson, error)

Получить список ближайших занятий (для краткой сводки или расписания на день)

func (*Bot) GetOptions

func (bot *Bot) GetOptions(user *database.TgUser) (tgbotapi.Message, error)

func (*Bot) GetPersonal

func (bot *Bot) GetPersonal(now time.Time, user *database.TgUser, editMsg ...tgbotapi.Message) (tgbotapi.Message, error)

func (*Bot) GetShedule

func (bot *Bot) GetShedule(user *database.TgUser, query *tgbotapi.CallbackQuery, now ...time.Time) error

Получить расписание из кнопки

func (*Bot) GetSummary

func (bot *Bot) GetSummary(
	now time.Time,
	user *database.TgUser,
	shedules []database.ShedulesInUser,
	isPersonal bool,
	editMsg ...tgbotapi.Message,
) (
	tgbotapi.Message,
	error,
)

Получить краткую сводку

func (*Bot) GetUpdates

func (bot *Bot) GetUpdates()

func (*Bot) GetWeekLessons

func (bot *Bot) GetWeekLessons(shedules []database.ShedulesInUser, week int) ([]database.Lesson, error)

func (*Bot) GetWeekSummary

func (bot *Bot) GetWeekSummary(
	now time.Time,
	user *database.TgUser,
	shedule database.ShedulesInUser,
	dw int,
	isPersonal bool,
	caption string,
	editMsg ...tgbotapi.Message,
) error

func (*Bot) HandleOptions

func (bot *Bot) HandleOptions(user *database.TgUser, query *tgbotapi.CallbackQuery) error

func (*Bot) HandleSummary

func (bot *Bot) HandleSummary(user *database.TgUser, query *tgbotapi.CallbackQuery, now ...time.Time) error

func (*Bot) HandleUpdate

func (bot *Bot) HandleUpdate(update tgbotapi.Update, now ...time.Time) (tgbotapi.Message, error)

func (*Bot) LoadShedule

func (bot *Bot) LoadShedule(shedule ssau_parser.WeekShedule, now time.Time) (
	[]database.Lesson,
	[]database.Lesson,
	error,
)

Загрузка расписания из ssau.ru/rasp

func (*Bot) SetFirstTime

func (bot *Bot) SetFirstTime(msg *tgbotapi.Message, user *database.TgUser) (tgbotapi.Message, error)

func (*Bot) Start

func (bot *Bot) Start(user *database.TgUser) error

Приветственное сообщение

func (*Bot) StrDayShedule

func (bot *Bot) StrDayShedule(lessons [][]database.Lesson, isGroup bool) (string, error)

Текст расписания на день

Jump to

Keyboard shortcuts

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