shortybot - это сервис сокращения ссылок в формате телеграм-бота.
Простой и удобный интерфейс, очеловеченные и содержательные ответы, функционал, позволяющий осуществлять все необходимые действия - shortybot!
-
Сокращение ссылок:
Просто отправьте ссылку боту, и он создаст сокращенную версию. -
Хранение сокращенных ссылок:
Все ваши сокращенные ссылки автоматически сохраняются. Вы можете просмотреть их в разделе «Мои Shorties», где будет доступна информация о дате создания. -
Удаление сокращенных ссылок:
Если сокращенная ссылка больше не нужна, ее можно удалить через раздел «Удалить Shorty». -
Безопасность:
Сокращенные ссылки доступны только вам. Бот использует уникальный идентификатор, связанный с вашим Телеграм-аккаунтом, для защиты данных.
shortybot состоит из двух основных компонентов:
Бот:
Отвечает за взаимодействие с пользователем через Telegram, включая обработку запросов, создание ссылок и управление ими.
Сервер:
Обрабатывает входящие GET-запросы с уникальными идентификаторами сокращенных ссылок, извлекает информацию из базы данных и перенаправляет пользователя на оригинальный URL.
- Пользователь отправляет ссылку боту для сокращения.
- Бот сохраняет запись в базе данных, включая:
- Уникальный идентификатор Телеграм-пользователя.
- Оригинальную ссылку.
- Уникальный идентификатор сокращенной ссылки.
- Дату создания.
- Пользователь переходит по сокращенной ссылке.
- Сервер получает запрос, извлекает идентификатор, обращается к базе данных и выполняет редирект на оригинальный URL.
- Нельзя создать две сокращенные ссылки для одной и той же оригинальной ссылки.
- Нельзя сократить уже сокращенную ссылку.
- Нельзя сократить нерабочую ссылку.
- Go - основной язык разработки.
- Fiber - веб-фреймворк для сервера.
- Telebot - библиотека для работы с Телеграм-ботом.
- PostgreSQL - база данных.
- GORM - ORM для взаимодействия с базой данных.
- Zerolog - для структурированного логгирования.
- Docker - для контейнеризации.
shortybot/
├── cmd/
│ ├── bot/
│ │ └── main.go
│ ├── server/
│ │ └── main.go
│ ├── bot-Dockerfile
│ ├── server-Dockerfile
├── internal/
│ ├── bot/
│ │ ├── app/
│ │ │ └── app.go
│ │ ├── handlers/
│ │ │ └── handlers.go
│ │ ├── helpers/
│ │ │ └── helpers.go
│ │ ├── middleware/
│ │ │ └── middleware.go
│ │ ├── models/
│ │ ├── buttons.go
│ │ └── responses.go
│ ├── server/
│ │ ├── app/
│ │ │ └── app.go
│ │ ├── handlers/
│ │ │ └── handlers.go
│ │ ├── models/
│ │ └── responses.go
│ ├── db/
│ │ └── db.go
│ ├── logger/
│ └── logger.go
├── .dockerignore
├── .gitignore
├── docker-compose.yaml
├── go.mod
└── go.sum
Проект распространяется под лицензией MIT. Вы можете свободно использовать и модифицировать код при соблюдении условий лицензии.