pingpongerbot — это Telegram-бот, написанный на Go, который отвечает на команды и выполняет простые действия. Это учебный проект, созданный для изучения работы с Telegram Bot API и библиотекой Telebot.
![](https://private-user-images.githubusercontent.com/174750358/398950663-957ebb07-10ad-4ea2-82f4-b1118a855556.jpg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkzOTkzNDYsIm5iZiI6MTczOTM5OTA0NiwicGF0aCI6Ii8xNzQ3NTAzNTgvMzk4OTUwNjYzLTk1N2ViYjA3LTEwYWQtNGVhMi04MmY0LWIxMTE4YTg1NTU1Ni5qcGc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjEyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMlQyMjI0MDZaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0yYjYwZTExYWU5NTQxYTk2MGVlYTFhZTg3M2QzMGFmZDRlZGYxOTZiMWVhZWVkZGQ5YzY4MzY0NzEwNDQ1MjVkJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.O9SUGqNGYTVFin7Ed5fVutPpTQIB1b9dzvs1Roqnb7Y)
Основные команды:
- /start - приветствие
- /ping - бот скажет «pong!» в ответ
- /echo - напиши /echo <любой текст здесь>, бот продублирует твое сообщение
Обработка некорректного ввода:
Любой неизвестный текст или медиа сообщение перенаправляет пользователя на приветственное сообщение.
Логирование:
- Логирует взаимодействия с пользователями (ID чата, имя пользователя, текст сообщения).
- Логирует ошибки для их дальнейшего анализа.
Обработка ошибок:
Показывает пользователю дружелюбное сообщение об ошибке и сохраняет её детали в логах.
- ЯП: Go (Golang)
- Telegram Bot Framework: telebot.v4
- Управление конфигурацией: joho/godotenv для работы с переменными окружения.
- Логирование: rs/zerolog для структурированного логирования.
pingpongerbot/
├── cmd/
│ └── pingpongerbot/
│ └── main.go
├── internal/
│ ├── app/
│ │ └── app.go
│ ├── handlers/
│ │ └── handlers.go
├── middleware/
│ ├── error.go
│ └── logger.go
├── .gitignore
├── go.mod
└── go.sum
main.go
- Инициализирует приложение с помощью InitApp.
- Добавляет middleware для обработки ошибок и логирования.
- Регистрирует команды.
- Обрабатывает неизвестные сообщения через группу unrecognized.
app.go
- Конфигурирует бота с использованием telebot.NewBot.
- Устанавливает токен, настройки поллера и обработку ошибок.
- Опция оффлайн-режима для тестирования.
handlers.go
- Start: Приветственное сообщение, описание и список доступных команд.
- Ping: Отправляет “pong!”.
- Echo: Повторяет сообщение пользователя.
logger.go:
- Логирует обновления (ID чата, имя пользователя, текст сообщения).
- Логирует ошибки с дополнительной информацией.
error.go:
Отправляет пользователю сообщение об ошибке и записывает её детали.