mirror of
https://github.com/EDeev/y.calendarkin.git
synced 2026-06-19 14:31:02 +03:00
README.md
This commit is contained in:
parent
2b0ec04f31
commit
0fcae044c7
1 changed files with 135 additions and 2 deletions
137
README.md
137
README.md
|
|
@ -1,2 +1,135 @@
|
||||||
# Y.Calendarkin
|
# 🗓️ Y.Calendarkin
|
||||||
Я.Календаркин / Y.Calendarkin - (https://t.me/calendarkin_ybot) - этот телеграм бот не коммерческий проект, для упрощенного получения уведомлений о событиях в Яндекс.Календаре. Не многим этот бот будет полезен, но людям, чья работа подразумевает его использование, он станет лишь удобным инструментом.
|
|
||||||
|
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">
|
||||||
|
<p><sub>Создано с ❤️ от вашего дорогого - deev.space ©</sub></p>
|
||||||
|
</div>
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue