y.calendarkin/README.md
2025-06-30 20:10:52 +03:00

136 lines
5.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 🗓️ Y.Calendarkin
Telegram-бот для упрощенного получения уведомлений о событиях из Яндекс.Календаря.
[![Python](https://img.shields.io/badge/Python-3.8+-blue.svg)](https://python.org)
[![Aiogram](https://img.shields.io/badge/Aiogram-3.x-green.svg)](https://docs.aiogram.dev/)
[![License](https://img.shields.io/badge/License-MIT-yellow.svg)](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>