mirror of
https://github.com/EDeev/y.calendarkin.git
synced 2026-06-15 19:01:00 +03:00
136 lines
5.6 KiB
Markdown
136 lines
5.6 KiB
Markdown
# 🗓️ Y.Calendarkin
|
||
|
||
Telegram-бот для упрощенного получения уведомлений о событиях из Яндекс.Календаря.
|
||
|
||
[](https://python.org)
|
||
[](https://docs.aiogram.dev/)
|
||
[](LICENSE)
|
||
|
||
## 📖 Описание
|
||
|
||
Y.Calendarkin — некоммерческий проект, предназначенный для автоматизации уведомлений о календарных событиях из Яндекс.Календаря через Telegram. Бот позволяет настроить гибкую систему напоминаний и получать актуальную информацию о предстоящих событиях.
|
||
|
||
## ✨ Основные возможности
|
||
|
||
- 📅 **Импорт календаря** — поддержка ICal ссылок из Яндекс.Календаря
|
||
- ⏰ **Гибкие уведомления** — настройка времени напоминаний (до 60 минут)
|
||
- 🌅 **Ежедневные отчеты** — утренние сводки событий на день
|
||
- 🎯 **Моментальные уведомления** — оповещения в момент начала события
|
||
- 🌍 **Поддержка часовых поясов** — автоматическое определение из календаря
|
||
- 📋 **Просмотр событий** — список мероприятий на текущий день
|
||
|
||
## 🛠️ Технологический стек
|
||
|
||
- **Backend**: Python 3.8+
|
||
- **Bot Framework**: Aiogram 3.x
|
||
- **Database**: SQLite
|
||
- **Calendar Processing**: icalendar, dateutil
|
||
- **HTTP Client**: wget
|
||
- **Timezone Support**: pytz
|
||
|
||
## 🚀 Установка и запуск
|
||
|
||
### Предварительные требования
|
||
|
||
```bash
|
||
pip install -r requirements.txt
|
||
```
|
||
|
||
### Настройка
|
||
|
||
1. Создайте нового бота через [@BotFather](https://t.me/BotFather)
|
||
2. Получите токен и добавьте его в `config.py`:
|
||
|
||
```python
|
||
TOKEN = "your_bot_token_here"
|
||
```
|
||
|
||
3. Создайте структуру каталогов:
|
||
|
||
```bash
|
||
mkdir -p data/icals db
|
||
```
|
||
|
||
### Запуск
|
||
|
||
```bash
|
||
cd code
|
||
python bot.py
|
||
```
|
||
|
||
## 📝 Использование
|
||
|
||
### Начало работы
|
||
|
||
1. Запустите бота командой `/start`
|
||
2. Отправьте ICal ссылку вашего Яндекс.Календаря
|
||
3. Настройте уведомления по своему усмотрению
|
||
|
||
### Основные команды
|
||
|
||
| Команда | Описание |
|
||
|---------|----------|
|
||
| `/help` | Справочная информация |
|
||
| `/list` | События на сегодня |
|
||
| `/notif` | Включить/выключить уведомления |
|
||
| `/daily` | Ежедневные утренние сводки |
|
||
| `/moment` | Уведомления в момент события |
|
||
| `/get_alarm` | Информация о текущих настройках |
|
||
| `/edit_alarm` | Изменение времени уведомлений |
|
||
| `/stop_alarm` | Отключение второго уведомления |
|
||
|
||
### Получение ICal ссылки
|
||
|
||
1. Откройте Яндекс.Календарь
|
||
2. Перейдите в настройки календаря
|
||
3. Найдите раздел "Экспорт"
|
||
4. Скопируйте ссылку в формате ICal
|
||
5. Отправьте ссылку боту
|
||
|
||
## 🏗️ Архитектура проекта
|
||
|
||
```
|
||
y.calendarkin/
|
||
├── code/
|
||
│ ├── bot.py # Основная логика бота
|
||
│ ├── config.py # Конфигурация
|
||
│ ├── script.py # Обработка календарных файлов
|
||
│ └── sql.py # Работа с базой данных
|
||
├── data/
|
||
│ ├── icals/ # Загруженные календари
|
||
│ └── photo_edit_alarm.jpg
|
||
├── db/ # База данных SQLite
|
||
└── requirements.txt
|
||
```
|
||
|
||
## 📊 База данных
|
||
|
||
Проект использует две основные таблицы:
|
||
|
||
- **user** — информация о пользователях и их календарях
|
||
- **alarm** — настройки уведомлений для каждого пользователя
|
||
|
||
## 🔧 Настройка уведомлений
|
||
|
||
- **Первое уведомление**: за 15 минут до события (по умолчанию)
|
||
- **Второе уведомление**: за 5 минут до события (по умолчанию)
|
||
- **Диапазон настройки**: от 1 до 59 минут
|
||
- **Ежедневные сводки**: в 8:00 по часовому поясу пользователя
|
||
|
||
## 📄 Лицензия
|
||
|
||
Этот проект является некоммерческим и распространяется под лицензией MIT.
|
||
|
||
## 👨💻 Автор
|
||
|
||
**Деев Егор Викторович** - Backend Developer
|
||
- GitHub: [@EDeev](https://github.com/EDeev)
|
||
- Email: egor@deev.space
|
||
- Telegram: [@Egor_Deev](https://t.me/Egor_Deev)
|
||
|
||
---
|
||
|
||
<div align="center">
|
||
<sub>Этот бот предназначен для личного использования и не является коммерческим продуктом.</sub>
|
||
<p><sub>Создано с ❤️ от вашего дорогого - deev.space ©</sub></p>
|
||
</div>
|